mirror of https://github.com/openclaw/openclaw.git
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { looksLikeFeishuId, normalizeFeishuTarget, resolveReceiveIdType } from "./targets.js";
|
|
|
|
describe("resolveReceiveIdType", () => {
|
|
it("resolves chat IDs by oc_ prefix", () => {
|
|
expect(resolveReceiveIdType("oc_123")).toBe("chat_id");
|
|
});
|
|
|
|
it("resolves open IDs by ou_ prefix", () => {
|
|
expect(resolveReceiveIdType("ou_123")).toBe("open_id");
|
|
});
|
|
|
|
it("defaults unprefixed IDs to user_id", () => {
|
|
expect(resolveReceiveIdType("u_123")).toBe("user_id");
|
|
});
|
|
});
|
|
|
|
describe("normalizeFeishuTarget", () => {
|
|
it("strips provider and user prefixes", () => {
|
|
expect(normalizeFeishuTarget("feishu:user:ou_123")).toBe("ou_123");
|
|
expect(normalizeFeishuTarget("lark:user:ou_123")).toBe("ou_123");
|
|
});
|
|
|
|
it("strips provider and chat prefixes", () => {
|
|
expect(normalizeFeishuTarget("feishu:chat:oc_123")).toBe("oc_123");
|
|
});
|
|
|
|
it("accepts provider-prefixed raw ids", () => {
|
|
expect(normalizeFeishuTarget("feishu:ou_123")).toBe("ou_123");
|
|
});
|
|
});
|
|
|
|
describe("looksLikeFeishuId", () => {
|
|
it("accepts provider-prefixed user targets", () => {
|
|
expect(looksLikeFeishuId("feishu:user:ou_123")).toBe(true);
|
|
});
|
|
|
|
it("accepts provider-prefixed chat targets", () => {
|
|
expect(looksLikeFeishuId("lark:chat:oc_123")).toBe(true);
|
|
});
|
|
});
|