@@ -38,8 +38,6 @@ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
3838import  software.aws.toolkits.jetbrains.core.credentials.sono.Q_SCOPES 
3939import  software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLanguageServer 
4040import  software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLspService 
41- import  software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.LspServerConfigurations 
42- import  software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.WorkspaceInfo 
4341import  software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocument.InlineCompletionListWithReferences 
4442import  software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfileManager 
4543import  software.aws.toolkits.jetbrains.services.codewhisperer.CodeWhispererTestUtil.codeWhispererRecommendationActionId 
@@ -48,6 +46,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.CodeWhispererTestU
4846import  software.aws.toolkits.jetbrains.services.codewhisperer.CodeWhispererTestUtil.pythonTestLeftContext 
4947import  software.aws.toolkits.jetbrains.services.codewhisperer.CodeWhispererTestUtil.testValidAccessToken 
5048import  software.aws.toolkits.jetbrains.services.codewhisperer.actions.CodeWhispererRecommendationAction 
49+ import  software.aws.toolkits.jetbrains.services.codewhisperer.codescan.CodeWhispererCodeScanManager 
5150import  software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor 
5251import  software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererLoginType 
5352import  software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhispererEditorManager 
@@ -95,6 +94,7 @@ open class CodeWhispererTestBase {
9594    private  lateinit  var  originalExplorerActionState:  CodeWhispererExploreActionState 
9695    private  lateinit  var  originalSettings:  CodeWhispererConfiguration 
9796    private  lateinit  var  qRegionProfileManagerSpy:  QRegionProfileManager 
97+     private  lateinit  var  codeScanManager:  CodeWhispererCodeScanManager 
9898
9999    @Before
100100    open  fun  setUp () {
@@ -106,13 +106,6 @@ open class CodeWhispererTestBase {
106106        mockLspInlineCompletionResponse(pythonResponse)
107107
108108        mockClientManagerRule.create<SsoOidcClient >()
109-         every { mockLanguageServer.getConfigurationFromServer(any()) } returns CompletableFuture .completedFuture(
110-             LspServerConfigurations (
111-                 listOf (
112-                     WorkspaceInfo (projectRule.project.basePath.orEmpty(), " workspaceId" 
113-                 )
114-             )
115-         )
116109        every { mockLanguageServer.logInlineCompletionSessionResults(any()) } returns CompletableFuture .completedFuture(Unit )
117110
118111        popupManagerSpy =  spy(CodeWhispererPopupManager .getInstance())
@@ -129,7 +122,15 @@ open class CodeWhispererTestBase {
129122
130123        stateManager =  spy(CodeWhispererExplorerActionManager .getInstance())
131124        recommendationManager =  CodeWhispererRecommendationManager .getInstance()
132-         codewhispererService =  CodeWhispererService .getInstance()
125+         codewhispererService =  spy(CodeWhispererService .getInstance())
126+         codewhispererService.stub {
127+             onGeneric {
128+                 getRequestContext(any(), any(), any(), any(), any())
129+             } doAnswer {
130+                 aRequestContext(projectRule.project)
131+             }
132+         }
133+         ApplicationManager .getApplication().replaceService(CodeWhispererService ::class .java, codewhispererService, disposableRule.disposable)
133134        editorManager =  CodeWhispererEditorManager .getInstance()
134135        settingsManager =  CodeWhispererSettings .getInstance()
135136
@@ -163,6 +164,11 @@ open class CodeWhispererTestBase {
163164        ApplicationManager .getApplication().replaceService(CodeWhispererExplorerActionManager ::class .java, stateManager, disposableRule.disposable)
164165        stateManager.setAutoEnabled(false )
165166
167+         codeScanManager =  spy(CodeWhispererCodeScanManager .getInstance(projectRule.project))
168+         doNothing().`when `(codeScanManager).buildCodeScanUI()
169+         doNothing().`when `(codeScanManager).removeCodeScanUI()
170+         projectRule.project.replaceService(CodeWhispererCodeScanManager ::class .java, codeScanManager, disposableRule.disposable)
171+ 
166172        val  conn =  authManagerRule.createConnection(ManagedSsoProfile (" us-east-1" " url" Q_SCOPES ))
167173        ToolkitConnectionManager .getInstance(projectRule.project).switchConnection(conn)
168174
@@ -190,7 +196,7 @@ open class CodeWhispererTestBase {
190196    fun  withCodeWhispererServiceInvokedAndWait (runnable :  (InvocationContext ) ->  Unit ) {
191197        val  statesCaptor =  argumentCaptor<InvocationContext >()
192198        invokeCodeWhispererService()
193-         verify(popupManagerSpy, timeout(500000 ).atLeastOnce())
199+         verify(popupManagerSpy, timeout(5000 ).atLeastOnce())
194200            .showPopup(statesCaptor.capture(), any(), any(), any())
195201        val  states =  statesCaptor.lastValue
196202
@@ -254,13 +260,12 @@ open class CodeWhispererTestBase {
254260    }
255261
256262    fun  addUserInputAfterInvocation (userInput :  String ) {
257-         val  codewhispererServiceSpy =  spy(codewhispererService)
258263        val  triggerTypeCaptor =  argumentCaptor<TriggerTypeInfo >()
259264        val  editorCaptor =  argumentCaptor<Editor >()
260265        val  projectCaptor =  argumentCaptor<Project >()
261266        val  psiFileCaptor =  argumentCaptor<PsiFile >()
262267        val  latencyContextCaptor =  argumentCaptor<LatencyContext >()
263-         codewhispererServiceSpy .stub {
268+         codewhispererService .stub {
264269            onGeneric {
265270                getRequestContext(
266271                    triggerTypeCaptor.capture(),
@@ -270,7 +275,7 @@ open class CodeWhispererTestBase {
270275                    latencyContextCaptor.capture()
271276                )
272277            }.doAnswer {
273-                 val  requestContext =  codewhispererServiceSpy .getRequestContext(
278+                 val  requestContext =  codewhispererService .getRequestContext(
274279                    triggerTypeCaptor.firstValue,
275280                    editorCaptor.firstValue,
276281                    projectCaptor.firstValue,
@@ -281,7 +286,6 @@ open class CodeWhispererTestBase {
281286                requestContext
282287            }.thenCallRealMethod()
283288        }
284-         ApplicationManager .getApplication().replaceService(CodeWhispererService ::class .java, codewhispererServiceSpy, disposableRule.disposable)
285289    }
286290
287291    fun  mockLspInlineCompletionResponse (response :  InlineCompletionListWithReferences ) {
0 commit comments