Skip to content

Commit

Permalink
test: add tests for i18n
Browse files Browse the repository at this point in the history
  • Loading branch information
cawa-93 committed Jul 28, 2023
1 parent 5bff0ee commit 771d121
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions tests/i18n.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import {expect, test} from "@playwright/test";

const localeCodes = ['uk', 'en'] as const

const locales = await Promise.all(localeCodes.map(async code => ({
code,
messages: (await import(`../dist/_locales/${code}/messages.json`, {assert: {type: 'json'}})).default
})))

test('All keys in all localizations must be the same', () => {
const expectedKeys = Object.keys(locales[0].messages)
for (let i = 1; i < locales.length; i++) {
expect(Object.keys(locales[i].messages), `Locale "${locales[i].code}" doesn't match locale "${locales[0].code}"`).toEqual(expectedKeys)
}
})


test.only('Messages do not have to have the same values in different locales', () => {

const messagesMap: Record<string, { code: typeof localeCodes[number], value: string }[]> = {}

for (const {code, messages} of locales) {
for (const messagesKey in messages) {

if (!messagesMap[messagesKey]) {
messagesMap[messagesKey] = []
}

if (messagesMap[messagesKey].length) {
for (const localeToCompare of messagesMap[messagesKey]) {
expect(localeToCompare.value, `Locale "${code}" have equal value for key "${messagesKey}" in locale "${localeToCompare.code}"`).not.toEqual(messages[messagesKey].message)
}
}

messagesMap[messagesKey].push({
code,
value: messages[messagesKey].message
})
}
}
})

0 comments on commit 771d121

Please sign in to comment.