Files
Moltbot/extensions/feishu/src/monitor.state.defaults.test.ts
Mark L 097ad88f9d fix(feishu): tolerate missing webhook defaults in older plugin-sdk (openclaw#31639) thanks @liuxiaopai-ai
Verified:
- pnpm test extensions/feishu/src/monitor.state.defaults.test.ts
- pnpm exec vitest run extensions/feishu/src/monitor.state.defaults.test.ts
- pnpm exec oxfmt --check extensions/feishu/src/monitor.state.ts extensions/feishu/src/monitor.state.defaults.test.ts CHANGELOG.md
- CI note: non-required check "check" failed on unrelated  TS errors outside this PR scope.

Co-authored-by: liuxiaopai-ai <73659136+liuxiaopai-ai@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-03-02 07:42:16 -06:00

47 lines
1.2 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
resolveFeishuWebhookAnomalyDefaultsForTest,
resolveFeishuWebhookRateLimitDefaultsForTest,
} from "./monitor.state.js";
describe("feishu monitor state defaults", () => {
it("falls back to hard defaults when sdk defaults are missing", () => {
expect(resolveFeishuWebhookRateLimitDefaultsForTest(undefined)).toEqual({
windowMs: 60_000,
maxRequests: 120,
maxTrackedKeys: 4_096,
});
expect(resolveFeishuWebhookAnomalyDefaultsForTest(undefined)).toEqual({
maxTrackedKeys: 4_096,
ttlMs: 21_600_000,
logEvery: 25,
});
});
it("keeps valid sdk values and repairs invalid fields", () => {
expect(
resolveFeishuWebhookRateLimitDefaultsForTest({
windowMs: 45_000,
maxRequests: 0,
maxTrackedKeys: -1,
}),
).toEqual({
windowMs: 45_000,
maxRequests: 120,
maxTrackedKeys: 4_096,
});
expect(
resolveFeishuWebhookAnomalyDefaultsForTest({
maxTrackedKeys: 2048,
ttlMs: Number.NaN,
logEvery: 10,
}),
).toEqual({
maxTrackedKeys: 2048,
ttlMs: 21_600_000,
logEvery: 10,
});
});
});