98e40dac97
CLI Smoke Test / smoke-test-linux (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-linux (24) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (24) (push) Has been cancelled
Expo App TypeScript typecheck / typecheck (push) Has been cancelled
44 lines
1.4 KiB
TypeScript
44 lines
1.4 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
|
const { dbMock } = vi.hoisted(() => {
|
|
const dbMock = {
|
|
account: { count: vi.fn() },
|
|
session: { count: vi.fn() },
|
|
sessionMessage: { count: vi.fn() },
|
|
machine: { count: vi.fn() },
|
|
$queryRaw: vi.fn()
|
|
};
|
|
|
|
return { dbMock };
|
|
});
|
|
|
|
vi.mock("@/storage/db", () => ({
|
|
db: dbMock
|
|
}));
|
|
|
|
import { updateDatabaseMetrics } from "./metrics2";
|
|
|
|
describe("updateDatabaseMetrics", () => {
|
|
beforeEach(() => {
|
|
vi.clearAllMocks();
|
|
dbMock.account.count.mockResolvedValue(10);
|
|
dbMock.session.count.mockResolvedValue(20);
|
|
dbMock.sessionMessage.count.mockResolvedValue(30);
|
|
dbMock.machine.count.mockResolvedValue(40);
|
|
dbMock.$queryRaw.mockResolvedValue([{ estimated_count: 123n }]);
|
|
});
|
|
|
|
it("uses estimated counts instead of exact table counts", async () => {
|
|
await updateDatabaseMetrics();
|
|
|
|
expect(dbMock.account.count).not.toHaveBeenCalled();
|
|
expect(dbMock.session.count).not.toHaveBeenCalled();
|
|
expect(dbMock.sessionMessage.count).not.toHaveBeenCalled();
|
|
expect(dbMock.machine.count).not.toHaveBeenCalled();
|
|
expect(dbMock.$queryRaw).toHaveBeenCalledTimes(4);
|
|
|
|
const queriedTables = dbMock.$queryRaw.mock.calls.map((call) => call[1]);
|
|
expect(queriedTables).toEqual(['"Account"', '"Session"', '"SessionMessage"', '"Machine"']);
|
|
});
|
|
});
|