From 34eed5c9eaa5afd62032f8b2a8532ec753a27f65 Mon Sep 17 00:00:00 2001 From: Niels Peschel <52583415+NielsJPeschel@users.noreply.github.com> Date: Fri, 28 Aug 2026 15:48:46 -0400 Subject: [PATCH 1/6] fix: overriding cache persists cached data in subsequent calls --- hooks/useLazyLoadData/useLazyLoadData.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hooks/useLazyLoadData/useLazyLoadData.ts b/hooks/useLazyLoadData/useLazyLoadData.ts index bf96361..4153807 100644 --- a/hooks/useLazyLoadData/useLazyLoadData.ts +++ b/hooks/useLazyLoadData/useLazyLoadData.ts @@ -123,6 +123,8 @@ export function useLazyLoadData( } if (disableCache) { + delete promiseSingleton.current[key]; + cache.current[key] = undefined; return handleFetchData(); } if (cachedData !== undefined && invokeCallback) { From ad5d416b6f6b43ca1dd321e6e120b5af4363b132 Mon Sep 17 00:00:00 2001 From: Niels Peschel <52583415+NielsJPeschel@users.noreply.github.com> Date: Fri, 28 Aug 2026 15:56:04 -0400 Subject: [PATCH 2/6] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a88b222..74dbed2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@optum/react-hooks", - "version": "1.1.0", + "version": "1.1.1-next.0", "description": "A reusable set of React hooks", "repository": "https://github.com/Optum/react-hooks", "license": "Apache 2.0", From 65ea0f3b1097bc58ae2ec05e5ff6a4b4f17922f6 Mon Sep 17 00:00:00 2001 From: Niels Peschel <52583415+NielsJPeschel@users.noreply.github.com> Date: Fri, 28 Aug 2026 16:10:24 -0400 Subject: [PATCH 3/6] test cases to reflect --- hooks/useLazyLoadData/useLazyLoadData.test.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/hooks/useLazyLoadData/useLazyLoadData.test.ts b/hooks/useLazyLoadData/useLazyLoadData.test.ts index df0e20d..beeeb64 100644 --- a/hooks/useLazyLoadData/useLazyLoadData.test.ts +++ b/hooks/useLazyLoadData/useLazyLoadData.test.ts @@ -202,4 +202,28 @@ describe('useLazyLoadData', () => { lazyFetchData(); expect(callback).toHaveBeenCalledTimes(2); }); + + it('should not reuse results once new one is requested', async () => { + const getSuccess = jest + .fn() + .mockImplementationOnce(async () => Promise.resolve('1')) + .mockImplementationOnce(async () => Promise.resolve('2')); + + const renderedHook = renderHook(() => useLazyLoadData(getSuccess)); + const lazyFetchData = renderedHook.result.current; + + const res1 = await lazyFetchData(); + expect(res1).toBe('1'); + expect(getSuccess).toHaveBeenCalledTimes(1); + + const res2 = lazyFetchData(true); + const res3 = lazyFetchData() + const res4 = lazyFetchData(); + + const [r2, r3, r4] = await Promise.all([res2, res3, res4]); + expect(r2).toBe('2'); + expect(r3).toBe('2'); + expect(r4).toBe('2'); + expect(getSuccess).toHaveBeenCalledTimes(2); + }); }); From e1d015d8e702b19a6fec056f7d22b4b185bf9cb7 Mon Sep 17 00:00:00 2001 From: Niels Peschel <52583415+NielsJPeschel@users.noreply.github.com> Date: Fri, 28 Aug 2026 16:10:51 -0400 Subject: [PATCH 4/6] Update useLazyLoadData.test.ts --- hooks/useLazyLoadData/useLazyLoadData.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hooks/useLazyLoadData/useLazyLoadData.test.ts b/hooks/useLazyLoadData/useLazyLoadData.test.ts index beeeb64..e817a5c 100644 --- a/hooks/useLazyLoadData/useLazyLoadData.test.ts +++ b/hooks/useLazyLoadData/useLazyLoadData.test.ts @@ -203,7 +203,7 @@ describe('useLazyLoadData', () => { expect(callback).toHaveBeenCalledTimes(2); }); - it('should not reuse results once new one is requested', async () => { + it('should not reuse previous results once new one is requested', async () => { const getSuccess = jest .fn() .mockImplementationOnce(async () => Promise.resolve('1')) From 59e263a7de025b5cfc90cd4269d7c3ddbdab7ab0 Mon Sep 17 00:00:00 2001 From: Niels Peschel <52583415+NielsJPeschel@users.noreply.github.com> Date: Fri, 28 Aug 2026 16:15:20 -0400 Subject: [PATCH 5/6] Update useLazyLoadData.test.ts --- hooks/useLazyLoadData/useLazyLoadData.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hooks/useLazyLoadData/useLazyLoadData.test.ts b/hooks/useLazyLoadData/useLazyLoadData.test.ts index e817a5c..0eb9897 100644 --- a/hooks/useLazyLoadData/useLazyLoadData.test.ts +++ b/hooks/useLazyLoadData/useLazyLoadData.test.ts @@ -203,7 +203,7 @@ describe('useLazyLoadData', () => { expect(callback).toHaveBeenCalledTimes(2); }); - it('should not reuse previous results once new one is requested', async () => { + it('should not reuse stale response once new data is requested', async () => { const getSuccess = jest .fn() .mockImplementationOnce(async () => Promise.resolve('1')) @@ -217,7 +217,7 @@ describe('useLazyLoadData', () => { expect(getSuccess).toHaveBeenCalledTimes(1); const res2 = lazyFetchData(true); - const res3 = lazyFetchData() + const res3 = lazyFetchData(); const res4 = lazyFetchData(); const [r2, r3, r4] = await Promise.all([res2, res3, res4]); From b69a82d3cdcaffd1e9d73dc99d077520bacb330a Mon Sep 17 00:00:00 2001 From: Niels Peschel <52583415+NielsJPeschel@users.noreply.github.com> Date: Fri, 28 Aug 2026 16:15:36 -0400 Subject: [PATCH 6/6] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 74dbed2..308084a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@optum/react-hooks", - "version": "1.1.1-next.0", + "version": "1.1.1", "description": "A reusable set of React hooks", "repository": "https://github.com/Optum/react-hooks", "license": "Apache 2.0",