import { describe, expect, test } from "bun:test"; import { getQuestionResponseSettings, getQuestionResponseType, isImageOnlyResponse, } from "@/lib/question-response-type"; describe("question response types", () => { test("maps stored question settings to the four editor choices", () => { expect(getQuestionResponseType({ required: true, imageAnswerMode: "none" })) .toBe("answer-only"); expect(getQuestionResponseType({ required: true, imageAnswerMode: "optional" })) .toBe("answer-optional-image"); expect(getQuestionResponseType({ required: false, imageAnswerMode: "required" })) .toBe("image-only"); expect(getQuestionResponseType({ required: true, imageAnswerMode: "required" })) .toBe("answer-required-image"); }); test("turns each editor choice into its validation settings", () => { expect(getQuestionResponseSettings("answer-only", false)).toEqual({ required: false, imageAnswerMode: "none", }); expect(getQuestionResponseSettings("answer-only", true)).toEqual({ required: true, imageAnswerMode: "none", }); expect(getQuestionResponseSettings("answer-optional-image", false)).toEqual({ required: false, imageAnswerMode: "optional", }); expect(getQuestionResponseSettings("image-only")).toEqual({ required: false, imageAnswerMode: "required", }); expect(getQuestionResponseSettings("answer-required-image")).toEqual({ required: true, imageAnswerMode: "required", }); }); test("recognizes only required-image questions without a required answer as image-only", () => { expect(isImageOnlyResponse({ required: false, imageAnswerMode: "required" })).toBeTrue(); expect(isImageOnlyResponse({ required: true, imageAnswerMode: "required" })).toBeFalse(); }); });