diff --git a/apps/backend/src/__tests__/cards.test.ts b/apps/backend/src/__tests__/cards.test.ts index 813883e8..f110c0da 100644 --- a/apps/backend/src/__tests__/cards.test.ts +++ b/apps/backend/src/__tests__/cards.test.ts @@ -1,7 +1,10 @@ +import Fastify, { type FastifyInstance } from 'fastify'; 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'; // Must be valid UUIDs — createCardSchema and updateCardSchema use z.string().uuid() @@ -43,15 +46,15 @@ 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); + 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..0633b841 100644 --- a/apps/backend/src/__tests__/profiles.test.ts +++ b/apps/backend/src/__tests__/profiles.test.ts @@ -1,6 +1,8 @@ +import Fastify, { type FastifyInstance } from 'fastify'; import { describe, it, expect, beforeEach, vi } from 'vitest'; -import Fastify from 'fastify'; + import { profileRoutes } from '../routes/profiles.js'; + import type { PrismaClient } from '@prisma/client'; const mockUser = { @@ -20,15 +22,15 @@ 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() { +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 eb0574bd..34fce500 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 ────────────────────────────────────────────────────────────────── @@ -8,8 +9,8 @@ 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() { - return vi.spyOn(process, 'exit').mockImplementation((code?: number | string) => { +function stubExit(): ReturnType { + return vi.spyOn(process, 'exit').mockImplementation((code?: number | string | null) => { throw new Error(`process.exit(${code})`); }) as unknown as ReturnType; }