From 187185abaaca79aed231facacf3a18630a562ea0 Mon Sep 17 00:00:00 2001 From: Miss shelby Date: Tue, 29 Sep 2026 14:50:35 +0100 Subject: [PATCH] fix(tests): use vi.hoisted for database mock initialization in continuousAggregates test --- .../continuousAggregates.service.test.ts | 55 ++++++++++--------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/backend/tests/services/continuousAggregates.service.test.ts b/backend/tests/services/continuousAggregates.service.test.ts index 72d6edfd..b81cbb8f 100644 --- a/backend/tests/services/continuousAggregates.service.test.ts +++ b/backend/tests/services/continuousAggregates.service.test.ts @@ -4,33 +4,36 @@ import { PriceModel } from "../../src/database/models/price.model"; import { AggregationService } from "../../src/services/aggregation.service"; import { LiquidityFragmentationService } from "../../src/services/liquidityFragmentation.service"; -const mockRawFn = vi.fn(); -const mockKnexFn = vi.fn((tableName: string) => { - const qb: any = { - select: vi.fn().mockReturnThis(), - where: vi.fn().mockReturnThis(), - orderBy: vi.fn().mockReturnThis(), - groupBy: vi.fn().mockReturnThis(), - then: (resolve: any) => { - if (tableName === "bridge_hourly_volume_rollup") { - return resolve([ - { - bucket: "2026-09-27T12:00:00.000Z", - bridgeId: "Stellar-Ethereum Bridge", - totalVolume: "150000", - transactionCount: 25, - avgAmount: "6000", - minAmount: "100", - maxAmount: "50000", - }, - ]); - } - return resolve([]); - }, - }; - return qb; +const { mockKnexFn, mockRawFn } = vi.hoisted(() => { + const mockRaw = vi.fn(); + const mockKnex = vi.fn((tableName: string) => { + const qb: any = { + select: vi.fn().mockReturnThis(), + where: vi.fn().mockReturnThis(), + orderBy: vi.fn().mockReturnThis(), + groupBy: vi.fn().mockReturnThis(), + then: (resolve: any) => { + if (tableName === "bridge_hourly_volume_rollup") { + return resolve([ + { + bucket: "2026-09-27T12:00:00.000Z", + bridgeId: "Stellar-Ethereum Bridge", + totalVolume: "150000", + transactionCount: 25, + avgAmount: "6000", + minAmount: "100", + maxAmount: "50000", + }, + ]); + } + return resolve([]); + }, + }; + return qb; + }); + Object.assign(mockKnex, { raw: (sql: string) => sql }); + return { mockKnexFn: mockKnex, mockRawFn: mockRaw }; }); -Object.assign(mockKnexFn, { raw: (sql: string) => sql }); vi.mock("../../src/database/knex", () => ({ default: mockKnexFn,