test: dedupe plugin provider runtime suites

This commit is contained in:
Peter Steinberger
2026-03-28 06:04:31 +00:00
parent 89bb2cf03e
commit 48b2291b1e
32 changed files with 1211 additions and 837 deletions

View File

@@ -1,10 +1,8 @@
import { afterEach, describe, it, vi } from "vitest";
import { createTelegramTypingLease } from "./runtime-telegram-typing.js";
import {
createPulseWithBackgroundFailure,
expectBackgroundTypingPulseFailuresAreSwallowed,
expectIndependentTypingLeases,
expectTypingPulseCount,
expectDefaultTypingLeaseInterval,
registerSharedTypingLeaseTests,
} from "./typing-lease.test-support.js";
const TELEGRAM_TYPING_INTERVAL_MS = 2_000;
@@ -30,47 +28,16 @@ describe("createTelegramTypingLease", () => {
vi.useRealTimers();
});
it("pulses immediately and keeps leases independent", async () => {
await expectIndependentTypingLeases({
createLease: createTelegramTypingLease,
buildParams: buildTelegramTypingParams,
});
});
it("swallows background pulse failures", async () => {
const pulse =
createPulseWithBackgroundFailure<
(params: {
to: string;
accountId?: string;
cfg?: unknown;
messageThreadId?: number;
}) => Promise<unknown>
>();
await expectBackgroundTypingPulseFailuresAreSwallowed({
createLease: createTelegramTypingLease,
pulse,
buildParams: buildTelegramTypingParams,
});
registerSharedTypingLeaseTests({
createLease: createTelegramTypingLease,
buildParams: buildTelegramTypingParams,
});
it("falls back to the default interval for non-finite values", async () => {
vi.useFakeTimers();
const pulse = vi.fn(async () => undefined);
const lease = await createTelegramTypingLease({
to: "telegram:123",
intervalMs: Number.NaN,
pulse,
await expectDefaultTypingLeaseInterval({
createLease: createTelegramTypingLease,
buildParams: buildTelegramTypingParams,
defaultIntervalMs: TELEGRAM_TYPING_DEFAULT_INTERVAL_MS,
});
expectTypingPulseCount(pulse, 1);
await vi.advanceTimersByTimeAsync(TELEGRAM_TYPING_DEFAULT_INTERVAL_MS - 1);
expectTypingPulseCount(pulse, 1);
await vi.advanceTimersByTimeAsync(1);
expectTypingPulseCount(pulse, 2);
lease.stop();
});
});