@@ -26,6 +26,7 @@ import {
2626import * as request from '../requests/request' ;
2727import {
2828 generateContent ,
29+ generateContentStream ,
2930 templateGenerateContent ,
3031 templateGenerateContentStream
3132} from './generate-content' ;
@@ -35,6 +36,7 @@ import {
3536 HarmBlockMethod ,
3637 HarmBlockThreshold ,
3738 HarmCategory ,
39+ InferenceSource ,
3840 Language ,
3941 Outcome
4042} from '../types' ;
@@ -548,8 +550,7 @@ describe('generateContent()', () => {
548550 ) ;
549551 } ) ;
550552 } ) ;
551- // TODO: define a similar test for generateContentStream
552- it ( 'on-device' , async ( ) => {
553+ it ( 'generateContent on-device' , async ( ) => {
553554 const chromeAdapter = fakeChromeAdapter ;
554555 const isAvailableStub = stub ( chromeAdapter , 'isAvailable' ) . resolves ( true ) ;
555556 const mockResponse = getMockResponse (
@@ -566,9 +567,35 @@ describe('generateContent()', () => {
566567 chromeAdapter
567568 ) ;
568569 expect ( result . response . text ( ) ) . to . include ( 'Mountain View, California' ) ;
570+ expect ( result . response . inferenceSource ) . to . equal ( InferenceSource . ON_DEVICE ) ;
569571 expect ( isAvailableStub ) . to . be . called ;
570572 expect ( generateContentStub ) . to . be . calledWith ( fakeRequestParams ) ;
571573 } ) ;
574+ it ( 'generateContentStream on-device' , async ( ) => {
575+ const chromeAdapter = fakeChromeAdapter ;
576+ const isAvailableStub = stub ( chromeAdapter , 'isAvailable' ) . resolves ( true ) ;
577+ const mockResponse = getMockResponseStreaming (
578+ 'vertexAI' ,
579+ 'streaming-success-basic-reply-short.txt'
580+ ) ;
581+ const generateContentStreamStub = stub (
582+ chromeAdapter ,
583+ 'generateContentStream'
584+ ) . resolves ( mockResponse as Response ) ;
585+ const result = await generateContentStream (
586+ fakeApiSettings ,
587+ 'model' ,
588+ fakeRequestParams ,
589+ chromeAdapter
590+ ) ;
591+ const aggregatedResponse = await result . response ;
592+ expect ( aggregatedResponse . text ( ) ) . to . include ( 'Cheyenne' ) ;
593+ expect ( aggregatedResponse . inferenceSource ) . to . equal (
594+ InferenceSource . ON_DEVICE
595+ ) ;
596+ expect ( isAvailableStub ) . to . be . called ;
597+ expect ( generateContentStreamStub ) . to . be . calledWith ( fakeRequestParams ) ;
598+ } ) ;
572599} ) ;
573600
574601describe ( 'templateGenerateContent' , ( ) => {
0 commit comments