Skip to content

Commit

Permalink
fix: create i18next clone to fix #1063 (#1073)
Browse files Browse the repository at this point in the history
* create i18next clone to fix #1063

* added dedicated test for i18next clone
  • Loading branch information
adrai committed Mar 16, 2021
1 parent ff9b5fa commit 15c65ae
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
19 changes: 18 additions & 1 deletion src/createClient/node.test.ts
Expand Up @@ -7,14 +7,31 @@ const config = {
} as any

describe('createClientNode', () => {
const client = createClientNode(config)
it('returns a node client', () => {
const client = createClientNode(config)
expect(typeof client.initPromise.then).toEqual('function')
expect(typeof client.i18n.addResource).toEqual('function')
expect(typeof (client.i18n as any).translator).toEqual('object')
expect(
(client.i18n.options as any).defaultLocale
).toEqual(config.defaultLocale)
expect((client.i18n.options as any).locales).toEqual(config.locales)
expect((client.i18n.options as any).isClone).not.toEqual(true)
})

describe('createClientNode a second time should return a clone of i18next', () => {
it('returns a node client', () => {
const secondClient = createClientNode(config)
expect(typeof secondClient.initPromise.then).toEqual('function')
expect(typeof secondClient.i18n.addResource).toEqual('function')
expect(typeof (secondClient.i18n as any).translator).toEqual('object')
expect(
(secondClient.i18n.options as any).defaultLocale
).toEqual(config.defaultLocale)
expect((secondClient.i18n.options as any).locales).toEqual(config.locales)
expect((secondClient.i18n.options as any).isClone).toEqual(true)
expect(secondClient).not.toEqual(client)
expect((secondClient as any).store).toEqual((client as any).store)
})
})
})
5 changes: 5 additions & 0 deletions src/createClient/node.ts
Expand Up @@ -8,6 +8,11 @@ let instance: I18n
export default (config: InternalConfig): CreateClientReturn => {
if (!instance) {
instance = i18n.createInstance(config)
} else {
instance = instance.cloneInstance({
...config,
initImmediate: false,
})
}
let initPromise: InitPromise

Expand Down

1 comment on commit 15c65ae

@vercel
Copy link

@vercel vercel bot commented on 15c65ae Mar 16, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.