Files
stock-manager/tests/unit/actions/asset.messages.test.ts
T

52 lines
1.8 KiB
TypeScript

import { describe, expect, it } from "vitest"
import { localizeAssetFieldErrors } from "@/actions/asset.messages"
const actionCopy = {
createSuccess: "Activo creado correctamente",
createFailure: "Error al crear el activo",
updateSuccess: "Activo actualizado correctamente",
updateFailure: "Error al actualizar el activo",
duplicateSerialNumber: "El número de serie ya existe",
notFound: "Activo no encontrado",
itemNotFound: "Artículo no encontrado",
assignmentAlreadyReturned: "La asignación ya fue devuelta",
previousItemNotFound: "Artículo anterior no encontrado",
insufficientStock: "El artículo no tiene stock suficiente",
personRequired: "La persona es obligatoria",
invalidStatus: "Estado inválido",
genericFailure: "Error al procesar el activo",
}
describe("asset action message localization", () => {
it("localizes known asset field errors", () => {
expect(
localizeAssetFieldErrors(
{
itemId: ["Item not found"],
id: ["Asset not found", "Assignment already returned"],
serialNumber: ["This serial number already exists"],
stock: ["Item does not have enough stock"],
previousItem: ["Previous item not found for available asset"],
},
actionCopy,
),
).toEqual({
itemId: [actionCopy.itemNotFound],
id: [actionCopy.notFound, actionCopy.assignmentAlreadyReturned],
serialNumber: [actionCopy.duplicateSerialNumber],
stock: [actionCopy.insufficientStock],
previousItem: [actionCopy.previousItemNotFound],
})
})
it("keeps unknown messages unchanged", () => {
expect(
localizeAssetFieldErrors(
{ serialNumber: ["Unexpected asset issue"] },
actionCopy,
),
).toEqual({ serialNumber: ["Unexpected asset issue"] })
})
})