mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
test(security): keep policy approval coverage compact
This commit is contained in:
@@ -797,57 +797,25 @@ describe("plugin management service", () => {
|
||||
onInstallPolicyWarning: expect.any(Function),
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
it("consumes Gateway install-policy acknowledgement after one warning", async () => {
|
||||
const installParams = expectDefined(
|
||||
mocks.clawhubInstall.mock.calls[0],
|
||||
"clawhub install call test invariant",
|
||||
)[0] as {
|
||||
onInstallPolicyWarning?: (
|
||||
request: InstallPolicyWarningAcknowledgementRequest,
|
||||
) => Promise<boolean>;
|
||||
};
|
||||
const acknowledge = installParams.onInstallPolicyWarning;
|
||||
if (!acknowledge) {
|
||||
throw new Error("expected install-policy acknowledgement callback");
|
||||
}
|
||||
const warningRequest: InstallPolicyWarningAcknowledgementRequest = {
|
||||
targetName: "diffs",
|
||||
targetType: "plugin",
|
||||
requestMode: "install",
|
||||
};
|
||||
const laterWarning = {
|
||||
targetName: "diffs",
|
||||
targetType: "plugin" as const,
|
||||
requestMode: "install" as const,
|
||||
reason: "Dependency tree requires separate review",
|
||||
findings: [
|
||||
{
|
||||
ruleId: "dependency-review",
|
||||
severity: "warn" as const,
|
||||
message: "A dependency triggered policy",
|
||||
},
|
||||
],
|
||||
};
|
||||
mocks.readConfig.mockResolvedValue(configSnapshot());
|
||||
mockHostedOfficialCatalog([hostedFeedDiffsEntry]);
|
||||
mocks.clawhubInstall.mockImplementation(
|
||||
async (installParams: {
|
||||
onInstallPolicyWarning?: (
|
||||
request: InstallPolicyWarningAcknowledgementRequest,
|
||||
) => Promise<boolean>;
|
||||
}) => {
|
||||
const acknowledge = installParams.onInstallPolicyWarning;
|
||||
if (!acknowledge) {
|
||||
throw new Error("expected install-policy acknowledgement callback");
|
||||
}
|
||||
expect(await acknowledge(warningRequest)).toBe(true);
|
||||
expect(await acknowledge(warningRequest)).toBe(false);
|
||||
return {
|
||||
ok: false,
|
||||
error: "Install cancelled: the install policy warning was not approved.",
|
||||
code: "security_scan_blocked",
|
||||
installPolicyWarning: laterWarning,
|
||||
};
|
||||
},
|
||||
);
|
||||
|
||||
await expect(
|
||||
installManagedPlugin({
|
||||
request: { source: "official", pluginId: "diffs", acknowledgeInstallPolicyWarning: true },
|
||||
env: {},
|
||||
}),
|
||||
).rejects.toMatchObject({ installPolicyWarning: laterWarning });
|
||||
expect(mocks.persistInstall).not.toHaveBeenCalled();
|
||||
expect(await acknowledge(warningRequest)).toBe(true);
|
||||
expect(await acknowledge(warningRequest)).toBe(false);
|
||||
});
|
||||
|
||||
it("removes only the newly installed managed target after persistence conflicts", async () => {
|
||||
|
||||
Reference in New Issue
Block a user