From e4563d3ced2f0120aec25d0fefa8f03eb6bc107a Mon Sep 17 00:00:00 2001 From: Harxhit Date: Wed, 3 Jun 2026 14:26:03 +0530 Subject: [PATCH 1/3] fix(typecheck): address test typing issues --- apps/backend/src/__tests__/cards.test.ts | 3 ++- apps/backend/src/__tests__/profiles.test.ts | 4 ++-- apps/backend/src/__tests__/validateEnv.test.ts | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/backend/src/__tests__/cards.test.ts b/apps/backend/src/__tests__/cards.test.ts index 813883e8..9a525304 100644 --- a/apps/backend/src/__tests__/cards.test.ts +++ b/apps/backend/src/__tests__/cards.test.ts @@ -1,6 +1,7 @@ import { describe, it, expect, beforeEach, vi } from 'vitest'; import Fastify from 'fastify'; import { cardRoutes } from '../routes/cards.js'; +import type { PrismaClient } from '@prisma/client'; const USER_ID = 'user-123'; const CARD_ID = 'card-abc'; @@ -51,7 +52,7 @@ function wireTransaction() { async function buildApp() { const app = Fastify({ logger: false }); - app.decorate('prisma', mockPrisma); + app.decorate('prisma', mockPrisma as unknown as PrismaClient); app.decorate('authenticate', async (request: any) => { request.user = { id: USER_ID }; }); diff --git a/apps/backend/src/__tests__/profiles.test.ts b/apps/backend/src/__tests__/profiles.test.ts index 07d10f98..47152b99 100644 --- a/apps/backend/src/__tests__/profiles.test.ts +++ b/apps/backend/src/__tests__/profiles.test.ts @@ -20,12 +20,12 @@ const mockUser = { providerId: 'gh-123', }; -const mockPrisma: Pick = { +const mockPrisma = { user: { findUnique: vi.fn(), findFirst: vi.fn(), update: vi.fn(), - } as unknown as PrismaClient['user'], + }, }; async function buildApp() { diff --git a/apps/backend/src/__tests__/validateEnv.test.ts b/apps/backend/src/__tests__/validateEnv.test.ts index eb0574bd..dd9e928d 100644 --- a/apps/backend/src/__tests__/validateEnv.test.ts +++ b/apps/backend/src/__tests__/validateEnv.test.ts @@ -9,7 +9,7 @@ import { validateEnv } from '../utils/validateEnv.js'; * Returns the spy so callers can assert the exit code. */ function stubExit() { - return vi.spyOn(process, 'exit').mockImplementation((code?: number | string) => { + return vi.spyOn(process, 'exit').mockImplementation((code?: number | string | null) => { throw new Error(`process.exit(${code})`); }) as unknown as ReturnType; } From 6fa5dd0aa69b7ccaec09343a6c962b5e49e81e12 Mon Sep 17 00:00:00 2001 From: Harxhit Date: Wed, 3 Jun 2026 14:42:27 +0530 Subject: [PATCH 2/3] fix: Fixed lint issues --- apps/backend/src/__tests__/cards.test.ts | 4 +++- apps/backend/src/__tests__/profiles.test.ts | 4 +++- apps/backend/src/__tests__/validateEnv.test.ts | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/backend/src/__tests__/cards.test.ts b/apps/backend/src/__tests__/cards.test.ts index 9a525304..317f528e 100644 --- a/apps/backend/src/__tests__/cards.test.ts +++ b/apps/backend/src/__tests__/cards.test.ts @@ -1,6 +1,8 @@ -import { describe, it, expect, beforeEach, vi } from 'vitest'; import Fastify from 'fastify'; +import { describe, it, expect, beforeEach, vi } from 'vitest'; + import { cardRoutes } from '../routes/cards.js'; + import type { PrismaClient } from '@prisma/client'; const USER_ID = 'user-123'; diff --git a/apps/backend/src/__tests__/profiles.test.ts b/apps/backend/src/__tests__/profiles.test.ts index 47152b99..aacf0930 100644 --- a/apps/backend/src/__tests__/profiles.test.ts +++ b/apps/backend/src/__tests__/profiles.test.ts @@ -1,6 +1,8 @@ -import { describe, it, expect, beforeEach, vi } from 'vitest'; import Fastify from 'fastify'; +import { describe, it, expect, beforeEach, vi } from 'vitest'; + import { profileRoutes } from '../routes/profiles.js'; + import type { PrismaClient } from '@prisma/client'; const mockUser = { diff --git a/apps/backend/src/__tests__/validateEnv.test.ts b/apps/backend/src/__tests__/validateEnv.test.ts index dd9e928d..3f6fc8e6 100644 --- a/apps/backend/src/__tests__/validateEnv.test.ts +++ b/apps/backend/src/__tests__/validateEnv.test.ts @@ -1,4 +1,5 @@ import { describe, it, expect, vi, afterEach } from 'vitest'; + import { validateEnv } from '../utils/validateEnv.js'; // ── helpers ────────────────────────────────────────────────────────────────── From 63f64065c47c92e150d7c7c1a88edcc949117ff3 Mon Sep 17 00:00:00 2001 From: Harxhit Date: Wed, 3 Jun 2026 14:58:37 +0530 Subject: [PATCH 3/3] fix: Fixed explicit return type lint issue --- apps/backend/src/__tests__/cards.test.ts | 6 +++--- apps/backend/src/__tests__/profiles.test.ts | 4 ++-- apps/backend/src/__tests__/validateEnv.test.ts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/backend/src/__tests__/cards.test.ts b/apps/backend/src/__tests__/cards.test.ts index 317f528e..f110c0da 100644 --- a/apps/backend/src/__tests__/cards.test.ts +++ b/apps/backend/src/__tests__/cards.test.ts @@ -1,4 +1,4 @@ -import Fastify from 'fastify'; +import Fastify, { type FastifyInstance } from 'fastify'; import { describe, it, expect, beforeEach, vi } from 'vitest'; import { cardRoutes } from '../routes/cards.js'; @@ -46,13 +46,13 @@ const mockPrisma = { // Re-wire $transaction before every test so that it executes the callback // against the same mock client, preserving existing per-operation mocks. -function wireTransaction() { +function wireTransaction(): void { mockPrisma.$transaction.mockImplementation( async (callback: (tx: typeof mockPrisma) => Promise) => callback(mockPrisma), ); } -async function buildApp() { +async function buildApp():Promise { const app = Fastify({ logger: false }); app.decorate('prisma', mockPrisma as unknown as PrismaClient); app.decorate('authenticate', async (request: any) => { diff --git a/apps/backend/src/__tests__/profiles.test.ts b/apps/backend/src/__tests__/profiles.test.ts index aacf0930..0633b841 100644 --- a/apps/backend/src/__tests__/profiles.test.ts +++ b/apps/backend/src/__tests__/profiles.test.ts @@ -1,4 +1,4 @@ -import Fastify from 'fastify'; +import Fastify, { type FastifyInstance } from 'fastify'; import { describe, it, expect, beforeEach, vi } from 'vitest'; import { profileRoutes } from '../routes/profiles.js'; @@ -30,7 +30,7 @@ const mockPrisma = { }, }; -async function buildApp() { +async function buildApp():Promise { const app = Fastify(); app.decorate('prisma', mockPrisma as unknown as PrismaClient); app.decorate('authenticate', async (request: any) => { diff --git a/apps/backend/src/__tests__/validateEnv.test.ts b/apps/backend/src/__tests__/validateEnv.test.ts index 3f6fc8e6..34fce500 100644 --- a/apps/backend/src/__tests__/validateEnv.test.ts +++ b/apps/backend/src/__tests__/validateEnv.test.ts @@ -9,7 +9,7 @@ import { validateEnv } from '../utils/validateEnv.js'; * that a failing validateEnv() call does not terminate the test process. * Returns the spy so callers can assert the exit code. */ -function stubExit() { +function stubExit(): ReturnType { return vi.spyOn(process, 'exit').mockImplementation((code?: number | string | null) => { throw new Error(`process.exit(${code})`); }) as unknown as ReturnType;