Files
goodgo-platform/apps/web/i18n/__tests__/config.spec.ts
Ho Ngoc Hai 0924f0cb9b test(web): add middleware + i18n + messages test suites (GOO-60)
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>
2026-04-23 10:47:30 +07:00

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');
});
});
});