45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest"
|
|
|
|
import { localizePersonFieldErrors } from "@/actions/person.messages"
|
|
|
|
const actionCopy = {
|
|
createSuccess: "Persona creada correctamente",
|
|
createFailure: "Error al crear la persona",
|
|
updateSuccess: "Persona actualizada correctamente",
|
|
updateFailure: "Error al actualizar la persona",
|
|
duplicateEmail: "El correo electrónico ya existe",
|
|
notFound: "Persona no encontrada",
|
|
}
|
|
|
|
describe("person action message localization", () => {
|
|
it("localizes known person field errors (email only, no username)", () => {
|
|
expect(
|
|
localizePersonFieldErrors(
|
|
{
|
|
email: ["Email already exists"],
|
|
},
|
|
actionCopy,
|
|
),
|
|
).toEqual({
|
|
email: [actionCopy.duplicateEmail],
|
|
})
|
|
})
|
|
|
|
it("keeps unknown messages unchanged", () => {
|
|
expect(
|
|
localizePersonFieldErrors(
|
|
{ firstName: ["Unexpected person issue"] },
|
|
actionCopy,
|
|
),
|
|
).toEqual({ firstName: ["Unexpected person issue"] })
|
|
})
|
|
|
|
it("returns undefined when errors are undefined", () => {
|
|
expect(localizePersonFieldErrors(undefined, actionCopy)).toBeUndefined()
|
|
})
|
|
|
|
it("returns undefined when errors are empty", () => {
|
|
expect(localizePersonFieldErrors({}, actionCopy)).toEqual({})
|
|
})
|
|
})
|