From 6b5cdc2d2403a2640a3697b11e524a36b13cca8b Mon Sep 17 00:00:00 2001 From: Simon Hornby Date: Thu, 18 Apr 2024 13:10:22 +0200 Subject: [PATCH] fix: archive toggle no longer respects change request (#6882) --- .../FeatureArchiveDialog.test.tsx | 11 ++++++----- .../FeatureArchiveDialog/FeatureArchiveDialog.tsx | 15 ++++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/frontend/src/component/common/FeatureArchiveDialog/FeatureArchiveDialog.test.tsx b/frontend/src/component/common/FeatureArchiveDialog/FeatureArchiveDialog.test.tsx index 29a396de4c..0e76d8d8fe 100644 --- a/frontend/src/component/common/FeatureArchiveDialog/FeatureArchiveDialog.test.tsx +++ b/frontend/src/component/common/FeatureArchiveDialog/FeatureArchiveDialog.test.tsx @@ -112,14 +112,14 @@ test('Add multiple archive feature changes to change request', async () => { expect(onClose).toBeCalledTimes(1); }); -test('Skip change request', async () => { +test('Skip change request does not affect archive', async () => { const onClose = vi.fn(); const onConfirm = vi.fn(); setupHappyPathForChangeRequest(); setupArchiveValidation([]); render( { { permissions: [{ permission: 'SKIP_CHANGE_REQUEST' }] }, ); - await screen.findByText('Archive feature toggles'); - const button = await screen.findByText('Archive toggles'); + await screen.findByText('Archive feature toggle'); + const button = await screen.findByText('Add change to draft'); await waitFor(() => expect(button).toBeEnabled()); + button.click(); await waitFor(() => { expect(onClose).toBeCalledTimes(1); }); - expect(onConfirm).toBeCalledTimes(0); // we didn't setup non Change Request flow so failure + expect(onConfirm).toBeCalledTimes(1); }); test('Show error message when multiple parents of orphaned children are archived', async () => { diff --git a/frontend/src/component/common/FeatureArchiveDialog/FeatureArchiveDialog.tsx b/frontend/src/component/common/FeatureArchiveDialog/FeatureArchiveDialog.tsx index 215aab73e8..12ae6a02d0 100644 --- a/frontend/src/component/common/FeatureArchiveDialog/FeatureArchiveDialog.tsx +++ b/frontend/src/component/common/FeatureArchiveDialog/FeatureArchiveDialog.tsx @@ -181,15 +181,16 @@ const useActionButtonText = (projectId: string, isBulkArchive: boolean) => { const getHighestEnvironment = useHighestPermissionChangeRequestEnvironment(projectId); const environment = getHighestEnvironment(); - const { isChangeRequestConfigured } = useChangeRequestsEnabled(projectId); + const { isChangeRequestConfiguredForReview } = + useChangeRequestsEnabled(projectId); if ( environment && - isChangeRequestConfigured(environment) && + isChangeRequestConfiguredForReview(environment) && isBulkArchive ) { return 'Add to change request'; } - if (environment && isChangeRequestConfigured(environment)) { + if (environment && isChangeRequestConfiguredForReview(environment)) { return 'Add change to draft'; } if (isBulkArchive) { @@ -212,7 +213,8 @@ const useArchiveAction = ({ const { setToastData, setToastApiError } = useToast(); const { archiveFeatureToggle } = useFeatureApi(); const { archiveFeatures } = useProjectApi(); - const { isChangeRequestConfigured } = useChangeRequestsEnabled(projectId); + const { isChangeRequestConfiguredForReview } = + useChangeRequestsEnabled(projectId); const { addChange } = useChangeRequestApi(); const { refetch: refetchChangeRequests } = usePendingChangeRequests(projectId); @@ -266,7 +268,10 @@ const useArchiveAction = ({ return async () => { try { - if (environment && isChangeRequestConfigured(environment)) { + if ( + environment && + isChangeRequestConfiguredForReview(environment) + ) { await addArchiveToggleToChangeRequest(); } else if (isBulkArchive) { await archiveToggles();