From 064d3ccbe049c5235861e5e4647d6d20192eec2a Mon Sep 17 00:00:00 2001 From: Jin Jun Oh Date: Fri, 12 Apr 2024 09:23:31 -0700 Subject: [PATCH] SWC-6635: tailor cache invalidation to when deletion is successful --- .../controller/EntityActionControllerImpl.java | 14 ++++++++------ .../controller/EntityActionControllerImplTest.java | 7 +++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/sagebionetworks/web/client/widget/entity/controller/EntityActionControllerImpl.java b/src/main/java/org/sagebionetworks/web/client/widget/entity/controller/EntityActionControllerImpl.java index 2d16493c92..9f62699fe8 100755 --- a/src/main/java/org/sagebionetworks/web/client/widget/entity/controller/EntityActionControllerImpl.java +++ b/src/main/java/org/sagebionetworks/web/client/widget/entity/controller/EntityActionControllerImpl.java @@ -2774,6 +2774,14 @@ public void onSuccess(Void result) { // Go to entity's parent Place gotoPlace = createDeletePlace(); getGlobalApplicationState().getPlaceChanger().goTo(gotoPlace); + KeyFactory keyFactory = keyFactoryProvider.getKeyFactory( + authenticationController.getCurrentUserAccessToken() + ); + queryClient.invalidateQueries( + InvalidateQueryFilters.create( + keyFactory.getTrashCanItemsQueryKey() + ) + ); } @Override @@ -2784,12 +2792,6 @@ public void onFailure(Throwable caught) { } } ); - KeyFactory keyFactory = keyFactoryProvider.getKeyFactory( - authenticationController.getCurrentUserAccessToken() - ); - queryClient.invalidateQueries( - InvalidateQueryFilters.create(keyFactory.getTrashCanItemsQueryKey()) - ); } /** diff --git a/src/test/java/org/sagebionetworks/web/unitclient/widget/entity/controller/EntityActionControllerImplTest.java b/src/test/java/org/sagebionetworks/web/unitclient/widget/entity/controller/EntityActionControllerImplTest.java index 9d104aba23..7eadb938e0 100755 --- a/src/test/java/org/sagebionetworks/web/unitclient/widget/entity/controller/EntityActionControllerImplTest.java +++ b/src/test/java/org/sagebionetworks/web/unitclient/widget/entity/controller/EntityActionControllerImplTest.java @@ -2866,6 +2866,13 @@ public void testOnDeleteConfirmedPreFlightPassedDeleteFailed() { verify(mockView).showErrorMessage( DisplayConstants.ERROR_ENTITY_DELETE_FAILURE + error ); + QueryKey mockQueryKey = mock(QueryKey.class); + when(mockKeyFactory.getTrashCanItemsQueryKey()).thenReturn(mockQueryKey); + verify(mockKeyFactoryProvider, never()).getKeyFactory(anyString()); + verify(mockKeyFactory, never()).getTrashCanItemsQueryKey(); + verify(mockQueryClient, never()).invalidateQueries( + any(InvalidateQueryFilters.class) + ); } @Test