import { describe, it, expect, beforeEach } from 'vitest' import { ISO27001Mapper } from '../../../src/compliance/ISO27001Mapper.js' describe('ISO27001Mapper', () => { let mapper: ISO27001Mapper beforeEach(() => { mapper = new ISO27001Mapper() }) describe('getControl()', () => { it('should return the logging control as implemented', () => { const control = mapper.getControl('A.8.15') expect(control).toBeDefined() expect(control!.implemented).toBe(true) expect(control!.theme).toBe('technological') }) it('should return physical security as a gap', () => { const control = mapper.getControl('A.7.1') expect(control).toBeDefined() expect(control!.implemented).toBe(false) expect(control!.theme).toBe('physical') expect(control!.gapNote).toBeTruthy() }) it('should return undefined for unknown control', () => { expect(mapper.getControl('A.99.99')).toBeUndefined() }) }) describe('getCoverage()', () => { it('should compute covered/total/gaps consistently', () => { const coverage = mapper.getCoverage() expect(coverage.covered + coverage.gaps.length).toBe(coverage.total) }) }) describe('getAllMappings()', () => { it('should return a frozen array of mappings', () => { const mappings = mapper.getAllMappings() expect(Object.isFrozen(mappings)).toBe(true) expect(mappings.length).toBeGreaterThan(0) }) }) })