From 56985a320f9670210a66b36224b85551d9010cac Mon Sep 17 00:00:00 2001 From: Justin Miller Date: Mon, 16 Mar 2026 16:01:00 -0600 Subject: [PATCH] fix(plugins): address Greptile feedback on testing.ts Remove unnecessary `as any` casts on capability strings (now valid PluginCapability members) and add company-membership guards to match production behavior in plugin-host-services.ts. --- packages/plugins/sdk/src/testing.ts | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/packages/plugins/sdk/src/testing.ts b/packages/plugins/sdk/src/testing.ts index 2bb82c19..5c02bf7c 100644 --- a/packages/plugins/sdk/src/testing.ts +++ b/packages/plugins/sdk/src/testing.ts @@ -423,20 +423,30 @@ export function createTestHarness(options: TestHarnessOptions): TestHarness { return comment; }, documents: { - async list(_issueId, _companyId) { - requireCapability(manifest, capabilitySet, "issue.documents.read" as any); + async list(issueId, companyId) { + requireCapability(manifest, capabilitySet, "issue.documents.read"); + if (!isInCompany(issues.get(issueId), companyId)) return []; return []; }, - async get(_issueId, _key, _companyId) { - requireCapability(manifest, capabilitySet, "issue.documents.read" as any); + async get(issueId, _key, companyId) { + requireCapability(manifest, capabilitySet, "issue.documents.read"); + if (!isInCompany(issues.get(issueId), companyId)) return null; return null; }, - async upsert(_input) { - requireCapability(manifest, capabilitySet, "issue.documents.write" as any); + async upsert(input) { + requireCapability(manifest, capabilitySet, "issue.documents.write"); + const parentIssue = issues.get(input.issueId); + if (!isInCompany(parentIssue, input.companyId)) { + throw new Error(`Issue not found: ${input.issueId}`); + } throw new Error("documents.upsert is not implemented in test context"); }, - async delete(_issueId, _key, _companyId) { - requireCapability(manifest, capabilitySet, "issue.documents.write" as any); + async delete(issueId, _key, companyId) { + requireCapability(manifest, capabilitySet, "issue.documents.write"); + const parentIssue = issues.get(issueId); + if (!isInCompany(parentIssue, companyId)) { + throw new Error(`Issue not found: ${issueId}`); + } }, }, },