mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-01 04:50:22 +00:00
97 lines
2.4 KiB
TypeScript
97 lines
2.4 KiB
TypeScript
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("uses the default account for blank inputs and falls back to null timestamps", () => {
|
|
expect(getChannelActivity({ channel: "telegram" })).toEqual({
|
|
inboundAt: null,
|
|
outboundAt: null,
|
|
});
|
|
|
|
recordChannelActivity({
|
|
channel: "telegram",
|
|
accountId: " ",
|
|
direction: "inbound",
|
|
});
|
|
|
|
expect(getChannelActivity({ channel: "telegram", accountId: null })).toEqual({
|
|
inboundAt: 1767830400000,
|
|
outboundAt: null,
|
|
});
|
|
});
|
|
|
|
it("keeps inbound and outbound timestamps independent and trims account ids", () => {
|
|
recordChannelActivity({
|
|
channel: "whatsapp",
|
|
accountId: " team-a ",
|
|
direction: "inbound",
|
|
at: 10,
|
|
});
|
|
recordChannelActivity({
|
|
channel: "whatsapp",
|
|
accountId: "team-a",
|
|
direction: "outbound",
|
|
at: 20,
|
|
});
|
|
recordChannelActivity({
|
|
channel: "whatsapp",
|
|
accountId: "team-a",
|
|
direction: "inbound",
|
|
at: 30,
|
|
});
|
|
|
|
expect(getChannelActivity({ channel: "whatsapp", accountId: " team-a " })).toEqual({
|
|
inboundAt: 30,
|
|
outboundAt: 20,
|
|
});
|
|
});
|
|
|
|
it("keeps activity isolated per account on the same channel", () => {
|
|
recordChannelActivity({
|
|
channel: "telegram",
|
|
accountId: "team-a",
|
|
direction: "inbound",
|
|
at: 10,
|
|
});
|
|
recordChannelActivity({
|
|
channel: "telegram",
|
|
accountId: "team-b",
|
|
direction: "outbound",
|
|
at: 20,
|
|
});
|
|
|
|
expect(getChannelActivity({ channel: "telegram", accountId: "team-a" })).toEqual({
|
|
inboundAt: 10,
|
|
outboundAt: null,
|
|
});
|
|
expect(getChannelActivity({ channel: "telegram", accountId: " team-b " })).toEqual({
|
|
inboundAt: null,
|
|
outboundAt: 20,
|
|
});
|
|
});
|
|
|
|
it("reset clears previously recorded activity", () => {
|
|
recordChannelActivity({ channel: "line", direction: "outbound", at: 7 });
|
|
resetChannelActivityForTest();
|
|
|
|
expect(getChannelActivity({ channel: "line" })).toEqual({
|
|
inboundAt: null,
|
|
outboundAt: null,
|
|
});
|
|
});
|
|
});
|