/** * Tests for RAG Config — ensures all document types have valid mappings. */ import { describe, it, expect } from 'vitest' import { DOCUMENT_RAG_CONFIG } from '../rag-config' import type { ScopeDocumentType } from '@/lib/sdk/compliance-scope-types' // All 18 ScopeDocumentType values const ALL_DOCUMENT_TYPES: ScopeDocumentType[] = [ 'vvt', 'lf', 'tom', 'av_vertrag', 'dsi', 'betroffenenrechte', 'dsfa', 'daten_transfer', 'datenpannen', 'einwilligung', 'vertragsmanagement', 'schulung', 'audit_log', 'risikoanalyse', 'notfallplan', 'zertifizierung', 'datenschutzmanagement', 'iace_ce_assessment', ] // Known RAG collections in bp-core-rag-service const VALID_COLLECTIONS = [ 'bp_dsfa_corpus', 'bp_compliance_datenschutz', 'bp_compliance_gesetze', 'bp_compliance_recht', 'bp_compliance_ce', ] describe('DOCUMENT_RAG_CONFIG', () => { it('should have an entry for all 18 ScopeDocumentType values', () => { for (const docType of ALL_DOCUMENT_TYPES) { expect(DOCUMENT_RAG_CONFIG[docType]).toBeDefined() } }) it('should have exactly 18 entries', () => { expect(Object.keys(DOCUMENT_RAG_CONFIG)).toHaveLength(18) }) it('should use valid collection names', () => { for (const [, config] of Object.entries(DOCUMENT_RAG_CONFIG)) { expect(VALID_COLLECTIONS).toContain(config.collection) } }) it('should have non-empty queries for all types', () => { for (const [, config] of Object.entries(DOCUMENT_RAG_CONFIG)) { expect(config.query).toBeTruthy() expect(config.query.length).toBeGreaterThan(5) } }) it('should have DSFA mapped to bp_dsfa_corpus', () => { expect(DOCUMENT_RAG_CONFIG.dsfa.collection).toBe('bp_dsfa_corpus') }) it('should have unique queries for each document type', () => { const queries = Object.values(DOCUMENT_RAG_CONFIG).map(c => c.query) const uniqueQueries = new Set(queries) expect(uniqueQueries.size).toBe(queries.length) }) })