Skip to content

Commit 20fc6c2

Browse files
authored
test(angular-query-experimental/injectInfiniteQuery): add test for error state when 'queryFn' rejects (TanStack#10585)
1 parent 441204b commit 20fc6c2

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,44 @@ describe('injectInfiniteQuery', () => {
6666
).toBeInTheDocument()
6767
})
6868

69+
it('should reject and update signal', async () => {
70+
const key = queryKey()
71+
72+
@Component({
73+
template: `
74+
<div>status: {{ query.status() }}</div>
75+
<div>pages: {{ query.data()?.pages?.join(', ') ?? 'none' }}</div>
76+
<div>error: {{ query.error()?.message ?? 'none' }}</div>
77+
<div>isError: {{ query.isError() }}</div>
78+
<div>failureCount: {{ query.failureCount() }}</div>
79+
`,
80+
})
81+
class Page {
82+
readonly query = injectInfiniteQuery(() => ({
83+
retry: false,
84+
queryKey: key,
85+
queryFn: () =>
86+
sleep(10).then(() => Promise.reject(new Error('Some error'))),
87+
initialPageParam: 0,
88+
getNextPageParam: () => 12,
89+
}))
90+
}
91+
92+
const rendered = await render(Page)
93+
94+
expect(rendered.getByText('status: pending')).toBeInTheDocument()
95+
expect(rendered.getByText('pages: none')).toBeInTheDocument()
96+
97+
await vi.advanceTimersByTimeAsync(11)
98+
rendered.fixture.detectChanges()
99+
100+
expect(rendered.getByText('status: error')).toBeInTheDocument()
101+
expect(rendered.getByText('pages: none')).toBeInTheDocument()
102+
expect(rendered.getByText('error: Some error')).toBeInTheDocument()
103+
expect(rendered.getByText('isError: true')).toBeInTheDocument()
104+
expect(rendered.getByText('failureCount: 1')).toBeInTheDocument()
105+
})
106+
69107
describe('injection context', () => {
70108
it('should throw NG0203 with descriptive error outside injection context', () => {
71109
const key = queryKey()

0 commit comments

Comments
 (0)