mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-10-26 10:45:22 +00:00
refactor(permission-system): simplify policy and autoreview flow
This commit is contained in:
@@ -13,82 +13,23 @@ import { createPermissionSystemLogger } from "#src/logging";
|
||||
import type { ResolvedPolicyPaths } from "#src/permission-manager";
|
||||
import { PermissionManager } from "#src/permission-manager";
|
||||
|
||||
test("buildResolvedConfigLogEntry includes policy paths and legacy detection flags", () => {
|
||||
test("buildResolvedConfigLogEntry reports global and agent policy paths", () => {
|
||||
const policyPaths: ResolvedPolicyPaths = {
|
||||
globalConfigPath:
|
||||
"/home/user/.pi/agent/extensions/pi-permission-system/config.json",
|
||||
globalConfigPath: "/home/user/.pi/agent/extensions/pi-permission-system/policy.jsonc",
|
||||
globalConfigExists: true,
|
||||
projectConfigPath:
|
||||
"/projects/my-app/.pi/extensions/pi-permission-system/config.json",
|
||||
projectConfigExists: false,
|
||||
agentsDir: "/home/user/.pi/agent/agents",
|
||||
agentsDirExists: true,
|
||||
projectAgentsDir: "/projects/my-app/.pi/agent/agents",
|
||||
projectAgentsDirExists: false,
|
||||
};
|
||||
|
||||
const result = buildResolvedConfigLogEntry({ policyPaths });
|
||||
|
||||
expect(result.globalConfigPath).toBe(
|
||||
"/home/user/.pi/agent/extensions/pi-permission-system/config.json",
|
||||
);
|
||||
expect(result.globalConfigExists).toBe(true);
|
||||
expect(result.projectConfigPath).toBe(
|
||||
"/projects/my-app/.pi/extensions/pi-permission-system/config.json",
|
||||
);
|
||||
expect(result.projectConfigExists).toBe(false);
|
||||
expect(result.agentsDir).toBe("/home/user/.pi/agent/agents");
|
||||
expect(result.agentsDirExists).toBe(true);
|
||||
expect(result.projectAgentsDir).toBe("/projects/my-app/.pi/agent/agents");
|
||||
expect(result.projectAgentsDirExists).toBe(false);
|
||||
expect(result.legacyGlobalPolicyDetected).toBe(false);
|
||||
expect(result.legacyProjectPolicyDetected).toBe(false);
|
||||
expect(result.legacyExtensionConfigDetected).toBe(false);
|
||||
});
|
||||
|
||||
test("buildResolvedConfigLogEntry handles null project paths", () => {
|
||||
const policyPaths: ResolvedPolicyPaths = {
|
||||
globalConfigPath:
|
||||
"/home/user/.pi/agent/extensions/pi-permission-system/config.json",
|
||||
globalConfigExists: false,
|
||||
projectConfigPath: null,
|
||||
projectConfigExists: false,
|
||||
agentsDir: "/home/user/.pi/agent/agents",
|
||||
agentsDirExists: false,
|
||||
projectAgentsDir: null,
|
||||
projectAgentsDirExists: false,
|
||||
};
|
||||
|
||||
const result = buildResolvedConfigLogEntry({ policyPaths });
|
||||
|
||||
expect(result.projectConfigPath).toBe(null);
|
||||
expect(result.projectConfigExists).toBe(false);
|
||||
expect(result.projectAgentsDir).toBe(null);
|
||||
expect(result.projectAgentsDirExists).toBe(false);
|
||||
});
|
||||
|
||||
test("buildResolvedConfigLogEntry surfaces legacy detection flags", () => {
|
||||
const policyPaths: ResolvedPolicyPaths = {
|
||||
globalConfigPath:
|
||||
"/home/user/.pi/agent/extensions/pi-permission-system/config.json",
|
||||
globalConfigExists: true,
|
||||
projectConfigPath: null,
|
||||
projectConfigExists: false,
|
||||
agentsDir: "/home/user/.pi/agent/agents",
|
||||
agentsDirExists: false,
|
||||
projectAgentsDir: null,
|
||||
projectAgentsDirExists: false,
|
||||
};
|
||||
|
||||
const result = buildResolvedConfigLogEntry({
|
||||
policyPaths,
|
||||
legacyGlobalPolicyDetected: true,
|
||||
legacyExtensionConfigDetected: true,
|
||||
expect(result).toEqual({
|
||||
...policyPaths,
|
||||
legacyGlobalPolicyDetected: false,
|
||||
legacyExtensionConfigDetected: false,
|
||||
});
|
||||
|
||||
expect(result.legacyGlobalPolicyDetected).toBe(true);
|
||||
expect(result.legacyProjectPolicyDetected).toBe(false);
|
||||
expect(result.legacyExtensionConfigDetected).toBe(true);
|
||||
});
|
||||
|
||||
test("config.resolved entry appears in review log via logger", () => {
|
||||
@@ -135,12 +76,9 @@ test("config.resolved entry appears in review log via logger", () => {
|
||||
expect(parsed.globalConfigExists).toBe(true);
|
||||
expect(parsed.agentsDir).toBe(agentsDir);
|
||||
expect(parsed.agentsDirExists).toBe(false);
|
||||
expect(parsed.projectConfigPath).toBe(null);
|
||||
expect(parsed.projectConfigExists).toBe(false);
|
||||
expect(parsed.projectAgentsDir).toBe(null);
|
||||
expect(parsed.projectAgentsDirExists).toBe(false);
|
||||
expect(parsed.legacyGlobalPolicyDetected).toBe(false);
|
||||
expect(parsed.legacyProjectPolicyDetected).toBe(false);
|
||||
expect(parsed.legacyExtensionConfigDetected).toBe(false);
|
||||
} finally {
|
||||
rmSync(tempDir, { recursive: true, force: true });
|
||||
|
||||
Reference in New Issue
Block a user