Skip to content

Commit dd901ae

Browse files
authored
test(angular-query-experimental/injectQueries): add test for error state when one of the queries rejects (TanStack#10597)
1 parent 3547f86 commit dd901ae

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

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

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,50 @@ describe('injectQueries', () => {
136136
expect(results.length).toBeGreaterThanOrEqual(2)
137137
})
138138

139+
it('should reflect error state when one of the queries rejects', async () => {
140+
const key1 = queryKey()
141+
const key2 = queryKey()
142+
143+
@Component({
144+
template: `
145+
<div>
146+
status1: {{ result()[0].status() }}, error1:
147+
{{ result()[0].error()?.message ?? 'none' }}
148+
</div>
149+
<div>
150+
status2: {{ result()[1].status() }}, data2:
151+
{{ result()[1].data() ?? 'none' }}
152+
</div>
153+
`,
154+
})
155+
class Page {
156+
readonly result = injectQueries(() => ({
157+
queries: [
158+
{
159+
queryKey: key1,
160+
queryFn: () =>
161+
sleep(10).then(() => Promise.reject(new Error('Some error'))),
162+
retry: false,
163+
},
164+
{
165+
queryKey: key2,
166+
queryFn: () => sleep(10).then(() => 2),
167+
},
168+
],
169+
}))
170+
}
171+
172+
const rendered = await render(Page)
173+
174+
await vi.advanceTimersByTimeAsync(11)
175+
rendered.fixture.detectChanges()
176+
177+
expect(
178+
rendered.getByText('status1: error, error1: Some error'),
179+
).toBeInTheDocument()
180+
expect(rendered.getByText('status2: success, data2: 2')).toBeInTheDocument()
181+
})
182+
139183
describe('isRestoring', () => {
140184
it('should not fetch for the duration of the restoring period when isRestoring is true', async () => {
141185
const key1 = queryKey()

0 commit comments

Comments
 (0)