import { describe, expect, it } from "vitest" ;
import { getDoctorChannelCapabilities } from "./channel-capabilities.js" ;
describe("doctor channel capabilities" , () => {
it("returns nested route semantics from googlechat plugin metadata" , () => {
expect(getDoctorChannelCapabilities("googlechat" )).toEqual({
dmAllowFromMode: "nestedOnly" ,
groupModel: "route" ,
groupAllowFromFallbackToAllowFrom: false ,
warnOnEmptyGroupSenderAllowlist: false ,
});
});
it("returns capability overrides from matrix plugin metadata" , () => {
expect(getDoctorChannelCapabilities("matrix" )).toEqual({
dmAllowFromMode: "nestedOnly" ,
groupModel: "sender" ,
groupAllowFromFallbackToAllowFrom: false ,
warnOnEmptyGroupSenderAllowlist: true ,
});
});
it("returns hybrid group semantics for zalouser" , () => {
expect(getDoctorChannelCapabilities("zalouser" )).toEqual({
dmAllowFromMode: "topOnly" ,
groupModel: "hybrid" ,
groupAllowFromFallbackToAllowFrom: false ,
warnOnEmptyGroupSenderAllowlist: false ,
});
});
it("preserves empty sender allowlist warnings for msteams hybrid routing" , () => {
expect(getDoctorChannelCapabilities("msteams" )).toEqual({
dmAllowFromMode: "topOnly" ,
groupModel: "hybrid" ,
groupAllowFromFallbackToAllowFrom: false ,
warnOnEmptyGroupSenderAllowlist: true ,
});
});
it("falls back conservatively for unknown external channels" , () => {
expect(getDoctorChannelCapabilities("external-demo" )).toEqual({
dmAllowFromMode: "topOnly" ,
groupModel: "sender" ,
groupAllowFromFallbackToAllowFrom: true ,
warnOnEmptyGroupSenderAllowlist: true ,
});
});
});
Messung V0.5 in Prozent C=99 H=96 G=97
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland