Skip to content

Commit 1ae462b

Browse files
authored
Fix query state being set to "success" when query function throw (#167)
* add failing test * fix failing test
1 parent a76d1df commit 1ae462b

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

src/queryCache.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ export function makeQueryCache() {
306306
})
307307
}
308308

309-
// throw error
309+
throw error
310310
}
311311
}
312312

@@ -381,7 +381,7 @@ export function makeQueryCache() {
381381
instance.onSettled && instance.onSettled(undefined, error)
382382
)
383383

384-
throw error
384+
// throw error
385385
}
386386
}
387387
})()

src/tests/useQuery.test.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,4 +157,26 @@ describe('useQuery', () => {
157157
await waitForElement(() => rendered.getByText('default'))
158158
expect(queryFn).not.toHaveBeenCalled()
159159
})
160+
161+
it('should set status to error if queryFn throws', async () => {
162+
function Page() {
163+
const { status } = useQuery(
164+
'test',
165+
() => {
166+
return Promise.reject('Error test')
167+
},
168+
{ retry: false },
169+
)
170+
171+
return (
172+
<div>
173+
<h1>{status}</h1>
174+
</div>
175+
)
176+
}
177+
178+
const rendered = render(<Page />)
179+
180+
await waitForElement(() => rendered.getByText('error'))
181+
})
160182
})

0 commit comments

Comments
 (0)