test: add Vitest infrastructure (config, setup, mocks, fixtures)
Adds test harness for the suite: - vitest.config.ts: happy-dom env, @/* alias, v8 coverage with 70% thresholds - setup.ts: env vars, global next/headers and next/navigation mocks - tsconfig.json: IDE alias resolution for test/ - __mocks__/prisma.ts: centralised Prisma mock auto-registered via vi.mock - fixtures/users.ts, fixtures/orders.ts: typed test data
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import '@testing-library/jest-dom'
|
||||
import { vi } from 'vitest'
|
||||
|
||||
// Env vars necessarie per i test
|
||||
process.env.STRIPE_SECRET_KEY = 'sk_test_mock'
|
||||
process.env.STRIPE_WEBHOOK_SECRET = 'whsec_test_mock'
|
||||
process.env.SMTP_HOST = 'localhost'
|
||||
process.env.SMTP_PORT = '1025'
|
||||
process.env.APP_URL = 'http://localhost'
|
||||
process.env.DATABASE_URL = 'postgresql://test:test@localhost:5432/test'
|
||||
process.env.NODE_ENV = 'test'
|
||||
process.env.AUTH_SECRET = 'test-secret-32-chars-minimum-ok!'
|
||||
|
||||
// Mock di next/headers (cookies() lancia fuori dal runtime Next.js)
|
||||
vi.mock('next/headers', () => {
|
||||
const mockCookieStore = {
|
||||
get: vi.fn(),
|
||||
set: vi.fn(),
|
||||
delete: vi.fn(),
|
||||
}
|
||||
return {
|
||||
cookies: vi.fn(() => mockCookieStore),
|
||||
}
|
||||
})
|
||||
|
||||
// Mock di next/navigation
|
||||
vi.mock('next/navigation', () => ({
|
||||
useRouter: vi.fn(() => ({ push: vi.fn(), replace: vi.fn() })),
|
||||
usePathname: vi.fn(() => '/'),
|
||||
redirect: vi.fn(),
|
||||
}))
|
||||
Reference in New Issue
Block a user