@@ -68,6 +68,7 @@ import { CodeWhispererSettings } from '../../../codewhisperer/util/codewhisperer
6868import { confirm } from '../../../shared'
6969import * as commentUtils from '../../../shared/utilities/commentUtils'
7070import * as startCodeFixGeneration from '../../../codewhisperer/commands/startCodeFixGeneration'
71+ import { AmazonQState } from '../../../amazonq/util/amazonQState'
7172
7273describe ( 'CodeWhisperer-basicCommands' , function ( ) {
7374 let targetCommand : Command < any > & vscode . Disposable
@@ -520,6 +521,83 @@ describe('CodeWhisperer-basicCommands', function () {
520521 } )
521522 await listCodeWhispererCommands . execute ( )
522523 } )
524+
525+ it ( 'excludes sign out when in SageMaker Unified Studio' , async function ( ) {
526+ sinon . stub ( AuthUtil . instance , 'isConnected' ) . returns ( true )
527+ sinon . stub ( AuthUtil . instance , 'isConnectionExpired' ) . returns ( false )
528+ sinon . stub ( AmazonQState . instance , 'isSageMakerUnifiedStudio' ) . get ( ( ) => true )
529+
530+ getTestWindow ( ) . onDidShowQuickPick ( ( e ) => {
531+ e . assertContainsItems (
532+ createAutoSuggestions ( true ) ,
533+ createOpenReferenceLog ( ) ,
534+ createGettingStarted ( ) ,
535+ switchToAmazonQNode ( ) ,
536+ ...genericItems ( ) ,
537+ createSettingsNode ( )
538+ )
539+ e . dispose ( )
540+ } )
541+
542+ await listCodeWhispererCommands . execute ( )
543+ } )
544+
545+ it ( 'includes sign out when authenticated and not in SageMaker Unified Studio' , async function ( ) {
546+ sinon . stub ( AuthUtil . instance , 'isConnected' ) . returns ( true )
547+ sinon . stub ( AuthUtil . instance , 'isConnectionExpired' ) . returns ( false )
548+ sinon . stub ( AmazonQState . instance , 'isSageMakerUnifiedStudio' ) . get ( ( ) => false )
549+ await CodeScansState . instance . setScansEnabled ( false )
550+
551+ getTestWindow ( ) . onDidShowQuickPick ( ( e ) => {
552+ e . assertContainsItems (
553+ createAutoSuggestions ( true ) ,
554+ createOpenReferenceLog ( ) ,
555+ createGettingStarted ( ) ,
556+ switchToAmazonQNode ( ) ,
557+ createAutoScans ( false ) ,
558+ ...genericItems ( ) ,
559+ createSettingsNode ( ) ,
560+ createSignout ( )
561+ )
562+ e . dispose ( )
563+ } )
564+
565+ await listCodeWhispererCommands . execute ( )
566+ } )
567+
568+ it ( 'excludes sign out when using vended credentials in SageMaker Unified Studio' , async function ( ) {
569+ sinon . stub ( AuthUtil . instance , 'isConnected' ) . returns ( true )
570+ sinon . stub ( AuthUtil . instance , 'isConnectionExpired' ) . returns ( false )
571+ sinon . stub ( AmazonQState . instance , 'isSageMakerUnifiedStudio' ) . get ( ( ) => true )
572+ sinon . stub ( AuthUtil . instance , 'isBuilderIdInUse' ) . returns ( true )
573+
574+ getTestWindow ( ) . onDidShowQuickPick ( ( e ) => {
575+ e . assertContainsItems (
576+ createAutoSuggestions ( true ) ,
577+ createOpenReferenceLog ( ) ,
578+ createGettingStarted ( ) ,
579+ switchToAmazonQNode ( ) ,
580+ ...genericItems ( ) ,
581+ createSettingsNode ( )
582+ )
583+ e . dispose ( )
584+ } )
585+
586+ await listCodeWhispererCommands . execute ( )
587+ } )
588+
589+ it ( 'shows expected items when connection is expired in SageMaker Unified Studio' , async function ( ) {
590+ sinon . stub ( AuthUtil . instance , 'isConnected' ) . returns ( true )
591+ sinon . stub ( AuthUtil . instance , 'isConnectionExpired' ) . returns ( true )
592+ sinon . stub ( AmazonQState . instance , 'isSageMakerUnifiedStudio' ) . get ( ( ) => true )
593+
594+ getTestWindow ( ) . onDidShowQuickPick ( ( e ) => {
595+ e . assertContainsItems ( createReconnect ( ) , createLearnMore ( ) , ...genericItems ( ) )
596+ e . dispose ( )
597+ } )
598+
599+ await listCodeWhispererCommands . execute ( )
600+ } )
523601 } )
524602
525603 describe ( 'applySecurityFix' , function ( ) {
0 commit comments