openclaw/extensions/matrix/src/onboarding.resolve.test.ts

54 lines
1.6 KiB
TypeScript

import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import { installMatrixTestRuntime } from "./test-runtime.js";
import type { CoreConfig } from "./types.js";
const resolveMatrixTargetsMock = vi.hoisted(() =>
vi.fn(async () => [{ input: "Alice", resolved: true, id: "@alice:example.org" }]),
);
vi.mock("./resolve-targets.js", () => ({
resolveMatrixTargets: resolveMatrixTargetsMock,
}));
let runMatrixAddAccountAllowlistConfigure: typeof import("./onboarding.test-harness.js").runMatrixAddAccountAllowlistConfigure;
describe("matrix onboarding account-scoped resolution", () => {
beforeEach(async () => {
vi.resetModules();
({ runMatrixAddAccountAllowlistConfigure } = await import("./onboarding.test-harness.js"));
installMatrixTestRuntime();
resolveMatrixTargetsMock.mockClear();
});
afterEach(() => {
vi.clearAllMocks();
});
it("passes accountId into Matrix allowlist target resolution during onboarding", async () => {
const result = await runMatrixAddAccountAllowlistConfigure({
cfg: {
channels: {
matrix: {
accounts: {
default: {
homeserver: "https://matrix.main.example.org",
accessToken: "main-token",
},
},
},
},
} as CoreConfig,
allowFromInput: "Alice",
roomsAllowlistInput: "",
});
expect(result).not.toBe("skip");
expect(resolveMatrixTargetsMock).toHaveBeenCalledWith({
cfg: expect.any(Object),
accountId: "ops",
inputs: ["Alice"],
kind: "user",
});
});
});