@@ -61,19 +61,8 @@ describe('ChromeAdapter', () => {
6161 } )
6262 ) . to . be . false ;
6363 } ) ;
64- it ( 'returns false if AI API is undefined' , async ( ) => {
65- const adapter = new ChromeAdapter ( undefined , 'prefer_on_device' ) ;
66- expect (
67- await adapter . isAvailable ( {
68- contents : [ ]
69- } )
70- ) . to . be . false ;
71- } ) ;
7264 it ( 'returns false if LanguageModel API is undefined' , async ( ) => {
73- const adapter = new ChromeAdapter (
74- { } as LanguageModel ,
75- 'prefer_on_device'
76- ) ;
65+ const adapter = new ChromeAdapter ( undefined , 'prefer_on_device' ) ;
7766 expect (
7867 await adapter . isAvailable ( {
7968 contents : [ ]
@@ -82,7 +71,9 @@ describe('ChromeAdapter', () => {
8271 } ) ;
8372 it ( 'returns false if request contents empty' , async ( ) => {
8473 const adapter = new ChromeAdapter (
85- { } as LanguageModel ,
74+ {
75+ availability : async ( ) => Availability . available
76+ } as LanguageModel ,
8677 'prefer_on_device'
8778 ) ;
8879 expect (
@@ -93,7 +84,9 @@ describe('ChromeAdapter', () => {
9384 } ) ;
9485 it ( 'returns false if request content has function role' , async ( ) => {
9586 const adapter = new ChromeAdapter (
96- { } as LanguageModel ,
87+ {
88+ availability : async ( ) => Availability . available
89+ } as LanguageModel ,
9790 'prefer_on_device'
9891 ) ;
9992 expect (
@@ -107,51 +100,6 @@ describe('ChromeAdapter', () => {
107100 } )
108101 ) . to . be . false ;
109102 } ) ;
110- it ( 'returns false if request system instruction has function role' , async ( ) => {
111- const adapter = new ChromeAdapter (
112- { } as LanguageModel ,
113- 'prefer_on_device'
114- ) ;
115- expect (
116- await adapter . isAvailable ( {
117- contents : [ ] ,
118- systemInstruction : {
119- role : 'function' ,
120- parts : [ ]
121- }
122- } )
123- ) . to . be . false ;
124- } ) ;
125- it ( 'returns false if request system instruction has multiple parts' , async ( ) => {
126- const adapter = new ChromeAdapter (
127- { } as LanguageModel ,
128- 'prefer_on_device'
129- ) ;
130- expect (
131- await adapter . isAvailable ( {
132- contents : [ ] ,
133- systemInstruction : {
134- role : 'function' ,
135- parts : [ { text : 'a' } , { text : 'b' } ]
136- }
137- } )
138- ) . to . be . false ;
139- } ) ;
140- it ( 'returns false if request system instruction has non-text part' , async ( ) => {
141- const adapter = new ChromeAdapter (
142- { } as LanguageModel ,
143- 'prefer_on_device'
144- ) ;
145- expect (
146- await adapter . isAvailable ( {
147- contents : [ ] ,
148- systemInstruction : {
149- role : 'function' ,
150- parts : [ { inlineData : { mimeType : 'a' , data : 'b' } } ]
151- }
152- } )
153- ) . to . be . false ;
154- } ) ;
155103 it ( 'returns true if model is readily available' , async ( ) => {
156104 const languageModelProvider = {
157105 availability : ( ) => Promise . resolve ( Availability . available )
@@ -246,7 +194,20 @@ describe('ChromeAdapter', () => {
246194 ) . to . be . false ;
247195 } ) ;
248196 } ) ;
249- describe ( 'generateContentOnDevice' , ( ) => {
197+ describe ( 'generateContent' , ( ) => {
198+ it ( 'throws if Chrome API is undefined' , async ( ) => {
199+ const adapter = new ChromeAdapter ( undefined , 'only_on_device' ) ;
200+ await expect (
201+ adapter . generateContent ( {
202+ contents : [ ]
203+ } )
204+ )
205+ . to . eventually . be . rejectedWith (
206+ VertexAIError ,
207+ 'Chrome AI requested for unsupported browser version.'
208+ )
209+ . and . have . property ( 'code' , VertexAIErrorCode . REQUEST_ERROR ) ;
210+ } ) ;
250211 it ( 'generates content' , async ( ) => {
251212 const languageModelProvider = {
252213 create : ( ) => Promise . resolve ( { } )
0 commit comments