mirror of
https://github.com/cupcakearmy/svelte-i18n.git
synced 2024-11-16 09:59:58 +01:00
test: 💍 add some misisng tests
This commit is contained in:
parent
b3098ba67b
commit
cf8d32f0a6
@ -63,8 +63,8 @@ export async function flushQueue(locale: string = getCurrentLocale()) {
|
||||
// TODO what happens if some loader fails
|
||||
activeLocaleFlushes[locale] = Promise.all(
|
||||
queues.map(([locale, queue]) => {
|
||||
removeLocaleFromQueue(locale)
|
||||
return Promise.all(queue.map(loader => loader())).then(partials => {
|
||||
removeLocaleFromQueue(locale)
|
||||
partials = partials.map(partial => partial.default || partial)
|
||||
addMessages(locale, ...partials)
|
||||
})
|
||||
|
@ -63,6 +63,7 @@ $locale.set = (newLocale: string): void | Promise<void> => {
|
||||
return localeSet(newLocale)
|
||||
}
|
||||
|
||||
// istanbul ignore next
|
||||
$locale.update = (fn: (locale: string) => void | Promise<void>) =>
|
||||
localeSet(fn(current))
|
||||
|
||||
|
@ -24,6 +24,11 @@ test('adds a new dictionary to a locale', () => {
|
||||
})
|
||||
})
|
||||
|
||||
test('gets the whole current dictionary', () => {
|
||||
addMessages('en', { field_1: 'name' })
|
||||
expect(getDictionary()).toMatchObject(get($dictionary))
|
||||
})
|
||||
|
||||
test('merges the existing dictionaries with new ones', () => {
|
||||
addMessages('en', { field_1: 'name', deep: { prop1: 'foo' } })
|
||||
addMessages('en', { field_2: 'lastname', deep: { prop2: 'foo' } })
|
||||
@ -44,13 +49,6 @@ test('merges the existing dictionaries with new ones', () => {
|
||||
})
|
||||
})
|
||||
|
||||
test('gets the whole current dictionary', () => {
|
||||
addMessages('en', { field_1: 'name' })
|
||||
expect(getDictionary()).toMatchObject({
|
||||
en: { field_1: 'name' },
|
||||
})
|
||||
})
|
||||
|
||||
test('gets the dictionary of a locale', () => {
|
||||
addMessages('en', { field_1: 'name' })
|
||||
expect(getLocaleDictionary('en')).toMatchObject({ field_1: 'name' })
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { lookupMessage } from './../../../src/client/includes/lookup'
|
||||
import { get } from 'svelte/store'
|
||||
|
||||
import {
|
||||
@ -9,6 +10,8 @@ import {
|
||||
isRelatedLocale,
|
||||
} from '../../../src/client/stores/locale'
|
||||
import { getOptions, configure } from '../../../src/client/configs'
|
||||
import { register } from '../../../src/client'
|
||||
import { hasLocaleQueue } from '../../../src/client/includes/loaderQueue'
|
||||
|
||||
beforeEach(() => {
|
||||
configure({ fallbackLocale: undefined })
|
||||
@ -117,3 +120,17 @@ test('if no initial locale was found, set to the fallback locale', () => {
|
||||
expect(get($locale)).toBe('en')
|
||||
expect(getOptions().fallbackLocale).toBe('en')
|
||||
})
|
||||
|
||||
test('should flush the queue of the locale when changing the store value', async () => {
|
||||
register(
|
||||
'en',
|
||||
() => new Promise(res => setTimeout(() => res({ foo: 'Foo' }), 50))
|
||||
)
|
||||
|
||||
expect(hasLocaleQueue('en')).toBe(true)
|
||||
|
||||
await $locale.set('en')
|
||||
|
||||
expect(hasLocaleQueue('en')).toBe(false)
|
||||
expect(lookupMessage('foo', 'en')).toBe('Foo')
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user