import { describe, expect, it } from "vitest" ;
import type { OpenClawConfig } from "../../config/config.js" ;
import { resolveFollowupDeliveryPayloads } from "./followup-delivery.js" ;
const baseConfig = {} as OpenClawConfig;
describe("resolveFollowupDeliveryPayloads" , () => {
it("drops heartbeat ack payloads without media" , () => {
expect(
resolveFollowupDeliveryPayloads({
cfg: baseConfig,
payloads: [{ text: "HEARTBEAT_OK" }],
}),
).toEqual([]);
});
it("keeps media payloads when stripping heartbeat ack text" , () => {
expect(
resolveFollowupDeliveryPayloads({
cfg: baseConfig,
payloads: [{ text: "HEARTBEAT_OK" , mediaUrl: "/tmp/image.png" }],
}),
).toEqual([{ text: "" , mediaUrl: "/tmp/image.png" }]);
});
it("drops text payloads already sent via messaging tool" , () => {
expect(
resolveFollowupDeliveryPayloads({
cfg: baseConfig,
payloads: [{ text: "hello world!" }],
sentTexts: ["hello world!" ],
}),
).toEqual([]);
});
it("drops media payloads already sent via messaging tool" , () => {
expect(
resolveFollowupDeliveryPayloads({
cfg: baseConfig,
payloads: [{ mediaUrl: "/tmp/img.png" }],
sentMediaUrls: ["/tmp/img.png" ],
}),
).toEqual([{ mediaUrl: undefined, mediaUrls: undefined }]);
});
it("suppresses replies when a messaging tool already sent to the same provider and target" , () => {
expect(
resolveFollowupDeliveryPayloads({
cfg: baseConfig,
payloads: [{ text: "hello world!" }],
messageProvider: "slack" ,
originatingTo: "channel:C1" ,
sentTargets: [{ tool: "slack" , provider: "slack" , to: "channel:C1" }],
}),
).toEqual([]);
});
it("suppresses replies when originating channel resolves the provider" , () => {
expect(
resolveFollowupDeliveryPayloads({
cfg: baseConfig,
payloads: [{ text: "hello world!" }],
messageProvider: "heartbeat" ,
originatingChannel: "telegram" ,
originatingTo: "268300329" ,
sentTargets: [{ tool: "telegram" , provider: "telegram" , to: "268300329" }],
}),
).toEqual([]);
});
});
Messung V0.5 in Prozent C=98 H=98 G=97
¤ Dauer der Verarbeitung: 0.2 Sekunden
¤
*© Formatika GbR, Deutschland