import { describe, it, expect, beforeEach } from 'vitest' import { SOC2Mapper } from '../../../src/compliance/SOC2Mapper.js' describe('SOC2Mapper', () => { let mapper: SOC2Mapper beforeEach(() => { mapper = new SOC2Mapper() }) describe('getCriteria()', () => { it('should return the logical access control criterion as implemented', () => { const criteria = mapper.getCriteria('CC6.1') expect(criteria).toBeDefined() expect(criteria!.implemented).toBe(true) expect(criteria!.category).toBe('security') }) it('should return availability as a gap', () => { const criteria = mapper.getCriteria('A1.2') expect(criteria).toBeDefined() expect(criteria!.implemented).toBe(false) expect(criteria!.category).toBe('availability') }) it('should return undefined for unknown criteria', () => { expect(mapper.getCriteria('ZZ9.9')).toBeUndefined() }) }) describe('getCoverage()', () => { it('should compute covered/total/gaps consistently', () => { const coverage = mapper.getCoverage() expect(coverage.covered + coverage.gaps.length).toBe(coverage.total) expect(coverage.gaps).toContain('P1.1') }) }) })