openpencil/tests/engine/vue/i18n/locale.test.ts
Danila Poyarkov e257af0e0a fix(i18n): respect browser locale priority
- Match regional language tags to supported base locales in preference order

- Preserve exact regional matches and English fallback

- Cover the reported locale sequence and unsupported variants
2026-07-28 03:19:32 +03:00

27 lines
921 B
TypeScript

import { describe, expect, test } from 'bun:test'
import { resolveBrowserLocale } from '#vue/i18n/locale'
describe('browser locale matching', () => {
test('matches a primary regional locale before secondary languages', () => {
expect(resolveBrowserLocale(['en-US', 'it-IT', 'it', 'es-ES', 'es', 'en'])).toBe('en')
})
test('preserves browser language preference order', () => {
expect(resolveBrowserLocale(['it-IT', 'en-US'])).toBe('it')
})
test('prefers exact supported regional locales', () => {
expect(resolveBrowserLocale(['zh-CN', 'en-US'])).toBe('zh-CN')
expect(resolveBrowserLocale(['ZH-cn', 'en-US'])).toBe('zh-CN')
})
test('does not substitute a different regional locale', () => {
expect(resolveBrowserLocale(['zh-TW', 'fr-CA'])).toBe('fr')
})
test('falls back to English when no locale matches', () => {
expect(resolveBrowserLocale(['ko-KR'])).toBe('en')
})
})