mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-26 17:32:16 +00:00
41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import { afterEach, describe, it, vi } from "vitest";
|
|
import { createDiscordTypingLease } from "./runtime-discord-typing.js";
|
|
import {
|
|
expectBackgroundTypingPulseFailuresAreSwallowed,
|
|
expectIndependentTypingLeases,
|
|
} from "./typing-lease.test-support.js";
|
|
|
|
describe("createDiscordTypingLease", () => {
|
|
afterEach(() => {
|
|
vi.useRealTimers();
|
|
});
|
|
|
|
it("pulses immediately and keeps leases independent", async () => {
|
|
await expectIndependentTypingLeases({
|
|
createLease: createDiscordTypingLease,
|
|
buildParams: (pulse) => ({
|
|
channelId: "123",
|
|
intervalMs: 2_000,
|
|
pulse,
|
|
}),
|
|
});
|
|
});
|
|
|
|
it("swallows background pulse failures", async () => {
|
|
const pulse = vi
|
|
.fn<(params: { channelId: string; accountId?: string; cfg?: unknown }) => Promise<void>>()
|
|
.mockResolvedValueOnce(undefined)
|
|
.mockRejectedValueOnce(new Error("boom"));
|
|
|
|
await expectBackgroundTypingPulseFailuresAreSwallowed({
|
|
createLease: createDiscordTypingLease,
|
|
pulse,
|
|
buildParams: (pulse) => ({
|
|
channelId: "123",
|
|
intervalMs: 2_000,
|
|
pulse,
|
|
}),
|
|
});
|
|
});
|
|
});
|