import { describe, expect, it } from "vitest" ;
import { buildMessagingTarget, ensureTargetId, requireTargetKind } from "./targets.js" ;
describe("channel targets" , () => {
it("ensureTargetId returns the candidate when it matches" , () => {
expect(
ensureTargetId({
candidate: "U123" ,
pattern: /^[A-Z0-9]+$/i,
errorMessage: "bad" ,
}),
).toBe("U123" );
});
it("ensureTargetId throws with the provided message on mismatch" , () => {
expect(() =>
ensureTargetId({
candidate: "not-ok" ,
pattern: /^[A-Z0-9]+$/i,
errorMessage: "Bad target" ,
}),
).toThrow(/Bad target/);
});
it("requireTargetKind returns the target id when the kind matches" , () => {
const target = buildMessagingTarget("channel" , "C123" , "C123" );
expect(requireTargetKind({ platform: "Slack" , target, kind: "channel" })).toBe("C123" );
});
it("requireTargetKind throws when the kind is missing or mismatched" , () => {
expect(() =>
requireTargetKind({ platform: "Slack" , target: undefined, kind: "channel" }),
).toThrow(/Slack channel id is required/);
const target = buildMessagingTarget("user" , "U123" , "U123" );
expect(() => requireTargetKind({ platform: "Slack" , target, kind: "channel" })).toThrow(
/Slack channel id is required/,
);
});
});
Messung V0.5 in Prozent C=97 H=100 G=98
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet am 2026-05-26)
¤
*© Formatika GbR, Deutschland