From a8bcaf7f635930f37b2943a83bf5477b82ebf251 Mon Sep 17 00:00:00 2001 From: Nitin Pawar Date: Fri, 14 Aug 2026 14:25:38 +0530 Subject: [PATCH] fix: add namespace to ApplicationSet delete accessReview Delete action was missing namespace in accessReview, causing cluster-scoped permission checks that greyed out Delete for namespace-scoped users. Matches Edit action pattern. Fixes: GITOPS-10780 Co-authored-by: Cursor --- .../useApplicationSetActionsProvider.test.tsx | 29 +++++++++++++++++++ .../useApplicationSetActionsProvider.tsx | 1 + 2 files changed, 30 insertions(+) create mode 100644 src/gitops/hooks/useApplicationSetActionsProvider.test.tsx diff --git a/src/gitops/hooks/useApplicationSetActionsProvider.test.tsx b/src/gitops/hooks/useApplicationSetActionsProvider.test.tsx new file mode 100644 index 000000000..43612b80f --- /dev/null +++ b/src/gitops/hooks/useApplicationSetActionsProvider.test.tsx @@ -0,0 +1,29 @@ +import * as fs from 'fs'; +import * as path from 'path'; + +describe('useApplicationSetActionsProvider', () => { + const source = fs.readFileSync( + path.join(__dirname, 'useApplicationSetActionsProvider.tsx'), + 'utf8', + ); + + it('includes namespace in delete action accessReview', () => { + const deleteBlock = source.slice( + source.indexOf('gitops-action-delete-applicationset'), + source.indexOf('cta: () => launchDeleteModal()'), + ); + + expect(deleteBlock).toContain("verb: 'delete' as K8sVerb"); + expect(deleteBlock).toContain('resource: ApplicationSetModel.plural'); + expect(deleteBlock).toContain('namespace: applicationSet?.metadata?.namespace'); + }); + + it('includes namespace in edit action accessReview for consistency', () => { + const editBlock = source.slice( + source.indexOf('gitops-action-edit-applicationset'), + source.indexOf('navigate('), + ); + + expect(editBlock).toContain('namespace: applicationSet?.metadata?.namespace'); + }); +}); diff --git a/src/gitops/hooks/useApplicationSetActionsProvider.tsx b/src/gitops/hooks/useApplicationSetActionsProvider.tsx index 7718dadd9..6021d54ad 100644 --- a/src/gitops/hooks/useApplicationSetActionsProvider.tsx +++ b/src/gitops/hooks/useApplicationSetActionsProvider.tsx @@ -81,6 +81,7 @@ export const useApplicationSetActionsProvider: UseApplicationSetActionsProvider group: ApplicationSetModel.apiGroup, verb: 'delete' as K8sVerb, resource: ApplicationSetModel.plural, + namespace: applicationSet?.metadata?.namespace, }, cta: () => launchDeleteModal(), },