import { describe, expect, test } from 'vitest'; import { ADVISORY_HOLD_FINDING_SEVERITIES, BLOCKING_FINDING_SEVERITIES, REVIEW_FINDING_SEVERITIES, isAdvisoryHoldFindingSeverity, isBlockingFindingSeverity } from './index.js'; describe('isBlockingFindingSeverity', () => { test('treats only critical and high as blocking', () => { expect(BLOCKING_FINDING_SEVERITIES).toEqual(['critical', 'high']); expect(REVIEW_FINDING_SEVERITIES.filter(isBlockingFindingSeverity)).toEqual(['critical', 'high']); }); test('rejects medium, low, info, and unknown severities', () => { expect(isBlockingFindingSeverity('medium')).toBe(false); expect(isBlockingFindingSeverity('low')).toBe(false); expect(isBlockingFindingSeverity('info')).toBe(false); expect(isBlockingFindingSeverity('unknown')).toBe(false); }); }); describe('isAdvisoryHoldFindingSeverity', () => { test('treats every non-info severity as a soft hold', () => { expect(ADVISORY_HOLD_FINDING_SEVERITIES).toEqual(['critical', 'high', 'medium', 'low']); expect(REVIEW_FINDING_SEVERITIES.filter(isAdvisoryHoldFindingSeverity)).toEqual(['critical', 'high', 'medium', 'low']); }); test('rejects info and unknown severities so info can auto-publish', () => { expect(isAdvisoryHoldFindingSeverity('info')).toBe(false); expect(isAdvisoryHoldFindingSeverity('unknown')).toBe(false); }); });