- Added api-security-hardening (helmet, rate limits) - Added nodejs-backend-patterns (error handling) - Added observability-monitoring (pino logging) - Added websocket-engineer (socket.io real-time updates) - Added docker (Multi-stage build, compose) - Added vitest (testing configuration and store tests) - Added data-visualizer (MetricsBar and HostChart) - Added infrastructure-monitoring/proxmox-admin/network-engineer types - Fixed UI accessibility and styling - Cleaned up node_modules tracking
68 lines
2.3 KiB
TypeScript
68 lines
2.3 KiB
TypeScript
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');
|
|
});
|
|
});
|