import { describe, expect, test } from "bun:test"; import { normalizeSubmissionAnswers } from "@/lib/form/submission-intake"; const question = { id: "question-1", type: "text" as const, label: "Proof", options: null, allowOther: false, }; describe("image response submission validation", () => { test("accepts an image-only response without text", () => { expect(normalizeSubmissionAnswers( [{ ...question, required: false, imageAnswerMode: "required" }], [{ questionId: question.id, value: "", imageCdnId: "image-1" }], )).toEqual([ { questionId: question.id, value: "", imageCdnId: "image-1", displayValue: "", }, ]); }); test("requires both parts of an answer + required image response", () => { expect(() => normalizeSubmissionAnswers( [{ ...question, required: true, imageAnswerMode: "required" }], [{ questionId: question.id, value: "", imageCdnId: "image-1" }], )).toThrow("จำเป็นต้องตอบ"); expect(() => normalizeSubmissionAnswers( [{ ...question, required: true, imageAnswerMode: "required" }], [{ questionId: question.id, value: "answer", imageCdnId: null }], )).toThrow("จำเป็นต้องอัปโหลดรูป"); expect(normalizeSubmissionAnswers( [{ ...question, required: true, imageAnswerMode: "required" }], [{ questionId: question.id, value: "answer", imageCdnId: "image-1" }], )).toHaveLength(1); }); });