Files
headlamp-polaris-plugin/src/api/checkMapping.test.ts
T
DevContainer User 514de78ba7 fix: comprehensive code quality, theming, and test coverage improvements
- Fix ExemptionManager apiVersion bug (apps/batch resources used wrong API path)
- Replace resource: any with proper KubeResource interface (strict TypeScript)
- Replace all var(--mui-palette-*) CSS variables with useTheme() + theme.palette.*
- Replace custom drawer with MUI Drawer component (proper a11y and theming)
- Replace alert() calls with StatusLabel-based inline feedback
- Add PolarisErrorBoundary wrapping all registered plugin components
- Export getPolarisApiPath/isFullUrl from polaris.ts, deduplicate in PolarisSettings
- Fix PolarisDataContext test mock missing triggerRefresh
- Fix DashboardView test SimpleTable mock using any
- Remove dead NamespaceDetailView (replaced by drawer), unused MockPolarisProvider,
  unused getSeverityColor export
- Add tests for InlineAuditSection, AppBarScoreBadge, topIssues, checkMapping (32 new)
- Update CLAUDE.md, CHANGELOG.md, README.md for v0.6.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 16:59:50 +00:00

78 lines
2.6 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
CHECK_MAPPING,
getCheckCategory,
getCheckDescription,
getCheckName,
getSeverityStatus,
} from './checkMapping';
describe('checkMapping', () => {
describe('getCheckName', () => {
it('returns human-readable name for known check IDs', () => {
expect(getCheckName('hostIPCSet')).toBe('Host IPC');
expect(getCheckName('cpuRequestsMissing')).toBe('CPU Requests');
expect(getCheckName('readinessProbeMissing')).toBe('Readiness Probe');
});
it('returns the raw check ID for unknown checks', () => {
expect(getCheckName('unknownCheck')).toBe('unknownCheck');
});
});
describe('getCheckDescription', () => {
it('returns description for known checks', () => {
expect(getCheckDescription('hostIPCSet')).toBe('Host IPC should not be configured');
});
it('returns "Unknown check" for unknown checks', () => {
expect(getCheckDescription('unknownCheck')).toBe('Unknown check');
});
});
describe('getCheckCategory', () => {
it('returns correct category for each type', () => {
expect(getCheckCategory('hostIPCSet')).toBe('Security');
expect(getCheckCategory('cpuRequestsMissing')).toBe('Efficiency');
expect(getCheckCategory('readinessProbeMissing')).toBe('Reliability');
});
it('defaults to Security for unknown checks', () => {
expect(getCheckCategory('unknownCheck')).toBe('Security');
});
});
describe('getSeverityStatus', () => {
it('maps danger to error', () => {
expect(getSeverityStatus('danger')).toBe('error');
});
it('maps warning to warning', () => {
expect(getSeverityStatus('warning')).toBe('warning');
});
it('defaults to success for other values', () => {
expect(getSeverityStatus('ignore')).toBe('success');
expect(getSeverityStatus('unknown')).toBe('success');
});
});
describe('CHECK_MAPPING', () => {
it('has entries for all expected categories', () => {
const categories = new Set(Object.values(CHECK_MAPPING).map(c => c.category));
expect(categories).toContain('Security');
expect(categories).toContain('Efficiency');
expect(categories).toContain('Reliability');
});
it('all entries have required fields', () => {
for (const [id, info] of Object.entries(CHECK_MAPPING)) {
expect(info.name, `${id} missing name`).toBeTruthy();
expect(info.description, `${id} missing description`).toBeTruthy();
expect(['Security', 'Efficiency', 'Reliability']).toContain(info.category);
expect(['danger', 'warning', 'ignore']).toContain(info.defaultSeverity);
}
});
});
});