52 lines
1.8 KiB
TypeScript
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",
|
|
recipientRequired: "El destinatario es obligatorio",
|
|
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"] })
|
|
})
|
|
})
|