1
/** @jest-environment node */
2
import { pruneDatabase } from "@/src/__tests__/test-utils";
3
import { appRouter } from "@/src/server/api/root";
4
import { createInnerTRPCContext } from "@/src/server/api/trpc";
5
import { prisma } from "@/src/server/db";
6
import type { Session } from "next-auth";
8
describe("Traces TRPC Router", () => {
9
beforeEach(async () => await pruneDatabase());
10
afterEach(async () => await pruneDatabase());
12
const session: Session = {
15
id: "clgb17vnp000008jjere5g15i",
19
id: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a",
31
const ctx = createInnerTRPCContext({ session });
32
const caller = appRouter.createCaller({ ...ctx, prisma });
34
test("traces.all RPC returns an array of traces", async () => {
38
metadata: { key: "value" },
42
await prisma.trace.create({
43
data: { ...trace, projectId: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a" },
46
const traces = await caller.traces.all({
49
// projectId from `seed.ts`
50
projectId: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a",
55
expect(traces).toBeDefined();
56
expect(traces).toMatchObject({ traces: [trace] });
59
test("traces.all RPC orders traces by userId", async () => {
63
metadata: { key: "value" },
67
const trace1 = traceTmpl;
68
const trace2 = { ...traceTmpl, userId: "user-2" };
69
await prisma.trace.create({
70
data: { ...traceTmpl, projectId: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a" },
72
await prisma.trace.create({
75
projectId: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a",
79
const tracesASC = await caller.traces.all({
82
// projectId from `seed.ts`
83
projectId: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a",
91
expect(tracesASC).toMatchObject({ traces: [trace1, trace2] });
93
const tracesDESC = await caller.traces.all({
96
// projectId from `seed.ts`
97
projectId: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a",
105
expect(tracesDESC).toMatchObject({ traces: [trace2, trace1] });