langfuse

Форк
0
/
traces.servertest.ts 
107 строк · 2.8 Кб
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";
7

8
describe("Traces TRPC Router", () => {
9
  beforeEach(async () => await pruneDatabase());
10
  afterEach(async () => await pruneDatabase());
11

12
  const session: Session = {
13
    expires: "1",
14
    user: {
15
      id: "clgb17vnp000008jjere5g15i",
16
      name: "John Doe",
17
      projects: [
18
        {
19
          id: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a",
20
          role: "ADMIN",
21
          name: "test",
22
        },
23
      ],
24
      featureFlags: {
25
        templateFlag: true,
26
      },
27
      admin: true,
28
    },
29
  };
30

31
  const ctx = createInnerTRPCContext({ session });
32
  const caller = appRouter.createCaller({ ...ctx, prisma });
33

34
  test("traces.all RPC returns an array of traces", async () => {
35
    const trace = {
36
      name: "trace-name",
37
      userId: "user-1",
38
      metadata: { key: "value" },
39
      release: "1.0.0",
40
      version: "2.0.0",
41
    };
42
    await prisma.trace.create({
43
      data: { ...trace, projectId: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a" },
44
    });
45

46
    const traces = await caller.traces.all({
47
      page: 0,
48
      limit: 10,
49
      // projectId from `seed.ts`
50
      projectId: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a",
51
      filter: null,
52
      searchQuery: "",
53
      orderBy: null,
54
    });
55
    expect(traces).toBeDefined();
56
    expect(traces).toMatchObject({ traces: [trace] });
57
  });
58

59
  test("traces.all RPC orders traces by userId", async () => {
60
    const traceTmpl = {
61
      name: "trace-name",
62
      userId: "user-1",
63
      metadata: { key: "value" },
64
      release: "1.0.0",
65
      version: "2.0.0",
66
    };
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" },
71
    });
72
    await prisma.trace.create({
73
      data: {
74
        ...trace2,
75
        projectId: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a",
76
      },
77
    });
78

79
    const tracesASC = await caller.traces.all({
80
      page: 0,
81
      limit: 10,
82
      // projectId from `seed.ts`
83
      projectId: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a",
84
      filter: null,
85
      searchQuery: "",
86
      orderBy: {
87
        column: "userId",
88
        order: "ASC",
89
      },
90
    });
91
    expect(tracesASC).toMatchObject({ traces: [trace1, trace2] });
92

93
    const tracesDESC = await caller.traces.all({
94
      page: 0,
95
      limit: 10,
96
      // projectId from `seed.ts`
97
      projectId: "7a88fb47-b4e2-43b8-a06c-a5ce950dc53a",
98
      filter: null,
99
      searchQuery: "",
100
      orderBy: {
101
        column: "userId",
102
        order: "DESC",
103
      },
104
    });
105
    expect(tracesDESC).toMatchObject({ traces: [trace2, trace1] });
106
  });
107
});
108

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.