0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-02-10 21:58:23 -05:00
logto/packages/core/src/middleware/koa-i18next.test.ts

31 lines
914 B
TypeScript
Raw Normal View History

2022-12-26 20:12:19 +08:00
import { pickDefault, createMockUtils } from '@logto/shared/esm';
import i18next from 'i18next';
2022-11-21 16:38:24 +08:00
import { createContextWithRouteParameters } from '#src/utils/test-utils.js';
2022-12-12 13:43:23 +08:00
const { jest } = import.meta;
2022-12-26 20:12:19 +08:00
const { mockEsmDefault } = createMockUtils(jest);
2022-12-12 13:43:23 +08:00
const mockLanguage = () => ['zh-cn'];
mockEsmDefault('#src/i18n/detect-language.js', () => mockLanguage);
2022-12-12 13:43:23 +08:00
const initI18n = await pickDefault(import('#src/i18n/init.js'));
const koaI18next = await pickDefault(import('./koa-i18next.js'));
const changLanguageSpy = jest.spyOn(i18next, 'changeLanguage');
describe('koaI18next', () => {
const next = jest.fn();
2022-11-21 16:38:24 +08:00
it('detect language', async () => {
const ctx = {
...createContextWithRouteParameters(),
query: {},
locale: 'en',
};
await initI18n();
await koaI18next()(ctx, next);
expect(ctx.locale).toEqual('zh-CN');
expect(changLanguageSpy).toBeCalled();
});
});