Files
prompts.chat/vitest.setup.ts
T
copilot-swe-agent[bot] 1c71a2fb6f fix: improve test coverage and mock implementations
- Add assertion for original property in variable detection test
- Clarify test descriptions for HTML-like patterns and programming keywords
- Add edge cases for consecutive special characters in variable names
- Add username validation assertion in register test
- Improve useSearchParams mock to return ReadonlyURLSearchParams
- Improve cookies mock with proper return values
- Remove unused originalNavigator variable

Co-authored-by: f <196477+f@users.noreply.github.com>
2026-01-07 08:10:58 +00:00

100 lines
2.2 KiB
TypeScript

import "@testing-library/jest-dom";
import { vi } from "vitest";
// 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: {},
})
),
}));