import { describe, expect, test } from "bun:test"; import { GuestCommentValidationError } from "../../utils/post-comment-guest"; import { resolveGuestFields } from "./guest-fields"; describe("resolveGuestFields", () => { test("guest non-anonymous without email throws", () => { expect(() => resolveGuestFields({ viewerPresent: false, guestIsAnonymous: false, }), ).toThrow(GuestCommentValidationError); }); test("guest anonymous with empty email passes", () => { expect( resolveGuestFields({ viewerPresent: false, guestEmail: "", guestIsAnonymous: true, }), ).toEqual({ guestEmail: null, guestIsAnonymous: true }); }); test("logged-in viewer ignores guest fields", () => { expect( resolveGuestFields({ viewerPresent: true, guestEmail: "guest@example.com", guestIsAnonymous: true, }), ).toEqual({ guestEmail: null, guestIsAnonymous: false }); }); test("guest with undefined anonymous flag defaults to non-anonymous and requires email", () => { expect(() => resolveGuestFields({ viewerPresent: false, }), ).toThrow(GuestCommentValidationError); }); });