Files
simple-react-app-kit/packages/media/src/locales/catalogs.test.ts
T
2026-09-20 16:44:15 +08:00

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)
}
}