test(i18n): add issue-207 smoke evidence for locale fallback and audio policy
This commit is contained in:
@@ -44,4 +44,48 @@ describe('lobby i18n locale propagation', () => {
|
||||
i18n.setPreferredLocale('en');
|
||||
expect(updates).toEqual(['en', 'da']);
|
||||
});
|
||||
|
||||
it('falls back to default en translation when da key is intentionally missing', async () => {
|
||||
vi.stubGlobal('window', {
|
||||
location: { search: '' },
|
||||
localStorage: storageMock({ 'wpp.locale': 'da' }),
|
||||
});
|
||||
vi.stubGlobal('navigator', { language: 'da-DK' });
|
||||
|
||||
const i18n = await import('./lobby-i18n');
|
||||
const catalogModule = await import('../../../../shared/i18n/lobby.json');
|
||||
const catalog = catalogModule.default as {
|
||||
frontend: {
|
||||
ui: {
|
||||
common: {
|
||||
refresh: {
|
||||
en?: string;
|
||||
da?: string;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
const originalDa = catalog.frontend.ui.common.refresh.da;
|
||||
catalog.frontend.ui.common.refresh.da = undefined;
|
||||
|
||||
try {
|
||||
expect(i18n.t('common.refresh', 'da')).toBe(catalog.frontend.ui.common.refresh.en);
|
||||
} finally {
|
||||
catalog.frontend.ui.common.refresh.da = originalDa;
|
||||
}
|
||||
});
|
||||
|
||||
it('exposes primary-only audio routing policy to clients', async () => {
|
||||
vi.stubGlobal('window', {
|
||||
location: { search: '' },
|
||||
localStorage: storageMock({ 'wpp.locale': 'en' }),
|
||||
});
|
||||
vi.stubGlobal('navigator', { language: 'en-US' });
|
||||
|
||||
const i18n = await import('./lobby-i18n');
|
||||
|
||||
expect(i18n.clientHasNoAudioOutput).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user