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"] }) }) })