39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
import { describe, expect, it } from "vitest"
|
|
|
|
import { mediaMessages } from "../messages"
|
|
import { mediaCatalogLocales } from "./catalogs"
|
|
import { messages as enUS } from "./en-US"
|
|
import { messages as zhHans } from "./zh-Hans"
|
|
|
|
describe("media locale catalogs", () => {
|
|
it("ships every media message in every built-in locale", () => {
|
|
expectCompleteCatalogs({
|
|
catalogs: {
|
|
"en-US": enUS,
|
|
"zh-Hans": zhHans,
|
|
},
|
|
locales: mediaCatalogLocales,
|
|
messageIds: Object.values(mediaMessages).map(
|
|
(descriptor) => descriptor.id
|
|
),
|
|
})
|
|
})
|
|
})
|
|
|
|
function expectCompleteCatalogs({
|
|
catalogs,
|
|
locales,
|
|
messageIds,
|
|
}: {
|
|
catalogs: Readonly<Record<string, Readonly<Record<string, string>>>>
|
|
locales: readonly string[]
|
|
messageIds: readonly string[]
|
|
}) {
|
|
expect(Object.keys(catalogs)).toEqual([...locales])
|
|
|
|
const expectedIds = new Set(messageIds)
|
|
for (const messages of Object.values(catalogs)) {
|
|
expect(new Set(Object.keys(messages))).toEqual(expectedIds)
|
|
}
|
|
}
|