testing setup

This commit is contained in:
2025-08-29 14:19:38 +02:00
parent e74b30e04c
commit 869cc07fdd
46 changed files with 6710 additions and 1460 deletions

View File

@@ -0,0 +1,11 @@
import { vi } from "vitest";
import { drizzle } from 'drizzle-orm/pglite';
import { PGlite } from "@electric-sql/pglite";
import * as schema from "~/server/db/schema"
const client = new PGlite()
const db = drizzle({client:client,schema:schema})
vi.mock("~/server/db", () => {
return {
db: db
}
})

View File

@@ -0,0 +1,9 @@
import { vi } from 'vitest'
vi.mock('~/app/actions', () => {
return {
isAdmin: vi.fn(() => {
console.log("_____idAdminMockCall_____")
return true
})
}
})

View File

@@ -0,0 +1,15 @@
import { vi } from "vitest"
vi.mock("next/navigation", () => {
return {
useRouter: vi.fn(() => {
return {
push: () => {},
replace: () => {},
prefetch: () => {},
}
}),
usePathname: vi.fn(() => '/'),
useSearchParams: vi.fn(() => new URLSearchParams()),
useServerInsertedHTML:vi.fn(() => {})
}
})

View File

@@ -0,0 +1,16 @@
import React from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { trpc } from '~/app/_trpc/Client'
import { createTestTrpcClient } from './vitest.trpcProxyClient'
export default function TrpcProvider({ children }:{children: React.ReactNode}) {
const queryClient = new QueryClient()
const trpcClient = createTestTrpcClient()
console.log("using test provider")
return (
<trpc.Provider client={trpcClient} queryClient={queryClient}>
<QueryClientProvider client={queryClient}>
{children}
</QueryClientProvider>
</trpc.Provider>
)}

View File

@@ -0,0 +1,26 @@
import { createTRPCProxyClient, httpBatchLink } from '@trpc/client'
import { fetchRequestHandler } from '@trpc/server/adapters/fetch'
import { trpcRouter, type TrpcRouter } from '~/server/routers/_app'
// This simulates the server without HTTP
function serverHandler(path: string, req: Request) {
return fetchRequestHandler({
endpoint: '/api/trpc',
router: trpcRouter,
req,
createContext: () => ({}),
})
}
export function createTestTrpcClient() {
return createTRPCProxyClient<TrpcRouter>({
links: [
httpBatchLink({
url: 'http://localhost/api/trpc',
fetch: (input, init) => {
return serverHandler(input as string, new Request(input as string, init))
},
}),
],
})
}