Skip to content

Commit e7de909

Browse files
authored
test(angular-query-experimental/injectInfiniteQuery): switch main test to '@component' + 'render' pattern (TanStack#10558)
1 parent 0d2112c commit e7de909

1 file changed

Lines changed: 29 additions & 26 deletions

File tree

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

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
import { TestBed } from '@angular/core/testing'
22
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
3-
import { Injector, provideZonelessChangeDetection } from '@angular/core'
3+
import {
4+
Component,
5+
Injector,
6+
provideZonelessChangeDetection,
7+
} from '@angular/core'
8+
import { render } from '@testing-library/angular'
49
import { queryKey, sleep } from '@tanstack/query-test-utils'
510
import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..'
6-
import { expectSignals } from './test-utils'
711

812
describe('injectInfiniteQuery', () => {
913
let queryClient: QueryClient
@@ -25,42 +29,41 @@ describe('injectInfiniteQuery', () => {
2529

2630
it('should properly execute infinite query', async () => {
2731
const key = queryKey()
28-
const query = TestBed.runInInjectionContext(() => {
29-
return injectInfiniteQuery(() => ({
32+
33+
@Component({
34+
template: `
35+
<div>status: {{ query.status() }}</div>
36+
<div>pages: {{ query.data()?.pages?.join(', ') ?? 'none' }}</div>
37+
`,
38+
})
39+
class Page {
40+
readonly query = injectInfiniteQuery(() => ({
3041
queryKey: key,
3142
queryFn: ({ pageParam }) =>
3243
sleep(10).then(() => 'data on page ' + pageParam),
3344
initialPageParam: 0,
3445
getNextPageParam: () => 12,
3546
}))
36-
})
47+
}
3748

38-
expectSignals(query, {
39-
data: undefined,
40-
status: 'pending',
41-
})
49+
const rendered = await render(Page)
4250

43-
await vi.advanceTimersByTimeAsync(11)
51+
expect(rendered.getByText('status: pending')).toBeInTheDocument()
52+
expect(rendered.getByText('pages: none')).toBeInTheDocument()
4453

45-
expectSignals(query, {
46-
data: {
47-
pageParams: [0],
48-
pages: ['data on page 0'],
49-
},
50-
status: 'success',
51-
})
54+
await vi.advanceTimersByTimeAsync(11)
55+
rendered.fixture.detectChanges()
56+
expect(rendered.getByText('status: success')).toBeInTheDocument()
57+
expect(rendered.getByText('pages: data on page 0')).toBeInTheDocument()
5258

53-
void query.fetchNextPage()
59+
rendered.fixture.componentInstance.query.fetchNextPage()
5460

5561
await vi.advanceTimersByTimeAsync(11)
56-
57-
expectSignals(query, {
58-
data: {
59-
pageParams: [0, 12],
60-
pages: ['data on page 0', 'data on page 12'],
61-
},
62-
status: 'success',
63-
})
62+
rendered.fixture.detectChanges()
63+
expect(rendered.getByText('status: success')).toBeInTheDocument()
64+
expect(
65+
rendered.getByText('pages: data on page 0, data on page 12'),
66+
).toBeInTheDocument()
6467
})
6568

6669
describe('injection context', () => {

0 commit comments

Comments
 (0)