@@ -357,15 +357,54 @@ describe('NativeCredentialsManager', () => {
357357 ) . rejects . toThrow ( CredentialsManagerError ) ;
358358 } ) ;
359359
360- it ( 'should clear credentials on success ' , async ( ) => {
360+ it ( 'should clear credentials for audience without scope ' , async ( ) => {
361361 mockBridge . clearApiCredentials . mockResolvedValue ( undefined ) ;
362362
363363 await expect (
364364 manager . clearApiCredentials ( 'https://api.example.com' )
365365 ) . resolves . toBeUndefined ( ) ;
366366
367367 expect ( mockBridge . clearApiCredentials ) . toHaveBeenCalledWith (
368- 'https://api.example.com'
368+ 'https://api.example.com' ,
369+ undefined
370+ ) ;
371+ } ) ;
372+
373+ it ( 'should clear credentials for audience with scope' , async ( ) => {
374+ mockBridge . clearApiCredentials . mockResolvedValue ( undefined ) ;
375+
376+ await expect (
377+ manager . clearApiCredentials (
378+ 'https://api.example.com' ,
379+ 'read:data write:data'
380+ )
381+ ) . resolves . toBeUndefined ( ) ;
382+
383+ expect ( mockBridge . clearApiCredentials ) . toHaveBeenCalledWith (
384+ 'https://api.example.com' ,
385+ 'read:data write:data'
386+ ) ;
387+ } ) ;
388+
389+ it ( 'should handle multiple different audiences' , async ( ) => {
390+ mockBridge . clearApiCredentials . mockResolvedValue ( undefined ) ;
391+
392+ await manager . clearApiCredentials ( 'https://api1.example.com' ) ;
393+ await manager . clearApiCredentials (
394+ 'https://api2.example.com' ,
395+ 'admin:write'
396+ ) ;
397+
398+ expect ( mockBridge . clearApiCredentials ) . toHaveBeenCalledTimes ( 2 ) ;
399+ expect ( mockBridge . clearApiCredentials ) . toHaveBeenNthCalledWith (
400+ 1 ,
401+ 'https://api1.example.com' ,
402+ undefined
403+ ) ;
404+ expect ( mockBridge . clearApiCredentials ) . toHaveBeenNthCalledWith (
405+ 2 ,
406+ 'https://api2.example.com' ,
407+ 'admin:write'
369408 ) ;
370409 } ) ;
371410 } ) ;
0 commit comments