diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts index 45c1f6bc34..e3c3744d56 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts @@ -1,9 +1,13 @@ import { TestBed } from '@angular/core/testing' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { Injector, provideZonelessChangeDetection } from '@angular/core' +import { + Component, + Injector, + provideZonelessChangeDetection, +} from '@angular/core' +import { render } from '@testing-library/angular' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..' -import { expectSignals } from './test-utils' describe('injectInfiniteQuery', () => { let queryClient: QueryClient @@ -25,42 +29,41 @@ describe('injectInfiniteQuery', () => { it('should properly execute infinite query', async () => { const key = queryKey() - const query = TestBed.runInInjectionContext(() => { - return injectInfiniteQuery(() => ({ + + @Component({ + template: ` +
status: {{ query.status() }}
+
pages: {{ query.data()?.pages?.join(', ') ?? 'none' }}
+ `, + }) + class Page { + readonly query = injectInfiniteQuery(() => ({ queryKey: key, queryFn: ({ pageParam }) => sleep(10).then(() => 'data on page ' + pageParam), initialPageParam: 0, getNextPageParam: () => 12, })) - }) + } - expectSignals(query, { - data: undefined, - status: 'pending', - }) + const rendered = await render(Page) - await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('status: pending')).toBeInTheDocument() + expect(rendered.getByText('pages: none')).toBeInTheDocument() - expectSignals(query, { - data: { - pageParams: [0], - pages: ['data on page 0'], - }, - status: 'success', - }) + await vi.advanceTimersByTimeAsync(11) + rendered.fixture.detectChanges() + expect(rendered.getByText('status: success')).toBeInTheDocument() + expect(rendered.getByText('pages: data on page 0')).toBeInTheDocument() - void query.fetchNextPage() + rendered.fixture.componentInstance.query.fetchNextPage() await vi.advanceTimersByTimeAsync(11) - - expectSignals(query, { - data: { - pageParams: [0, 12], - pages: ['data on page 0', 'data on page 12'], - }, - status: 'success', - }) + rendered.fixture.detectChanges() + expect(rendered.getByText('status: success')).toBeInTheDocument() + expect( + rendered.getByText('pages: data on page 0, data on page 12'), + ).toBeInTheDocument() }) describe('injection context', () => {