import { describe, expect, it } from 'vitest'; import { operationalStorageState, plural, presentArrayRole, presentComponent, presentEntityType, presentEventSummary, presentEventType, presentInventoryField, presentMetric, presentReason, presentRelationType, presentStatus, presentStoragePolicy, presentUnit } from '../../src/presentation'; describe('Nederlandse presentatielaag', () => { it('vertaalt begrensde status- en reason-codes', () => { expect(presentStatus('critical')).toBe('Kritiek'); expect(presentReason('source_health_unknown')).toBe('De gezondheid van deze bron is onbekend.'); expect(presentReason('source_stale')).toContain('meting is verouderd'); expect(presentReason('filesystem_root_not_configured')).toContain('Bestandssysteemmetingen'); expect(presentReason('container_exited')).toBe('De container is gestopt.'); expect(presentReason('backup_verified')).toBe('De backup is geverifieerd.'); expect(presentReason('backup_stale')).toContain('maak en verifieer een nieuwe backup'); expect(presentReason('backup_verification_failed')).toContain('controleer de backupbestemming'); expect(presentReason('authenticated_session')).toContain('aanmeldsessie is geldig'); expect(presentReason('internal.unknown_code')).toContain('Open de technische details'); }); it('laat de zwaarste opslagernst winnen zonder device-health te herschrijven', () => { expect(operationalStorageState('healthy', 'critical')).toBe('critical'); expect(operationalStorageState('degraded', 'normal')).toBe('degraded'); expect(operationalStorageState('healthy', 'normal')).toBe('healthy'); }); it('presenteert componenten en metrics zonder implementatiecode', () => { expect(presentComponent('worker')).toBe('Achtergrondverwerking'); expect(presentComponent('notifications')).toBe('Notificaties'); expect(presentComponent('oidc')).toBe('Aanmelding'); expect(presentComponent('probes')).toBe('Servicecontroles'); expect(presentMetric('storage.disk.temperature')).toBe('Temperatuur per disk'); expect(presentMetric('future.metric')).toBe('Goedgekeurde meting'); expect(presentUnit('percent')).toBe('%'); }); it('vertaalt operationele domeincodes voor primaire schermen', () => { expect(presentStatus('sleeping')).toBe('Slapend'); expect(presentStatus('online')).toBe('Online'); expect(presentStoragePolicy('HIGHWATER')).toBe('Hoogwater'); expect(presentArrayRole('parity')).toBe('Pariteit'); expect(presentEntityType('probe')).toBe('Servicecontrole'); expect(presentEntityType('application-project')).toBe('Compose-project'); expect(presentInventoryField('runtimeState')).toBe('Runtime-status'); expect(presentRelationType('depends_on')).toBe('is afhankelijk van'); expect(presentEventType('container.restart')).toBe('Container herstart'); expect(presentEventSummary('container.restart', 'Container restarted.')).toBe('De container is opnieuw gestart.'); }); it('gebruikt de correcte enkelvoudsvorm alleen voor één', () => { expect(plural(0, 'melding', 'meldingen')).toBe('meldingen'); expect(plural(1, 'melding', 'meldingen')).toBe('melding'); expect(plural(2, 'melding', 'meldingen')).toBe('meldingen'); }); });