@@ -0,0 +1,56 @@
|
||||
// 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ų.",
|
||||
)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user