514de78ba7
- 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>
78 lines
2.6 KiB
TypeScript
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);
|
|
}
|
|
});
|
|
});
|
|
});
|