From 05228cafe3d00ac4a7ea75bd35f6e5519d0e0586 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 22 Apr 2026 14:32:48 +0900 Subject: [PATCH] test(angular-query-experimental/injectIsFetching): switch main test to '@Component' + 'render' pattern --- .../src/__tests__/inject-is-fetching.test.ts | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts index f1d2861ab1..ad29c381bb 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts @@ -1,6 +1,11 @@ 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, @@ -30,19 +35,29 @@ describe('injectIsFetching', () => { it('should return the number of fetching queries', async () => { const key = queryKey() - const isFetching = TestBed.runInInjectionContext(() => { - injectQuery(() => ({ + + @Component({ + template: `
fetching: {{ isFetching() }}
`, + }) + class Page { + readonly query = injectQuery(() => ({ queryKey: key, queryFn: () => sleep(100).then(() => 'Some data'), })) - return injectIsFetching() - }) + readonly isFetching = injectIsFetching() + } + + const rendered = await render(Page) + + expect(rendered.getByText('fetching: 0')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(0) + rendered.fixture.detectChanges() + expect(rendered.getByText('fetching: 1')).toBeInTheDocument() - expect(isFetching()).toStrictEqual(0) - await vi.advanceTimersByTimeAsync(1) - expect(isFetching()).toStrictEqual(1) - await vi.advanceTimersByTimeAsync(100) - expect(isFetching()).toStrictEqual(0) + await vi.advanceTimersByTimeAsync(101) + rendered.fixture.detectChanges() + expect(rendered.getByText('fetching: 0')).toBeInTheDocument() }) describe('injection context', () => {