From 59f69cb03e25811cb90a7ab72b6857f42907acf2 Mon Sep 17 00:00:00 2001 From: Yoomin Kang Date: Mon, 14 Apr 2025 23:38:09 +0900 Subject: [PATCH] fix(angular-query): fix injectInfiniteQuery to narrow type after isSuccess --- .../__tests__/inject-infinite-query.test-d.ts | 41 +++++++++++++++++++ .../angular-query-experimental/src/types.ts | 3 +- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts new file mode 100644 index 0000000000..4d4e28e6a8 --- /dev/null +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts @@ -0,0 +1,41 @@ +import { TestBed } from '@angular/core/testing' +import { afterEach } from 'vitest' +import { provideExperimentalZonelessChangeDetection } from '@angular/core' +import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..' +import { infiniteFetcher } from './test-utils' +import type { InfiniteData } from '@tanstack/query-core' + +describe('injectInfiniteQuery', () => { + let queryClient: QueryClient + + beforeEach(() => { + queryClient = new QueryClient() + vi.useFakeTimers() + TestBed.configureTestingModule({ + providers: [ + provideExperimentalZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) + }) + + afterEach(() => { + vi.useRealTimers() + }) + + test('should narrow type after isSuccess', async () => { + const query = TestBed.runInInjectionContext(() => { + return injectInfiniteQuery(() => ({ + queryKey: ['infiniteQuery'], + queryFn: infiniteFetcher, + initialPageParam: 0, + getNextPageParam: () => 12, + })) + }) + + if (query.isSuccess()) { + const data = query.data() + expectTypeOf(data).toEqualTypeOf>() + } + }) +}) diff --git a/packages/angular-query-experimental/src/types.ts b/packages/angular-query-experimental/src/types.ts index 5c0e096457..aed94e5afe 100644 --- a/packages/angular-query-experimental/src/types.ts +++ b/packages/angular-query-experimental/src/types.ts @@ -145,7 +145,8 @@ export type DefinedCreateQueryResult< export type CreateInfiniteQueryResult< TData = unknown, TError = DefaultError, -> = MapToSignals> +> = BaseQueryNarrowing & + MapToSignals> /** * @public