mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 11:27:39 +00:00
refactor: share allow-from merge and sender-id checks
This commit is contained in:
69
src/channels/allow-from.test.ts
Normal file
69
src/channels/allow-from.test.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { firstDefined, isSenderIdAllowed, mergeAllowFromSources } from "./allow-from.js";
|
||||
|
||||
describe("mergeAllowFromSources", () => {
|
||||
it("merges, trims, and filters empty values", () => {
|
||||
expect(
|
||||
mergeAllowFromSources({
|
||||
allowFrom: [" line:user:abc ", "", 123],
|
||||
storeAllowFrom: [" ", "telegram:456"],
|
||||
}),
|
||||
).toEqual(["line:user:abc", "123", "telegram:456"]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("firstDefined", () => {
|
||||
it("returns the first non-undefined value", () => {
|
||||
expect(firstDefined(undefined, undefined, "x", "y")).toBe("x");
|
||||
expect(firstDefined(undefined, 0, 1)).toBe(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe("isSenderIdAllowed", () => {
|
||||
it("supports per-channel empty-list defaults and wildcard/id matches", () => {
|
||||
expect(
|
||||
isSenderIdAllowed(
|
||||
{
|
||||
entries: [],
|
||||
hasEntries: false,
|
||||
hasWildcard: false,
|
||||
},
|
||||
"123",
|
||||
true,
|
||||
),
|
||||
).toBe(true);
|
||||
expect(
|
||||
isSenderIdAllowed(
|
||||
{
|
||||
entries: [],
|
||||
hasEntries: false,
|
||||
hasWildcard: false,
|
||||
},
|
||||
"123",
|
||||
false,
|
||||
),
|
||||
).toBe(false);
|
||||
expect(
|
||||
isSenderIdAllowed(
|
||||
{
|
||||
entries: ["111", "222"],
|
||||
hasEntries: true,
|
||||
hasWildcard: true,
|
||||
},
|
||||
undefined,
|
||||
false,
|
||||
),
|
||||
).toBe(true);
|
||||
expect(
|
||||
isSenderIdAllowed(
|
||||
{
|
||||
entries: ["111", "222"],
|
||||
hasEntries: true,
|
||||
hasWildcard: false,
|
||||
},
|
||||
"222",
|
||||
false,
|
||||
),
|
||||
).toBe(true);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user