You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
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);
|
|
});
|
|
});
|
|
|