// SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0 import { businessAppError, toBusinessError } from "@conusai-kit/business" import { businessRefusalNotices } from "@conusai-kit/business/refusals" import { describe, expect, it } from "vitest" import { en } from "../i18n/en.js" import { lt } from "../i18n/lt.js" import { describeFailure, type Labels } from "../ui/labels.js" // What the loader hands the forms (ui/pages.tsx): the module's messages and the kit's refusal sentences. const labelsOf = (messages: typeof en, locale: "en" | "lt"): Labels => ({ ...messages, refusals: businessRefusalNotices(locale, { conflict: messages.conflict, revision_conflict: messages.conflict, invalid: messages.invalid, }), }) describe("Activities error text", () => { it.each([ [en, "en"], [lt, "lt"], ] as const)("translates known refusals without showing remote detail", (messages, locale) => { const labels = labelsOf(messages, locale) for (const [code, expected] of [ ["business_conflict", messages.conflict], ["business_revision_conflict", messages.conflict], ["business_invalid", messages.invalid], ["service_partition_revoked", labels.refusals.service_partition_revoked], ["service_degraded", labels.refusals.service_degraded], ["service_migrating", labels.refusals.service_migrating], ]) { const message = describeFailure({ problem: { code, detail: "upstream private fixture value" } }, labels) expect(message).toBe(expected) expect(message).not.toContain("private fixture value") } expect(describeFailure({ problem: { code: "untrusted", detail: "upstream private fixture value" } }, labels)).toBe( messages.unavailable, ) }) it("tells a Lithuanian reader the kit's sentence for a refusal of the Activities service", () => { const refusal = businessAppError( toBusinessError( { type: "urn:conusai:activities:erased-participant", detail: "upstream private fixture value" }, new Response(null, { status: 409 }), ), ) expect(describeFailure(refusal, labelsOf(lt, "lt"))).toBe( "Dalyvio duomenys ištrinti, todėl šios veiklos pakeisti negalima.", ) expect(describeFailure({ problem: { code: "service_migrating" } }, labelsOf(lt, "lt"))).toBe( "Paslauga atnaujinama. Bandykite po kelių minučių.", ) }) })