@@ -141,50 +141,53 @@ describe('AgentService', () => {
141141 } ) ;
142142 } ) ;
143143
144- it ( 'should emit LlmResponses received from fetch' , ( done ) => {
145- const fakeResponse1 = createFakeLlmResponse ( ) ;
146- const fakeResponse2 = createFakeLlmResponse ( {
147- content : { role : 'model' , parts : [ { text : 'fake response 2' } ] } ,
148- } ) ;
149- const mockBody = new ReadableStream ( {
150- start ( controller ) {
151- const encoder = new TextEncoder ( ) ;
152- controller . enqueue (
153- encoder . encode ( `data: ${ JSON . stringify ( fakeResponse1 ) } \n` ) ,
154- ) ;
155- controller . enqueue (
156- encoder . encode ( `data: ${ JSON . stringify ( fakeResponse2 ) } \n` ) ,
157- ) ;
158- controller . close ( ) ;
159- } ,
160- } ) ;
161- spyOn ( window , 'fetch' ) . and . resolveTo ( new Response ( mockBody ) ) ;
162- const results : LlmResponse [ ] = [ ] ;
163- service . runSse ( RUN_SSE_PAYLOAD ) . subscribe ( {
164- next : ( data ) => {
165- results . push ( data ) ;
166- } ,
167- complete : ( ) => {
168- expect ( results ) . toEqual ( [ fakeResponse1 , fakeResponse2 ] ) ;
169- done ( ) ;
170- } ,
171- } ) ;
172- } ) ;
144+ it (
145+ 'should emit LlmResponses received from fetch' , ( done ) => {
146+ const fakeResponse1 = createFakeLlmResponse ( ) ;
147+ const fakeResponse2 = createFakeLlmResponse ( {
148+ content : { role : 'model' , parts : [ { text : 'fake response 2' } ] } ,
149+ } ) ;
150+ const mockBody = new ReadableStream ( {
151+ start ( controller ) {
152+ const encoder = new TextEncoder ( ) ;
153+ controller . enqueue (
154+ encoder . encode ( `data: ${ JSON . stringify ( fakeResponse1 ) } \n` ) ,
155+ ) ;
156+ controller . enqueue (
157+ encoder . encode ( `data: ${ JSON . stringify ( fakeResponse2 ) } \n` ) ,
158+ ) ;
159+ controller . close ( ) ;
160+ } ,
161+ } ) ;
162+ spyOn ( window , 'fetch' ) . and . resolveTo ( new Response ( mockBody ) ) ;
163+ const results : LlmResponse [ ] = [ ] ;
164+ service . runSse ( RUN_SSE_PAYLOAD ) . subscribe ( {
165+ next : ( data ) => {
166+ results . push ( data ) ;
167+ } ,
168+ complete : ( ) => {
169+ expect ( results ) . toEqual ( [ fakeResponse1 , fakeResponse2 ] ) ;
170+ done ( ) ;
171+ } ,
172+ } ) ;
173+ } ) ;
174+
175+ it (
176+ 'should set loading state to false when fetch is done' , ( done ) => {
177+ const mockBody = new ReadableStream ( {
178+ start ( controller ) {
179+ controller . close ( ) ;
180+ } ,
181+ } ) ;
182+ spyOn ( window , 'fetch' ) . and . resolveTo ( new Response ( mockBody ) ) ;
183+ service . runSse ( RUN_SSE_PAYLOAD ) . subscribe ( {
184+ complete : ( ) => {
185+ expect ( service . getLoadingState ( ) . value ) . toBeFalse ( ) ;
186+ done ( ) ;
187+ } ,
188+ } ) ;
189+ } ) ;
173190
174- it ( 'should set loading state to false when fetch is done' , ( done ) => {
175- const mockBody = new ReadableStream ( {
176- start ( controller ) {
177- controller . close ( ) ;
178- } ,
179- } ) ;
180- spyOn ( window , 'fetch' ) . and . resolveTo ( new Response ( mockBody ) ) ;
181- service . runSse ( RUN_SSE_PAYLOAD ) . subscribe ( {
182- complete : ( ) => {
183- expect ( service . getLoadingState ( ) . value ) . toBeFalse ( ) ;
184- done ( ) ;
185- } ,
186- } ) ;
187- } ) ;
188191
189192 it ( 'should emit error if fetch fails' , ( done ) => {
190193 spyOn ( window , 'fetch' ) . and . rejectWith ( new Error ( 'Fetch failed' ) ) ;
@@ -196,32 +199,35 @@ describe('AgentService', () => {
196199 } ) ;
197200 } ) ;
198201
199- it ( 'should handle incomplete JSON chunks' , ( done ) => {
200- const fakeResponse = createFakeLlmResponse ( ) ;
201- const fakeResponseJson = JSON . stringify ( fakeResponse ) ;
202- const mid = Math . floor ( fakeResponseJson . length / 2 ) ;
203- const chunk1 = fakeResponseJson . substring ( 0 , mid ) ;
204- const chunk2 = fakeResponseJson . substring ( mid ) ;
205-
206- const mockBody = new ReadableStream ( {
207- start ( controller ) {
208- const encoder = new TextEncoder ( ) ;
209- controller . enqueue ( encoder . encode ( `data: ${ chunk1 } ` ) ) ;
210- controller . enqueue ( encoder . encode ( `${ chunk2 } \n` ) ) ;
211- controller . close ( ) ;
212- } ,
213- } ) ;
214- spyOn ( window , 'fetch' ) . and . resolveTo ( new Response ( mockBody ) ) ;
215- const results : LlmResponse [ ] = [ ] ;
216- service . runSse ( RUN_SSE_PAYLOAD ) . subscribe ( {
217- next : ( data ) => {
218- results . push ( data ) ;
219- } ,
220- complete : ( ) => {
221- expect ( results ) . toEqual ( [ fakeResponse ] ) ;
222- done ( ) ;
223- } ,
224- } ) ;
225- } ) ;
202+ // BEGIN-EXTERNAL
203+ // it('should handle incomplete JSON chunks', (done) => {
204+ // const fakeResponse = createFakeLlmResponse();
205+ // const fakeResponseJson = JSON.stringify(fakeResponse);
206+ // const mid = Math.floor(fakeResponseJson.length / 2);
207+ // const chunk1 = fakeResponseJson.substring(0, mid);
208+ // const chunk2 = fakeResponseJson.substring(mid);
209+
210+ // const mockBody = new ReadableStream({
211+ // start(controller) {
212+ // const encoder = new TextEncoder();
213+ // controller.enqueue(encoder.encode(`data: ${chunk1}`));
214+ // controller.enqueue(encoder.encode(`${chunk2}\n`));
215+ // controller.close();
216+ // },
217+ // });
218+ // spyOn(window, 'fetch').and.resolveTo(new Response(mockBody));
219+ // const results: LlmResponse[] = [];
220+ // service.runSse(RUN_SSE_PAYLOAD).subscribe({
221+ // next: (data) => {
222+ // results.push(data);
223+ // },
224+ // complete: () => {
225+ // expect(results).toEqual([fakeResponse]);
226+ // done();
227+ // },
228+ // });
229+ // });
230+ // END-EXTERNAL
231+
226232 } ) ;
227233} ) ;
0 commit comments