import { describe, expect, it } from 'vitest'; import i18n from '@/i18n/index'; import { engagementStatusLabel, simulationStatusLabel } from '@/i18n/status'; import { formatDate, formatDateTime } from '@/lib/format'; describe('i18n smoke tests', () => { it('resolves common.save to French', () => { expect(i18n.t('common.save')).toBe('Enregistrer'); }); it('missing key returns the key path', () => { expect(i18n.t('this.key.does.not.exist')).toBe('this.key.does.not.exist'); }); it('simulationStatusLabel done → Terminé', () => { expect(simulationStatusLabel('done')).toBe('Terminé'); }); it('engagementStatusLabel active → Actif', () => { expect(engagementStatusLabel('active')).toBe('Actif'); }); it('interpolation inserts the value', () => { expect(i18n.t('engagement.list.deleteConfirm', { name: 'Test' })).toContain('Test'); }); }); describe('format helpers', () => { it('formatDate returns — for null', () => { expect(formatDate(null)).toBe('—'); }); it('formatDate returns — for undefined', () => { expect(formatDate(undefined)).toBe('—'); }); it('formatDate formats ISO date in fr-FR', () => { const result = formatDate('2026-06-01'); expect(result).toMatch(/\d{2}\/\d{2}\/\d{4}/); }); it('formatDateTime returns a non-empty string for valid ISO', () => { const result = formatDateTime('2026-06-01T08:00:00'); expect(result.length).toBeGreaterThan(0); }); });