Fix jest failing
This commit is contained in:
parent
392631fc79
commit
136c31037f
|
@ -231,7 +231,7 @@ THE SOFTWARE.
|
||||||
|
|
||||||
// Apply browser language if not specified in query
|
// Apply browser language if not specified in query
|
||||||
if (!imported || !imported.global || !imported.global.app || !imported.global.app.lang) {
|
if (!imported || !imported.global || !imported.global.app || !imported.global.app.lang) {
|
||||||
const language = browserLanguage();
|
const language = browserLanguage(availablePacks);
|
||||||
if (language) this.lang = language;
|
if (language) this.lang = language;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,10 +24,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { availablePacks } from './language_pack_context';
|
|
||||||
import { fromSep } from './language_pack_name';
|
import { fromSep } from './language_pack_name';
|
||||||
|
|
||||||
export default () => {
|
export default availablePacks => {
|
||||||
if (typeof window === 'object' && typeof window.navigator === 'object') {
|
if (typeof window === 'object' && typeof window.navigator === 'object') {
|
||||||
const userLocales = new Set();
|
const userLocales = new Set();
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,6 @@ class MockLocales {
|
||||||
}
|
}
|
||||||
|
|
||||||
static setDateTimeLocale(locale) {
|
static setDateTimeLocale(locale) {
|
||||||
const newDateTimeFormat = new Intl.DateTimeFormat(locale);
|
|
||||||
MockLocales.IntlBackup = Intl;
|
MockLocales.IntlBackup = Intl;
|
||||||
if (!locale) {
|
if (!locale) {
|
||||||
// eslint-disable-next-line no-global-assign
|
// eslint-disable-next-line no-global-assign
|
||||||
|
@ -54,6 +53,7 @@ class MockLocales {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const newDateTimeFormat = new Intl.DateTimeFormat(locale);
|
||||||
// eslint-disable-next-line no-global-assign
|
// eslint-disable-next-line no-global-assign
|
||||||
Intl = {
|
Intl = {
|
||||||
DateTimeFormat() {
|
DateTimeFormat() {
|
||||||
|
@ -97,13 +97,13 @@ describe('browserLanguage', () => {
|
||||||
MockLocales.setDateTimeLocale(undefined);
|
MockLocales.setDateTimeLocale(undefined);
|
||||||
|
|
||||||
MockLocales.setNavigatorLanguages(['zh-CN', 'zh','en-US','en']);
|
MockLocales.setNavigatorLanguages(['zh-CN', 'zh','en-US','en']);
|
||||||
expect(browserLanguage()).toEqual('zhCN');
|
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhCN');
|
||||||
|
|
||||||
MockLocales.setNavigatorLanguages(['zh-TW','zh','en-US','en']);
|
MockLocales.setNavigatorLanguages(['zh-TW','zh','en-US','en']);
|
||||||
expect(browserLanguage()).toEqual('zhTW');
|
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhTW');
|
||||||
|
|
||||||
MockLocales.setNavigatorLanguages(['zh', 'en-US', 'en']);
|
MockLocales.setNavigatorLanguages(['zh', 'en-US', 'en']);
|
||||||
expect(browserLanguage()).toEqual('en');
|
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
|
||||||
|
|
||||||
MockLocales.restoreDateTimeLocale();
|
MockLocales.restoreDateTimeLocale();
|
||||||
});
|
});
|
||||||
|
@ -112,7 +112,7 @@ describe('browserLanguage', () => {
|
||||||
MockLocales.setDateTimeLocale(undefined);
|
MockLocales.setDateTimeLocale(undefined);
|
||||||
|
|
||||||
MockLocales.setNavigatorLanguages(['ja-JP', 'ja', 'en-US']);
|
MockLocales.setNavigatorLanguages(['ja-JP', 'ja', 'en-US']);
|
||||||
expect(browserLanguage()).toEqual('en');
|
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
|
||||||
|
|
||||||
MockLocales.restoreDateTimeLocale();
|
MockLocales.restoreDateTimeLocale();
|
||||||
});
|
});
|
||||||
|
@ -121,7 +121,7 @@ describe('browserLanguage', () => {
|
||||||
MockLocales.setDateTimeLocale(undefined);
|
MockLocales.setDateTimeLocale(undefined);
|
||||||
|
|
||||||
MockLocales.setNavigatorLanguages(['ja-JP', 'ja', 'zh']);
|
MockLocales.setNavigatorLanguages(['ja-JP', 'ja', 'zh']);
|
||||||
expect(browserLanguage()).toEqual('zhCN');
|
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhCN');
|
||||||
|
|
||||||
MockLocales.restoreDateTimeLocale();
|
MockLocales.restoreDateTimeLocale();
|
||||||
});
|
});
|
||||||
|
@ -130,7 +130,7 @@ describe('browserLanguage', () => {
|
||||||
MockLocales.setDateTimeLocale(undefined);
|
MockLocales.setDateTimeLocale(undefined);
|
||||||
|
|
||||||
MockLocales.setNavigatorLanguages(['ja-JP','ja']);
|
MockLocales.setNavigatorLanguages(['ja-JP','ja']);
|
||||||
expect(browserLanguage()).toBeFalsy();
|
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toBeFalsy();
|
||||||
|
|
||||||
MockLocales.restoreDateTimeLocale();
|
MockLocales.restoreDateTimeLocale();
|
||||||
});
|
});
|
||||||
|
@ -140,7 +140,7 @@ describe('browserLanguage', () => {
|
||||||
MockLocales.setNavigatorLanguages(undefined);
|
MockLocales.setNavigatorLanguages(undefined);
|
||||||
MockLocales.setNavigatorLanguage(undefined);
|
MockLocales.setNavigatorLanguage(undefined);
|
||||||
MockLocales.setDateTimeLocale(undefined);
|
MockLocales.setDateTimeLocale(undefined);
|
||||||
expect(browserLanguage()).toBeFalsy();
|
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toBeFalsy();
|
||||||
MockLocales.restoreDateTimeLocale();
|
MockLocales.restoreDateTimeLocale();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@ describe('browserLanguage', () => {
|
||||||
MockLocales.setNavigatorLanguage('en');
|
MockLocales.setNavigatorLanguage('en');
|
||||||
MockLocales.setNavigatorLanguages(undefined);
|
MockLocales.setNavigatorLanguages(undefined);
|
||||||
MockLocales.setDateTimeLocale(undefined);
|
MockLocales.setDateTimeLocale(undefined);
|
||||||
expect(browserLanguage()).toEqual('en');
|
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
|
||||||
MockLocales.restoreDateTimeLocale();
|
MockLocales.restoreDateTimeLocale();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -156,14 +156,14 @@ describe('browserLanguage', () => {
|
||||||
MockLocales.setNavigatorLanguage(undefined);
|
MockLocales.setNavigatorLanguage(undefined);
|
||||||
MockLocales.setNavigatorLanguages(['en-US','en']);
|
MockLocales.setNavigatorLanguages(['en-US','en']);
|
||||||
MockLocales.setDateTimeLocale(undefined);
|
MockLocales.setDateTimeLocale(undefined);
|
||||||
expect(browserLanguage()).toEqual('en');
|
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
|
||||||
MockLocales.restoreDateTimeLocale();
|
MockLocales.restoreDateTimeLocale();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('navigator is `undefined` and Intl locale is `en-US`',() => {
|
test('navigator is `undefined` and Intl locale is `en-US`',() => {
|
||||||
MockLocales.setNavigator(undefined);
|
MockLocales.setNavigator(undefined);
|
||||||
MockLocales.setDateTimeLocale('en-US');
|
MockLocales.setDateTimeLocale('en-US');
|
||||||
expect(browserLanguage()).toEqual('en');
|
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
|
||||||
MockLocales.restoreDateTimeLocale();
|
MockLocales.restoreDateTimeLocale();
|
||||||
MockLocales.restoreNavigator();
|
MockLocales.restoreNavigator();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue