import { describe, test, expect } from 'vitest'; import { getNodeColor, getStatusColor, getImportanceLabel, getImportanceColor } from './colors'; describe('getNodeColor', () => { test('returns correct color for gateway', () => { expect(getNodeColor('gateway')).toBe('#6366F1'); }); test('returns correct color for physical host', () => { expect(getNodeColor('host_physical')).toBe('#10B981'); }); test('returns fallback color for unknown type', () => { expect(getNodeColor('nonexistent' as any)).toBe('#6B7280'); }); test('returns service category color when type is service', () => { expect(getNodeColor('service', 'media')).toBe('#EF4444'); expect(getNodeColor('service', 'infra')).toBe('#3B82F6'); expect(getNodeColor('service', 'monitoring')).toBe('#22C55E'); }); test('returns "other" service color when no category provided', () => { expect(getNodeColor('service')).toBe('#6B7280'); }); }); describe('getStatusColor', () => { test('returns green for running', () => { expect(getStatusColor('running')).toBe('#22C55E'); }); test('returns red for stopped', () => { expect(getStatusColor('stopped')).toBe('#EF4444'); }); test('returns gray for unknown', () => { expect(getStatusColor('unknown')).toBe('#6B7280'); }); }); describe('getImportanceLabel', () => { test('returns correct labels for all levels', () => { expect(getImportanceLabel(1)).toBe('Minimal'); expect(getImportanceLabel(2)).toBe('Low'); expect(getImportanceLabel(3)).toBe('Medium'); expect(getImportanceLabel(4)).toBe('High'); expect(getImportanceLabel(5)).toBe('Critical'); }); test('returns Unknown for out-of-range values', () => { expect(getImportanceLabel(0)).toBe('Unknown'); expect(getImportanceLabel(6)).toBe('Unknown'); }); }); describe('getImportanceColor', () => { test('returns correct colors for all levels', () => { expect(getImportanceColor(1)).toBe('#6B7280'); expect(getImportanceColor(3)).toBe('#F59E0B'); expect(getImportanceColor(5)).toBe('#EF4444'); }); test('returns fallback for out-of-range', () => { expect(getImportanceColor(99)).toBe('#6B7280'); }); });