import { describe, expect, it, vi } from "vitest" ;
import { resolveSlackUserAllowlist } from "./resolve-users.js" ;
describe("resolveSlackUserAllowlist" , () => {
it("resolves by email and prefers active human users" , async () => {
const client = {
users: {
list: vi.fn().mockResolvedValue({
members: [
{
id: "U1" ,
name: "bot-user" ,
is_bot: true ,
deleted: false ,
profile: { email: "person@example.com" },
},
{
id: "U2" ,
name: "person" ,
is_bot: false ,
deleted: false ,
profile: { email: "person@example.com" , display_name: "Person" },
},
],
}),
},
};
const res = await resolveSlackUserAllowlist({
token: "xoxb-test" ,
entries: ["person@example.com" ],
client: client as never,
});
expect(res[0 ]).toMatchObject({
resolved: true ,
id: "U2" ,
name: "Person" ,
email: "person@example.com" ,
isBot: false ,
});
});
it("keeps unresolved users" , async () => {
const client = {
users: {
list: vi.fn().mockResolvedValue({ members: [] }),
},
};
const res = await resolveSlackUserAllowlist({
token: "xoxb-test" ,
entries: ["@missing-user" ],
client: client as never,
});
expect(res[0 ]).toEqual({ input: "@missing-user" , resolved: false });
});
});
Messung V0.5 in Prozent C=94 H=96 G=94
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-05)
¤
*© Formatika GbR, Deutschland