From cc1c0d765dee412026ed54af608c52fc329ca497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fatih=20Kadir=20Ak=C4=B1n?= Date: Tue, 3 Feb 2026 16:24:59 +0300 Subject: [PATCH] test(api): add findFirst mock for username check in register test --- src/__tests__/api/register.test.ts | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/__tests__/api/register.test.ts b/src/__tests__/api/register.test.ts index 8f8216bb..3387ebef 100644 --- a/src/__tests__/api/register.test.ts +++ b/src/__tests__/api/register.test.ts @@ -8,6 +8,7 @@ vi.mock("@/lib/db", () => ({ db: { user: { findUnique: vi.fn(), + findFirst: vi.fn(), create: vi.fn(), }, }, @@ -41,6 +42,7 @@ describe("POST /api/auth/register", () => { }); // Default: no existing users vi.mocked(db.user.findUnique).mockResolvedValue(null); + vi.mocked(db.user.findFirst).mockResolvedValue(null); }); describe("validation", () => { @@ -180,16 +182,9 @@ describe("POST /api/auth/register", () => { }); it("should return 400 when username already exists", async () => { - // Mock: email check passes, username check finds existing user - vi.mocked(db.user.findUnique).mockImplementation(async (args) => { - if (args?.where?.email) { - return null; - } - if (args?.where?.username) { - return { id: "1", username: "testuser" } as never; - } - return null; - }); + // Mock: email check passes, username check (case-insensitive via findFirst) finds existing user + vi.mocked(db.user.findUnique).mockResolvedValue(null); + vi.mocked(db.user.findFirst).mockResolvedValue({ id: "1", username: "testuser" } as never); const request = createRequest({ name: "Test User", @@ -209,6 +204,7 @@ describe("POST /api/auth/register", () => { describe("successful registration", () => { it("should create user and return user data", async () => { vi.mocked(db.user.findUnique).mockResolvedValue(null); + vi.mocked(db.user.findFirst).mockResolvedValue(null); vi.mocked(db.user.create).mockResolvedValue({ id: "user-123", name: "Test User", @@ -244,6 +240,7 @@ describe("POST /api/auth/register", () => { it("should accept valid username with underscores", async () => { vi.mocked(db.user.findUnique).mockResolvedValue(null); + vi.mocked(db.user.findFirst).mockResolvedValue(null); vi.mocked(db.user.create).mockResolvedValue({ id: "user-123", name: "Test User",