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