30 lines
1.3 KiB
TypeScript
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');
|
|
});
|
|
});
|