|
1 | 1 | import { TestBed } from '@angular/core/testing'
|
2 | 2 | import { afterEach } from 'vitest'
|
| 3 | +import { Injector } from '@angular/core' |
3 | 4 | import { QueryClient, injectInfiniteQuery, provideAngularQuery } from '..'
|
4 | 5 | import { expectSignals, infiniteFetcher } from './test-utils'
|
5 | 6 |
|
@@ -59,4 +60,31 @@ describe('injectInfiniteQuery', () => {
|
59 | 60 | status: 'success',
|
60 | 61 | })
|
61 | 62 | })
|
| 63 | + |
| 64 | + describe('injection context', () => { |
| 65 | + test('throws NG0203 with descriptive error outside injection context', () => { |
| 66 | + expect(() => { |
| 67 | + injectInfiniteQuery(() => ({ |
| 68 | + queryKey: ['injectionContextError'], |
| 69 | + queryFn: infiniteFetcher, |
| 70 | + initialPageParam: 0, |
| 71 | + getNextPageParam: () => 12, |
| 72 | + })) |
| 73 | + }).toThrowError(/NG0203(.*?)injectInfiniteQuery/) |
| 74 | + }) |
| 75 | + |
| 76 | + test('can be used outside injection context when passing an injector', () => { |
| 77 | + const query = injectInfiniteQuery( |
| 78 | + () => ({ |
| 79 | + queryKey: ['manualInjector'], |
| 80 | + queryFn: infiniteFetcher, |
| 81 | + initialPageParam: 0, |
| 82 | + getNextPageParam: () => 12, |
| 83 | + }), |
| 84 | + TestBed.inject(Injector), |
| 85 | + ) |
| 86 | + |
| 87 | + expect(query.status()).toBe('pending') |
| 88 | + }) |
| 89 | + }) |
62 | 90 | })
|
0 commit comments