mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-24 03:39:50 +00:00
* chore(lint): reduce underscore-dangle exceptions * chore(lint): reduce more underscore exceptions * chore(lint): remove underscore-dangle allow list * fix(lint): repair underscore cleanup regressions * test(lint): track version define suppression
54 lines
1.7 KiB
TypeScript
54 lines
1.7 KiB
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
import type { SlackMessageEvent } from "../types.js";
|
|
import { createSlackThreadTsResolver } from "./thread-resolution.js";
|
|
|
|
describe("createSlackThreadTsResolver", () => {
|
|
it("caches resolved thread_ts lookups", async () => {
|
|
const historyMock = vi.fn().mockResolvedValue({
|
|
messages: [{ ts: "1", thread_ts: "9" }],
|
|
});
|
|
const resolver = createSlackThreadTsResolver({
|
|
client: { conversations: { history: historyMock } } as any,
|
|
cacheTtlMs: 60_000,
|
|
maxSize: 5,
|
|
});
|
|
|
|
const message = {
|
|
channel: "C1",
|
|
parent_user_id: "U2",
|
|
ts: "1",
|
|
} as SlackMessageEvent;
|
|
|
|
const first = await resolver.resolve({ message, source: "message" });
|
|
const second = await resolver.resolve({ message, source: "message" });
|
|
|
|
expect(first.thread_ts).toBe("9");
|
|
expect(second.thread_ts).toBe("9");
|
|
expect(historyMock).toHaveBeenCalledTimes(1);
|
|
});
|
|
|
|
it("marks cached unresolved lookups as ambiguous thread replies", async () => {
|
|
const historyMock = vi.fn().mockResolvedValue({
|
|
messages: [{ ts: "1" }],
|
|
});
|
|
const resolver = createSlackThreadTsResolver({
|
|
client: { conversations: { history: historyMock } } as any,
|
|
cacheTtlMs: 60_000,
|
|
maxSize: 5,
|
|
});
|
|
|
|
const message = {
|
|
channel: "C1",
|
|
parent_user_id: "U2",
|
|
ts: "1",
|
|
} as SlackMessageEvent;
|
|
|
|
const first = await resolver.resolve({ message, source: "message" });
|
|
const second = await resolver.resolve({ message, source: "message" });
|
|
|
|
expect(first["_ambiguousThreadReply"]).toBe(true);
|
|
expect(second["_ambiguousThreadReply"]).toBe(true);
|
|
expect(historyMock).toHaveBeenCalledTimes(1);
|
|
});
|
|
});
|