diff --git a/src/core/index.ts b/src/core/index.ts index f3c50981..95d34a4b 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -19,7 +19,7 @@ function resultContainer() { return value as TValue }, get error() { - const { error } = results[results.length - 1] + const { error } = results[results.length - 1] ?? {} return error } } diff --git a/src/dom/__tests__/suspenseHook.test.ts b/src/dom/__tests__/suspenseHook.test.ts index 7ee7154c..41e9f99a 100644 --- a/src/dom/__tests__/suspenseHook.test.ts +++ b/src/dom/__tests__/suspenseHook.test.ts @@ -52,4 +52,10 @@ describe('suspense hook tests', () => { expect(result.current).toBe(undefined) }) + + test('should return undefined if error is requested before suspension has resolved', async () => { + const { result } = renderHook(() => useFetchName(true)) + + expect(result.error).toBe(undefined) + }) }) diff --git a/src/native/__tests__/suspenseHook.test.ts b/src/native/__tests__/suspenseHook.test.ts index 7ee7154c..41e9f99a 100644 --- a/src/native/__tests__/suspenseHook.test.ts +++ b/src/native/__tests__/suspenseHook.test.ts @@ -52,4 +52,10 @@ describe('suspense hook tests', () => { expect(result.current).toBe(undefined) }) + + test('should return undefined if error is requested before suspension has resolved', async () => { + const { result } = renderHook(() => useFetchName(true)) + + expect(result.error).toBe(undefined) + }) })