refactored the testcase to also cover the case of setting multiple languages

pull/4692/head
Frank Elsinga 3 weeks ago
parent 39f567a0f3
commit d9cce9b244

@ -3,46 +3,52 @@ import { currentLocale } from "../../../src/i18n";
describe("Test i18n.js", () => {
it("currentLocale()", () => {
const setLanguage = (language) => {
const setLanguages = (languages) => {
Object.defineProperty(navigator, 'language', {
value: language,
value: languages[0],
writable: true
});
Object.defineProperty(navigator, 'languages', {
value: [language],
value: languages,
writable: true
});
}
setLanguage('en-EN');
setLanguages(['en-EN']);
expect(currentLocale()).equal("en");
setLanguage('zh-HK');
setLanguages(['zh-HK']);
expect(currentLocale()).equal("zh-HK");
// Note that in Safari on iOS prior to 10.2, the country code returned is lowercase: "en-us", "fr-fr" etc.
// https://developer.mozilla.org/en-US/docs/Web/API/Navigator/language
setLanguage('zh-hk');
setLanguages(['zh-hk']);
expect(currentLocale()).equal("en");
setLanguage('en-US');
setLanguages(['en-US']);
expect(currentLocale()).equal("en");
setLanguage('ja-ZZ');
setLanguages(['ja-ZZ']);
expect(currentLocale()).equal("ja");
setLanguage('zz-ZZ');
setLanguages(['zz-ZZ']);
expect(currentLocale()).equal("en");
setLanguage('zz-ZZ');
setLanguages(['zz-ZZ']);
expect(currentLocale()).equal("en");
setLanguage('en');
localStorage.locale = "en";
setLanguages(['en-US', 'en', 'pl', 'ja']);
expect(currentLocale()).equal("en");
localStorage.locale = "zh-HK";
expect(currentLocale()).equal("zh-HK");
setLanguages(['en-US', 'pl', 'ja']);
expect(currentLocale()).equal("en");
setLanguages(['abc', 'en-US', 'pl', 'ja']);
expect(currentLocale()).equal("en");
setLanguages(['en']);
localStorage.locale = "de";
expect(currentLocale()).equal("de");
});
});

Loading…
Cancel
Save