Files
prompts.chat/vitest.setup.ts
T
Claude 48870c72ad fix(tests): suppress expected console output during tests
Mock console.error and console.log in test setup to prevent
noisy stderr output from error handling tests. The error
messages were expected behavior being tested, not actual failures.
2026-01-07 08:58:45 +00:00

115 lines
2.6 KiB
TypeScript

import "@testing-library/jest-dom";
import { vi, beforeAll, afterAll } from "vitest";
// Suppress console.error and console.log during tests to reduce noise
// These are expected outputs from error handling tests
const originalConsoleError = console.error;
const originalConsoleLog = console.log;
beforeAll(() => {
console.error = vi.fn();
console.log = vi.fn();
});
afterAll(() => {
console.error = originalConsoleError;
console.log = originalConsoleLog;
});
// Mock environment variables
process.env.NEXTAUTH_SECRET = "test-secret";
process.env.NEXTAUTH_URL = "http://localhost:3000";
process.env.DATABASE_URL = "postgresql://test:test@localhost:5432/test";
// Mock next/navigation
vi.mock("next/navigation", () => ({
useRouter: () => ({
push: vi.fn(),
replace: vi.fn(),
refresh: vi.fn(),
back: vi.fn(),
forward: vi.fn(),
prefetch: vi.fn(),
}),
useSearchParams: () => {
const searchParams = new URLSearchParams();
// Return ReadonlyURLSearchParams-like object
return searchParams as ReadonlyURLSearchParams;
},
usePathname: () => "/",
useParams: () => ({}),
redirect: vi.fn(),
notFound: vi.fn(),
}));
// Mock next/headers
vi.mock("next/headers", () => {
const getCookieMock = vi.fn().mockReturnValue(null);
const setCookieMock = vi.fn();
const deleteCookieMock = vi.fn();
return {
cookies: () => ({
get: getCookieMock,
set: setCookieMock,
delete: deleteCookieMock,
}),
headers: () => new Headers(),
};
});
// Mock next-intl
vi.mock("next-intl", () => ({
useTranslations: () => (key: string) => key,
useLocale: () => "en",
getTranslations: () => Promise.resolve((key: string) => key),
}));
// Mock Prisma client
vi.mock("@/lib/db", () => ({
db: {
user: {
findUnique: vi.fn(),
findFirst: vi.fn(),
findMany: vi.fn(),
create: vi.fn(),
update: vi.fn(),
delete: vi.fn(),
count: vi.fn(),
},
prompt: {
findUnique: vi.fn(),
findFirst: vi.fn(),
findMany: vi.fn(),
create: vi.fn(),
update: vi.fn(),
delete: vi.fn(),
count: vi.fn(),
},
category: {
findUnique: vi.fn(),
findFirst: vi.fn(),
findMany: vi.fn(),
create: vi.fn(),
update: vi.fn(),
delete: vi.fn(),
},
$queryRaw: vi.fn(),
$executeRaw: vi.fn(),
$transaction: vi.fn(),
},
}));
// Mock config
vi.mock("@/lib/config", () => ({
getConfig: vi.fn(() =>
Promise.resolve({
auth: {
allowRegistration: true,
providers: [],
},
features: {},
})
),
}));