41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
|
|
describe("config msteams", () => {
|
|
it("accepts replyStyle at global/team/channel levels", async () => {
|
|
vi.resetModules();
|
|
const { validateConfigObject } = await import("./config.js");
|
|
const res = validateConfigObject({
|
|
channels: {
|
|
msteams: {
|
|
replyStyle: "top-level",
|
|
teams: {
|
|
team123: {
|
|
replyStyle: "thread",
|
|
channels: {
|
|
chan456: { replyStyle: "top-level" },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|
|
expect(res.ok).toBe(true);
|
|
if (res.ok) {
|
|
expect(res.config.channels?.msteams?.replyStyle).toBe("top-level");
|
|
expect(res.config.channels?.msteams?.teams?.team123?.replyStyle).toBe("thread");
|
|
expect(res.config.channels?.msteams?.teams?.team123?.channels?.chan456?.replyStyle).toBe(
|
|
"top-level",
|
|
);
|
|
}
|
|
});
|
|
|
|
it("rejects invalid replyStyle", async () => {
|
|
vi.resetModules();
|
|
const { validateConfigObject } = await import("./config.js");
|
|
const res = validateConfigObject({
|
|
channels: { msteams: { replyStyle: "nope" } },
|
|
});
|
|
expect(res.ok).toBe(false);
|
|
});
|
|
});
|