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