67 lines
1.7 KiB
TypeScript
67 lines
1.7 KiB
TypeScript
import type { OpenClawConfig, RuntimeEnv } from "openclaw/plugin-sdk";
|
|
import { describe, expect, it } from "vitest";
|
|
import { msteamsPlugin } from "./channel.js";
|
|
|
|
describe("msteams directory", () => {
|
|
const runtimeEnv: RuntimeEnv = {
|
|
log: () => {},
|
|
error: () => {},
|
|
exit: (code: number): never => {
|
|
throw new Error(`exit ${code}`);
|
|
},
|
|
};
|
|
|
|
it("lists peers and groups from config", async () => {
|
|
const cfg = {
|
|
channels: {
|
|
msteams: {
|
|
allowFrom: ["alice", "user:Bob"],
|
|
dms: { carol: {}, bob: {} },
|
|
teams: {
|
|
team1: {
|
|
channels: {
|
|
"conversation:chan1": {},
|
|
chan2: {},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
} as unknown as OpenClawConfig;
|
|
|
|
expect(msteamsPlugin.directory).toBeTruthy();
|
|
expect(msteamsPlugin.directory?.listPeers).toBeTruthy();
|
|
expect(msteamsPlugin.directory?.listGroups).toBeTruthy();
|
|
|
|
await expect(
|
|
msteamsPlugin.directory!.listPeers!({
|
|
cfg,
|
|
query: undefined,
|
|
limit: undefined,
|
|
runtime: runtimeEnv,
|
|
}),
|
|
).resolves.toEqual(
|
|
expect.arrayContaining([
|
|
{ kind: "user", id: "user:alice" },
|
|
{ kind: "user", id: "user:Bob" },
|
|
{ kind: "user", id: "user:carol" },
|
|
{ kind: "user", id: "user:bob" },
|
|
]),
|
|
);
|
|
|
|
await expect(
|
|
msteamsPlugin.directory!.listGroups!({
|
|
cfg,
|
|
query: undefined,
|
|
limit: undefined,
|
|
runtime: runtimeEnv,
|
|
}),
|
|
).resolves.toEqual(
|
|
expect.arrayContaining([
|
|
{ kind: "group", id: "conversation:chan1" },
|
|
{ kind: "group", id: "conversation:chan2" },
|
|
]),
|
|
);
|
|
});
|
|
});
|