File tree Expand file tree Collapse file tree
packages/angular-query-experimental/src/__tests__ Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -136,6 +136,50 @@ describe('injectQueries', () => {
136136 expect ( results . length ) . toBeGreaterThanOrEqual ( 2 )
137137 } )
138138
139+ it ( 'should reflect error state when one of the queries rejects' , async ( ) => {
140+ const key1 = queryKey ( )
141+ const key2 = queryKey ( )
142+
143+ @Component ( {
144+ template : `
145+ <div>
146+ status1: {{ result()[0].status() }}, error1:
147+ {{ result()[0].error()?.message ?? 'none' }}
148+ </div>
149+ <div>
150+ status2: {{ result()[1].status() }}, data2:
151+ {{ result()[1].data() ?? 'none' }}
152+ </div>
153+ ` ,
154+ } )
155+ class Page {
156+ readonly result = injectQueries ( ( ) => ( {
157+ queries : [
158+ {
159+ queryKey : key1 ,
160+ queryFn : ( ) =>
161+ sleep ( 10 ) . then ( ( ) => Promise . reject ( new Error ( 'Some error' ) ) ) ,
162+ retry : false ,
163+ } ,
164+ {
165+ queryKey : key2 ,
166+ queryFn : ( ) => sleep ( 10 ) . then ( ( ) => 2 ) ,
167+ } ,
168+ ] ,
169+ } ) )
170+ }
171+
172+ const rendered = await render ( Page )
173+
174+ await vi . advanceTimersByTimeAsync ( 11 )
175+ rendered . fixture . detectChanges ( )
176+
177+ expect (
178+ rendered . getByText ( 'status1: error, error1: Some error' ) ,
179+ ) . toBeInTheDocument ( )
180+ expect ( rendered . getByText ( 'status2: success, data2: 2' ) ) . toBeInTheDocument ( )
181+ } )
182+
139183 describe ( 'isRestoring' , ( ) => {
140184 it ( 'should not fetch for the duration of the restoring period when isRestoring is true' , async ( ) => {
141185 const key1 = queryKey ( )
You can’t perform that action at this time.
0 commit comments