| 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); |
| }); |
| }); |
|
|