Skip to content

Commit aa60c07

Browse files
authored
fix(angular-query): fix injectInfiniteQuery to narrow type after isSuccess (#9016)
1 parent 3111e8a commit aa60c07

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { TestBed } from '@angular/core/testing'
2+
import { afterEach } from 'vitest'
3+
import { provideExperimentalZonelessChangeDetection } from '@angular/core'
4+
import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..'
5+
import { infiniteFetcher } from './test-utils'
6+
import type { InfiniteData } from '@tanstack/query-core'
7+
8+
describe('injectInfiniteQuery', () => {
9+
let queryClient: QueryClient
10+
11+
beforeEach(() => {
12+
queryClient = new QueryClient()
13+
vi.useFakeTimers()
14+
TestBed.configureTestingModule({
15+
providers: [
16+
provideExperimentalZonelessChangeDetection(),
17+
provideTanStackQuery(queryClient),
18+
],
19+
})
20+
})
21+
22+
afterEach(() => {
23+
vi.useRealTimers()
24+
})
25+
26+
test('should narrow type after isSuccess', async () => {
27+
const query = TestBed.runInInjectionContext(() => {
28+
return injectInfiniteQuery(() => ({
29+
queryKey: ['infiniteQuery'],
30+
queryFn: infiniteFetcher,
31+
initialPageParam: 0,
32+
getNextPageParam: () => 12,
33+
}))
34+
})
35+
36+
if (query.isSuccess()) {
37+
const data = query.data()
38+
expectTypeOf(data).toEqualTypeOf<InfiniteData<string, unknown>>()
39+
}
40+
})
41+
})

packages/angular-query-experimental/src/types.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,8 @@ export type DefinedCreateQueryResult<
145145
export type CreateInfiniteQueryResult<
146146
TData = unknown,
147147
TError = DefaultError,
148-
> = MapToSignals<InfiniteQueryObserverResult<TData, TError>>
148+
> = BaseQueryNarrowing<TData, TError> &
149+
MapToSignals<InfiniteQueryObserverResult<TData, TError>>
149150

150151
/**
151152
* @public

0 commit comments

Comments
 (0)