Просмотр исходного кода

test(ledger): fix unit tests after ledger migration

ding113 2 дней назад
Родитель
Сommit
aa7c674ece

+ 3 - 0
tests/unit/repository/key.test.ts

@@ -107,6 +107,9 @@ vi.mock("@/drizzle/schema", () => ({
   messageRequest: {
     blockedBy: "messageRequest.blockedBy",
   },
+  usageLedger: {
+    blockedBy: "usageLedger.blockedBy",
+  },
 }));
 
 vi.mock("drizzle-orm", () => ({

+ 17 - 0
tests/unit/repository/leaderboard-provider-metrics.test.ts

@@ -39,6 +39,23 @@ vi.mock("@/drizzle/db", () => ({
 }));
 
 vi.mock("@/drizzle/schema", () => ({
+  usageLedger: {
+    providerId: "providerId",
+    finalProviderId: "finalProviderId",
+    userId: "userId",
+    costUsd: "costUsd",
+    inputTokens: "inputTokens",
+    outputTokens: "outputTokens",
+    cacheCreationInputTokens: "cacheCreationInputTokens",
+    cacheReadInputTokens: "cacheReadInputTokens",
+    isSuccess: "isSuccess",
+    blockedBy: "blockedBy",
+    createdAt: "createdAt",
+    ttfbMs: "ttfbMs",
+    durationMs: "durationMs",
+    model: "model",
+    originalModel: "originalModel",
+  },
   messageRequest: {
     deletedAt: "deletedAt",
     providerId: "providerId",

+ 9 - 0
tests/unit/repository/overview-timezone-parentheses.test.ts

@@ -88,6 +88,15 @@ vi.mock("@/drizzle/db", () => ({
 }));
 
 vi.mock("@/drizzle/schema", () => ({
+  usageLedger: {
+    blockedBy: "blockedBy",
+    userId: "userId",
+    costUsd: "costUsd",
+    durationMs: "durationMs",
+    statusCode: "statusCode",
+    isSuccess: "isSuccess",
+    createdAt: "createdAt",
+  },
   messageRequest: {
     deletedAt: "deletedAt",
     userId: "userId",

+ 2 - 2
tests/unit/repository/statistics-quota-costs-all-time.test.ts

@@ -75,7 +75,7 @@ describe("sumUserQuotaCosts & sumKeyQuotaCostsById - all-time query support", ()
     await sumUserQuotaCosts(1, ranges, Infinity);
 
     expect(capturedAndArgs).toBeDefined();
-    expect(capturedAndArgs?.length).toBe(4);
+    expect(capturedAndArgs?.length).toBe(3);
 
     expect(capturedSelectFields).toBeDefined();
     expect(concatSqlStringChunks(capturedSelectFields?.costTotal)).not.toContain("FILTER");
@@ -134,7 +134,7 @@ describe("sumUserQuotaCosts & sumKeyQuotaCostsById - all-time query support", ()
     await sumKeyQuotaCostsById(123, ranges, Infinity);
 
     expect(capturedAndArgs).toBeDefined();
-    expect(capturedAndArgs?.length).toBe(4);
+    expect(capturedAndArgs?.length).toBe(3);
 
     expect(capturedSelectFields).toBeDefined();
     expect(concatSqlStringChunks(capturedSelectFields?.costTotal)).not.toContain("FILTER");

+ 4 - 4
tests/unit/repository/warmup-stats-exclusion.test.ts

@@ -107,7 +107,7 @@ describe("Warmup 请求:不计入任何聚合统计", () => {
     expect(firstSelect).toEqual(expect.objectContaining({ totalRequests: expect.anything() }));
   });
 
-  test("usage logs stats:WHERE 条件应包含 warmup 排除逻辑", async () => {
+  test("usage logs stats:WHERE 条件应包含 blocked_by IS NULL 过滤", async () => {
     vi.resetModules();
 
     const whereArgs: unknown[] = [];
@@ -145,10 +145,10 @@ describe("Warmup 请求:不计入任何聚合统计", () => {
 
     expect(whereArgs.length).toBeGreaterThan(0);
     const whereSql = sqlToString(whereArgs[0]);
-    expect(whereSql.toLowerCase()).toContain("warmup");
+    expect(whereSql.toLowerCase()).toContain("is null");
   });
 
-  test("provider statistics:SQL 应排除 warmup(避免计入供应商统计/最近调用)", async () => {
+  test("provider statistics:SQL 应使用 blocked_by IS NULL 计费过滤", async () => {
     vi.resetModules();
 
     const executeMock = vi.fn(async () => [
@@ -196,7 +196,7 @@ describe("Warmup 请求:不计入任何聚合统计", () => {
 
     const queryArg = executeMock.mock.calls[0]?.[0];
     const querySql = sqlToString(queryArg);
-    expect(querySql.toLowerCase()).toContain("warmup");
     expect(querySql.toLowerCase()).toContain("blocked_by");
+    expect(querySql.toLowerCase()).toContain("is null");
   });
 });