Files
openclaw/extensions/msteams/src/graph-users.test.ts
2026-02-22 11:29:31 +00:00

67 lines
2.4 KiB
TypeScript

import { beforeEach, describe, expect, it, vi } from "vitest";
import { searchGraphUsers } from "./graph-users.js";
import { fetchGraphJson } from "./graph.js";
vi.mock("./graph.js", () => ({
escapeOData: vi.fn((value: string) => value.replace(/'/g, "''")),
fetchGraphJson: vi.fn(),
}));
describe("searchGraphUsers", () => {
beforeEach(() => {
vi.mocked(fetchGraphJson).mockReset();
});
it("returns empty array for blank queries", async () => {
await expect(searchGraphUsers({ token: "token-1", query: " " })).resolves.toEqual([]);
expect(fetchGraphJson).not.toHaveBeenCalled();
});
it("uses exact mail/upn filter lookup for email-like queries", async () => {
vi.mocked(fetchGraphJson).mockResolvedValueOnce({
value: [{ id: "user-1", displayName: "User One" }],
} as never);
const result = await searchGraphUsers({
token: "token-2",
query: "alice.o'hara@example.com",
});
expect(fetchGraphJson).toHaveBeenCalledWith({
token: "token-2",
path: "/users?$filter=(mail%20eq%20'alice.o''hara%40example.com'%20or%20userPrincipalName%20eq%20'alice.o''hara%40example.com')&$select=id,displayName,mail,userPrincipalName",
});
expect(result).toEqual([{ id: "user-1", displayName: "User One" }]);
});
it("uses displayName search with eventual consistency and custom top", async () => {
vi.mocked(fetchGraphJson).mockResolvedValueOnce({
value: [{ id: "user-2", displayName: "Bob" }],
} as never);
const result = await searchGraphUsers({
token: "token-3",
query: "bob",
top: 25,
});
expect(fetchGraphJson).toHaveBeenCalledWith({
token: "token-3",
path: "/users?$search=%22displayName%3Abob%22&$select=id,displayName,mail,userPrincipalName&$top=25",
headers: { ConsistencyLevel: "eventual" },
});
expect(result).toEqual([{ id: "user-2", displayName: "Bob" }]);
});
it("falls back to default top and empty value handling", async () => {
vi.mocked(fetchGraphJson).mockResolvedValueOnce({} as never);
await expect(searchGraphUsers({ token: "token-4", query: "carol" })).resolves.toEqual([]);
expect(fetchGraphJson).toHaveBeenCalledWith({
token: "token-4",
path: "/users?$search=%22displayName%3Acarol%22&$select=id,displayName,mail,userPrincipalName&$top=10",
headers: { ConsistencyLevel: "eventual" },
});
});
});