import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { getProviderActivity, recordProviderActivity, resetProviderActivityForTest, } from "./provider-activity.js"; describe("provider activity", () => { beforeEach(() => { resetProviderActivityForTest(); vi.useFakeTimers(); vi.setSystemTime(new Date("2026-01-08T00:00:00Z")); }); afterEach(() => { vi.useRealTimers(); }); it("records inbound/outbound separately", () => { recordProviderActivity({ provider: "telegram", direction: "inbound" }); vi.advanceTimersByTime(1000); recordProviderActivity({ provider: "telegram", direction: "outbound" }); const res = getProviderActivity({ provider: "telegram" }); expect(res.inboundAt).toBe(1767830400000); expect(res.outboundAt).toBe(1767830401000); }); it("isolates accounts", () => { recordProviderActivity({ provider: "whatsapp", accountId: "a", direction: "inbound", at: 1, }); recordProviderActivity({ provider: "whatsapp", accountId: "b", direction: "inbound", at: 2, }); expect( getProviderActivity({ provider: "whatsapp", accountId: "a" }), ).toEqual({ inboundAt: 1, outboundAt: null, }); expect( getProviderActivity({ provider: "whatsapp", accountId: "b" }), ).toEqual({ inboundAt: 2, outboundAt: null, }); }); });