From fb5de02bc07d4e5b812bd6941be6f0a5bbb99bc3 Mon Sep 17 00:00:00 2001 From: Chris Chudzicki Date: Tue, 26 Mar 2024 10:45:12 -0400 Subject: [PATCH] fix learningpath invalidation (#635) * fix learningpath invalidation * invalidate on removal, too --- .../src/hooks/learningResources/index.test.ts | 17 +++++++++-------- .../api/src/hooks/learningResources/index.ts | 12 +++--------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/frontends/api/src/hooks/learningResources/index.test.ts b/frontends/api/src/hooks/learningResources/index.test.ts index 8ba0fa45e5..8ff310eb9b 100644 --- a/frontends/api/src/hooks/learningResources/index.test.ts +++ b/frontends/api/src/hooks/learningResources/index.test.ts @@ -273,7 +273,6 @@ describe("LearningPath CRUD", () => { setMockResponse.post(url, relationship) const { wrapper, queryClient } = setupReactQueryTest() - jest.spyOn(queryClient, "invalidateQueries") const { result } = renderHook(useLearningpathRelationshipCreate, { wrapper, }) @@ -281,13 +280,15 @@ describe("LearningPath CRUD", () => { await waitFor(() => expect(result.current.isSuccess).toBe(true)) expect(makeRequest).toHaveBeenCalledWith("post", url, requestData) - expect(queryClient.invalidateQueries).toHaveBeenCalledWith( - keys.relationshipListing, - ) + expect(invalidateResourceQueries).toHaveBeenCalledWith( queryClient, relationship.child, ) + expect(invalidateResourceQueries).toHaveBeenCalledWith( + queryClient, + relationship.parent, + ) // Check patches cached result expect(queryClient.getQueryData(keys.childResource)).toEqual( @@ -302,7 +303,6 @@ describe("LearningPath CRUD", () => { setMockResponse.delete(url, null) const { wrapper, queryClient } = setupReactQueryTest() queryClient.setQueryData(keys.childResource, relationship.resource) - jest.spyOn(queryClient, "invalidateQueries") const { result } = renderHook(useLearningpathRelationshipDestroy, { wrapper, }) @@ -311,13 +311,14 @@ describe("LearningPath CRUD", () => { await waitFor(() => expect(result.current.isSuccess).toBe(true)) expect(makeRequest).toHaveBeenCalledWith("delete", url, undefined) - expect(queryClient.invalidateQueries).toHaveBeenCalledWith( - keys.relationshipListing, - ) expect(invalidateResourceQueries).toHaveBeenCalledWith( queryClient, relationship.child, ) + expect(invalidateResourceQueries).toHaveBeenCalledWith( + queryClient, + relationship.parent, + ) // Patched existing resource expect(queryClient.getQueryData(keys.childResource)).toEqual({ diff --git a/frontends/api/src/hooks/learningResources/index.ts b/frontends/api/src/hooks/learningResources/index.ts index 8ba0743086..33f4b3910b 100644 --- a/frontends/api/src/hooks/learningResources/index.ts +++ b/frontends/api/src/hooks/learningResources/index.ts @@ -158,10 +158,7 @@ const useLearningpathRelationshipCreate = () => { }, onSettled: (response, _err, vars) => { invalidateResourceQueries(queryClient, vars.child) - queryClient.invalidateQueries( - learningResources.learningpaths._ctx.detail(vars.parent)._ctx - .infiniteItems._def, - ) + invalidateResourceQueries(queryClient, vars.parent) }, }) } @@ -188,12 +185,9 @@ const useLearningpathRelationshipDestroy = () => { }, ) }, - onSettled: (response, _err, vars) => { + onSettled: (_response, _err, vars) => { invalidateResourceQueries(queryClient, vars.child) - queryClient.invalidateQueries( - learningResources.learningpaths._ctx.detail(vars.parent)._ctx - .infiniteItems._def, - ) + invalidateResourceQueries(queryClient, vars.parent) }, }) }