This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { buildStorageNodes, type StorageData } from '../../src/StoragePage';
|
||||
|
||||
function data(): StorageData {
|
||||
return {
|
||||
array: { source: { state: 'operational', freshness: 'fresh' }, state: 'operational', members: [{ id: 'disk-10', name: 'disk10', role: 'data', state: 'online' }] },
|
||||
disks: { source: { state: 'healthy', freshness: 'fresh' }, disks: [{ id: 'DISK-10', name: 'disk10', role: 'data', state: 'online', utilizationPercent: 99.99, capacitySeverity: 'critical', thermalSeverity: 'normal' }, { id: 'cache', name: 'cache', role: 'cache', state: 'online', utilizationPercent: 85.5, capacitySeverity: 'attention', thermalSeverity: 'critical' }] },
|
||||
pools: { source: { state: 'healthy', freshness: 'fresh' }, pools: [{ id: 'cache', name: 'cache', filesystem: 'zfs', state: 'healthy', utilizationPercent: 85.5, capacitySeverity: 'attention' }] },
|
||||
};
|
||||
}
|
||||
|
||||
describe('buildStorageNodes', () => {
|
||||
it('merges array and disk observations by canonical physical identity', () => {
|
||||
const nodes = buildStorageNodes(data());
|
||||
expect(nodes.filter((node) => node.label === 'disk10')).toHaveLength(1);
|
||||
expect(nodes).toHaveLength(3);
|
||||
});
|
||||
|
||||
it('keeps availability, capacity and thermal signals visible', () => {
|
||||
const nodes = buildStorageNodes(data());
|
||||
const disk = nodes.find((node) => node.label === 'disk10');
|
||||
const cacheDisk = nodes.find((node) => node.id === 'disk-cache');
|
||||
const cachePool = nodes.find((node) => node.id === 'pool-cache');
|
||||
expect(disk).toMatchObject({ state: 'critical' });
|
||||
expect(disk?.detail).toContain('Beschikbaarheid normaal · capaciteit kritiek · temperatuur normaal');
|
||||
expect(cacheDisk).toMatchObject({ state: 'critical' });
|
||||
expect(cachePool?.detail).toContain('Device-health normaal · capaciteit aandacht');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user