mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-15 12:00:43 +00:00
29 lines
1.3 KiB
TypeScript
29 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
looksLikeNextcloudTalkTargetId,
|
|
normalizeNextcloudTalkMessagingTarget,
|
|
stripNextcloudTalkTargetPrefix,
|
|
} from "./normalize.js";
|
|
|
|
describe("nextcloud-talk target normalization", () => {
|
|
it("strips supported prefixes to a room token", () => {
|
|
expect(stripNextcloudTalkTargetPrefix(" room:abc123 ")).toBe("abc123");
|
|
expect(stripNextcloudTalkTargetPrefix("nextcloud-talk:room:AbC123")).toBe("AbC123");
|
|
expect(stripNextcloudTalkTargetPrefix("nc-talk:room:ops")).toBe("ops");
|
|
expect(stripNextcloudTalkTargetPrefix("nc:room:ops")).toBe("ops");
|
|
expect(stripNextcloudTalkTargetPrefix("room: ")).toBeUndefined();
|
|
});
|
|
|
|
it("normalizes messaging targets to lowercase channel ids", () => {
|
|
expect(normalizeNextcloudTalkMessagingTarget("room:AbC123")).toBe("nextcloud-talk:abc123");
|
|
expect(normalizeNextcloudTalkMessagingTarget("nc-talk:room:Ops")).toBe("nextcloud-talk:ops");
|
|
});
|
|
|
|
it("detects prefixed and bare room ids", () => {
|
|
expect(looksLikeNextcloudTalkTargetId("nextcloud-talk:room:abc12345")).toBe(true);
|
|
expect(looksLikeNextcloudTalkTargetId("nc:opsroom1")).toBe(true);
|
|
expect(looksLikeNextcloudTalkTargetId("abc12345")).toBe(true);
|
|
expect(looksLikeNextcloudTalkTargetId("")).toBe(false);
|
|
});
|
|
});
|