import { describe, expect, it } from "vitest" import { normalizeCustomFieldInputs } from "../src/lib/ticket-form-helpers" import type { TicketFormFieldDefinition } from "../src/lib/ticket-form-types" describe("ticket form helpers", () => { const baseFields: TicketFormFieldDefinition[] = [ { id: "field-nome", key: "nome", label: "Nome", type: "text", required: true, description: "", options: [], }, { id: "field-data", key: "data", label: "Data", type: "date", required: false, description: "", options: [], }, { id: "field-numero", key: "numero", label: "Número", type: "number", required: true, description: "", options: [], }, { id: "field-select", key: "tipo", label: "Tipo", type: "select", required: true, description: "", options: [ { value: "nova", label: "Nova contratação" }, { value: "substituicao", label: "Substituição" }, ], }, ] it("normalizes values for required fields", () => { const result = normalizeCustomFieldInputs(baseFields, { "field-nome": " Ana Silva ", "field-numero": "123", "field-select": "nova", }) expect(result.ok).toBe(true) if (result.ok) { expect(result.payload).toEqual([ { fieldId: "field-nome", value: "Ana Silva" }, { fieldId: "field-numero", value: 123 }, { fieldId: "field-select", value: "nova" }, ]) } }) it("fails when a required field is empty", () => { const result = normalizeCustomFieldInputs(baseFields, { "field-nome": " ", }) expect(result.ok).toBe(false) if (!result.ok) { expect(result.message).toContain("Nome") } }) })