53 lines
1.2 KiB
TypeScript
53 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { validateConfigObject } from "./validation.js";
|
|
|
|
// NOTE: These tests ensure allow + alsoAllow cannot be set in the same scope.
|
|
|
|
describe("config: tools.alsoAllow", () => {
|
|
it("rejects tools.allow + tools.alsoAllow together", () => {
|
|
const res = validateConfigObject({
|
|
tools: {
|
|
allow: ["group:fs"],
|
|
alsoAllow: ["lobster"],
|
|
},
|
|
});
|
|
|
|
expect(res.ok).toBe(false);
|
|
if (!res.ok) {
|
|
expect(res.issues.some((i) => i.path === "tools")).toBe(true);
|
|
}
|
|
});
|
|
|
|
it("rejects agents.list[].tools.allow + alsoAllow together", () => {
|
|
const res = validateConfigObject({
|
|
agents: {
|
|
list: [
|
|
{
|
|
id: "main",
|
|
tools: {
|
|
allow: ["group:fs"],
|
|
alsoAllow: ["lobster"],
|
|
},
|
|
},
|
|
],
|
|
},
|
|
});
|
|
|
|
expect(res.ok).toBe(false);
|
|
if (!res.ok) {
|
|
expect(res.issues.some((i) => i.path.includes("agents.list"))).toBe(true);
|
|
}
|
|
});
|
|
|
|
it("allows profile + alsoAllow", () => {
|
|
const res = validateConfigObject({
|
|
tools: {
|
|
profile: "coding",
|
|
alsoAllow: ["lobster"],
|
|
},
|
|
});
|
|
|
|
expect(res.ok).toBe(true);
|
|
});
|
|
});
|