From affcb28c242583460b1dc0276c47cec003a59fc7 Mon Sep 17 00:00:00 2001 From: Danijel Martinek Date: Thu, 21 May 2026 11:25:42 +0200 Subject: [PATCH] test(auth): add cookie schema test cookie.ts was the only entity model in the feature packages without a sibling test. Covers minimal/full attributes, invalid sameSite, and a missing required field. --- .../auth/src/entities/models/cookie.test.ts | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 packages/auth/src/entities/models/cookie.test.ts diff --git a/packages/auth/src/entities/models/cookie.test.ts b/packages/auth/src/entities/models/cookie.test.ts new file mode 100644 index 0000000..d292488 --- /dev/null +++ b/packages/auth/src/entities/models/cookie.test.ts @@ -0,0 +1,47 @@ +import { describe, expect, it } from "vitest"; +import { cookieSchema } from "./cookie"; + +describe("cookieSchema", () => { + it("accepts a minimal cookie with empty attributes", () => { + const result = cookieSchema.parse({ + name: "session", + value: "abc123", + attributes: {}, + }); + expect(result.name).toBe("session"); + expect(result.value).toBe("abc123"); + }); + + it("accepts a fully-populated cookie", () => { + const result = cookieSchema.parse({ + name: "session", + value: "abc123", + attributes: { + secure: true, + path: "/", + domain: "example.com", + sameSite: "strict", + httpOnly: true, + maxAge: 3600, + expires: new Date(), + }, + }); + expect(result.attributes.sameSite).toBe("strict"); + }); + + it("rejects an invalid sameSite value", () => { + expect(() => + cookieSchema.parse({ + name: "session", + value: "abc123", + attributes: { sameSite: "invalid" }, + }), + ).toThrow(); + }); + + it("rejects a missing required field", () => { + expect(() => + cookieSchema.parse({ name: "session", attributes: {} }), + ).toThrow(); + }); +});