Cover frontend middleware auth/locale logic, i18n config/routing/request/navigation, and vi/en message parity — 91 new tests across 6 files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { locales, defaultLocale } from '../config';
|
|
import type { Locale } from '../config';
|
|
|
|
describe('i18n/config', () => {
|
|
describe('locales', () => {
|
|
it('exports an array of supported locales', () => {
|
|
expect(Array.isArray(locales)).toBe(true);
|
|
expect(locales.length).toBeGreaterThanOrEqual(2);
|
|
});
|
|
|
|
it('includes Vietnamese (vi) as a supported locale', () => {
|
|
expect(locales).toContain('vi');
|
|
});
|
|
|
|
it('includes English (en) as a supported locale', () => {
|
|
expect(locales).toContain('en');
|
|
});
|
|
|
|
it('only contains vi and en', () => {
|
|
expect([...locales]).toEqual(['vi', 'en']);
|
|
});
|
|
|
|
it('is a readonly tuple', () => {
|
|
// TypeScript const assertion — runtime check that it behaves as expected
|
|
const copy = [...locales];
|
|
expect(copy).toEqual(['vi', 'en']);
|
|
});
|
|
});
|
|
|
|
describe('defaultLocale', () => {
|
|
it('is set to Vietnamese (vi)', () => {
|
|
expect(defaultLocale).toBe('vi');
|
|
});
|
|
|
|
it('is one of the supported locales', () => {
|
|
expect(locales).toContain(defaultLocale);
|
|
});
|
|
});
|
|
|
|
describe('Locale type', () => {
|
|
it('accepts valid locale values', () => {
|
|
const vi: Locale = 'vi';
|
|
const en: Locale = 'en';
|
|
expect(vi).toBe('vi');
|
|
expect(en).toBe('en');
|
|
});
|
|
});
|
|
});
|