Assessor_2.0/tests/profiles/pingcastle-severity.test.ts

30 lines
1.3 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
pingCastleSeverityFromPoints,
PINGCASTLE_SEVERITY_FROM_POINTS_RULE_ID,
PINGCASTLE_SEVERITY_FROM_POINTS_RULE_VERSION
} from '../../src/profiles/pingcastle/pingcastle-severity';
describe('PingCastle severity-from-points derivation', () => {
it('maps the documented threshold boundaries to canonical severities', () => {
expect(pingCastleSeverityFromPoints(0)).toBe('info');
expect(pingCastleSeverityFromPoints(1)).toBe('low');
expect(pingCastleSeverityFromPoints(10)).toBe('low');
expect(pingCastleSeverityFromPoints(11)).toBe('medium');
expect(pingCastleSeverityFromPoints(30)).toBe('medium');
expect(pingCastleSeverityFromPoints(31)).toBe('high');
expect(pingCastleSeverityFromPoints(50)).toBe('high');
});
it('never derives critical and falls back to unknown for invalid input', () => {
expect(pingCastleSeverityFromPoints(100)).toBe('high');
expect(pingCastleSeverityFromPoints(-1)).toBe('unknown');
expect(pingCastleSeverityFromPoints(Number.NaN)).toBe('unknown');
});
it('carries a stable, versioned rule identity for provenance', () => {
expect(PINGCASTLE_SEVERITY_FROM_POINTS_RULE_ID).toBe('pingcastle-severity-from-points');
expect(PINGCASTLE_SEVERITY_FROM_POINTS_RULE_VERSION).toBe('1.0.0');
});
});