17 Commits

Author SHA1 Message Date
jakob.scheid c42d650302 test(current-language-util): shorten test description 2026-06-03 20:23:35 +02:00
jakob.scheid b3b9917b55 test(current-language-util): add local storage language test cases 2026-06-03 20:22:42 +02:00
jakob.scheid aa7adf21dd test(current-language-util): set local storage item 'locale' to the local storage language if it is specified 2026-06-03 20:21:06 +02:00
jakob.scheid d1ea5a2fa2 test(current-language-util): add test cases localStorageLanguage key 2026-06-03 20:19:38 +02:00
jakob.scheid 68415da6cd test(current-language-util): remove local storage language test cases 2026-06-03 20:10:53 +02:00
jakob.scheid 3dfbf88c37 test(current-language-util): use objects for test cases 2026-06-03 20:00:08 +02:00
jakob.scheid 4d928f7845 test(current-language-util): add local storage languages array 2026-06-03 17:54:17 +02:00
jakob.scheid 483407e0ba refactor(current-language-util): move the locales array to a separate const in the test 2026-06-03 17:52:54 +02:00
jakob.scheid 028e52a52b fix(current-language-util): use the full locale instead of the language for the testing environment 2026-06-03 17:46:00 +02:00
jakob.scheid 46b75f6c5d test(current-language-util): update test description 2026-06-03 17:45:46 +02:00
jakob.scheid 42a3e93f60 test(current-language-util): add actual test 2026-06-03 17:35:56 +02:00
jakob.scheid 60744b46c4 test(current-language-util): add navigator.language configuration 2026-06-03 17:35:46 +02:00
jakob.scheid 4eef927929 test(current-language-util): add test cases with extension 2026-06-03 17:35:27 +02:00
jakob.scheid 2e283ba260 test(current-language-util): add test cases with writing system 2026-06-03 17:34:44 +02:00
jakob.scheid 8947b0a4c5 test(current-language-util): add test cases with country code 2026-06-03 17:34:16 +02:00
jakob.scheid 9aa8b53668 test(current-language-util): add simple test cases 2026-06-02 22:47:15 +02:00
jakob.scheid b9a1bafc15 test(current-language-util): add test boilerplate 2026-06-02 22:46:35 +02:00
@@ -0,0 +1,61 @@
/*
Copyright 2026 Seekra
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import { expect, test } from 'vitest';
import getCurrentLanguage from '../currentLanguage';
const locales = [
{ navigatorLanguage: 'en', localStorageLanguage: null, expected: 'en'},
{ navigatorLanguage: 'de', localStorageLanguage: null, expected: 'de'},
{ navigatorLanguage: 'fr', localStorageLanguage: null, expected: 'fr'},
{ navigatorLanguage: 'en-US', localStorageLanguage: null, expected: 'en'},
{ navigatorLanguage: 'en-AU', localStorageLanguage: null, expected: 'en'},
{ navigatorLanguage: 'de-DE', localStorageLanguage: null, expected: 'de'},
{ navigatorLanguage: 'fr-FR', localStorageLanguage: null, expected: 'fr'},
{ navigatorLanguage: 'en-us', localStorageLanguage: null, expected: 'en'},
{ navigatorLanguage: 'en-au', localStorageLanguage: null, expected: 'en'},
{ navigatorLanguage: 'de-de', localStorageLanguage: null, expected: 'de'},
{ navigatorLanguage: 'fr-fr', localStorageLanguage: null, expected: 'fr'},
{ navigatorLanguage: 'zh-Hans-CN', localStorageLanguage: null, expected: 'zh'},
{ navigatorLanguage: 'zh-Hant-TW', localStorageLanguage: null, expected: 'zh'},
{ navigatorLanguage: 'uz-Latn-UZ', localStorageLanguage: null, expected: 'uz'},
{ navigatorLanguage: 'en-US-u-ca-gregory', localStorageLanguage: null, expected: 'en'},
{ navigatorLanguage: 'de-DE-u-co-phonebk', localStorageLanguage: null, expected: 'de'},
{ navigatorLanguage: 'zh-Hant-TW-u-co-phonebk', localStorageLanguage: null, expected: 'zh'},
{ navigatorLanguage: 'en', localStorageLanguage: 'de', expected: 'de'},
{ navigatorLanguage: 'de-DE', localStorageLanguage: 'en', expected: 'en'},
{ navigatorLanguage: 'de-de', localStorageLanguage: 'en', expected: 'en'},
{ navigatorLanguage: 'zh-Hans-CN', localStorageLanguage: 'fr', expected: 'fr'},
{ navigatorLanguage: 'en-US-u-ca-gregory', localStorageLanguage: 'zh', expected: 'zh'}
];
test.for(locales)('returns the language $expected (navigator: $navigatorLanguage; local storage: $localStorageLanguage)', ({ navigatorLanguage, localStorageLanguage, expected }) => {
Object.defineProperty(navigator, 'language', {
value: navigatorLanguage,
configurable: true
});
if (localStorageLanguage) {
localStorage.setItem('locale', localStorageLanguage);
};
expect(getCurrentLanguage()).toBe(expected);
});