Files
openclaw/extensions/matrix/src/thread-binding-api.test.ts
2026-04-17 02:00:26 -04:00

34 lines
1.0 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
defaultTopLevelPlacement,
resolveMatrixInboundConversation,
} from "./thread-binding-api.js";
describe("Matrix thread binding public API", () => {
it("advertises child placement for top-level Matrix rooms", () => {
expect(defaultTopLevelPlacement).toBe("child");
});
it("resolves top-level room targets as parent conversations", () => {
expect(resolveMatrixInboundConversation({ to: "channel:!room:example" })).toEqual({
conversationId: "!room:example",
});
});
it("preserves canonical room casing when resolving thread conversations", () => {
expect(
resolveMatrixInboundConversation({
to: "room:!Room:Example.org",
threadId: "$thread-root",
}),
).toEqual({
conversationId: "$thread-root",
parentConversationId: "!Room:Example.org",
});
});
it("does not resolve user targets as thread binding rooms", () => {
expect(resolveMatrixInboundConversation({ to: "user:@user:example.org" })).toBeNull();
});
});