Skip to content

Commit 47bcef1

Browse files
committed
fix gen unit tests
1 parent 0c844c1 commit 47bcef1

File tree

7 files changed

+21
-76
lines changed

7 files changed

+21
-76
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/apps/AmazonQAppInitContext.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package software.aws.toolkits.jetbrains.services.amazonq.apps
55

66
import com.intellij.openapi.project.Project
77
import software.aws.toolkits.jetbrains.services.amazonq.commands.MessageTypeRegistry
8-
import software.aws.toolkits.jetbrains.services.amazonq.messages.MessageConnector
98
import software.aws.toolkits.jetbrains.services.amazonq.messages.MessageListener
109
import software.aws.toolkits.jetbrains.services.amazonq.messages.MessagePublisher
1110
import software.aws.toolkits.jetbrains.services.amazonq.webview.FqnWebviewAdapter
@@ -20,7 +19,3 @@ data class AmazonQAppInitContext(
2019
val messageTypeRegistry: MessageTypeRegistry,
2120
val fqnWebviewAdapter: FqnWebviewAdapter,
2221
)
23-
24-
25-
26-

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -206,17 +206,6 @@ class AmazonQPanel(val project: Project, private val scope: CoroutineScope) : Di
206206
}
207207
}
208208

209-
fun getDefaultAppInitContext() : AmazonQAppInitContext {
210-
211-
return AmazonQAppInitContext(
212-
project = project,
213-
messagesFromAppToUi = MessageConnector(),
214-
messagesFromUiToApp = MessageConnector(),
215-
messageTypeRegistry = MessageTypeRegistry(),
216-
fqnWebviewAdapter = FqnWebviewAdapter(jcefBrowser = browser.get().jcefBrowser, browserConnector),
217-
)
218-
}
219-
220209
override fun dispose() {
221210
}
222211
}

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindow.kt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,9 @@ import com.intellij.openapi.project.Project
1111
import com.intellij.openapi.util.Disposer
1212
import com.intellij.openapi.wm.ToolWindowManager
1313
import kotlinx.coroutines.CoroutineScope
14-
import kotlinx.coroutines.runBlocking
1514
import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteraction
1615
import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteractionType
1716
import software.aws.toolkits.jetbrains.services.amazonqCodeScan.runCodeScanMessage
18-
import software.aws.toolkits.jetbrains.services.cwc.controller.TestCommandMessage
1917

2018
@Service(Service.Level.PROJECT)
2119
class AmazonQToolWindow private constructor(
@@ -54,14 +52,6 @@ class AmazonQToolWindow private constructor(
5452
val window = getInstance(project)
5553
window.chatPanel.sendMessageAppToUi(runCodeScanMessage, tabType = "codescan")
5654
}
57-
58-
fun sendTestMessage(project: Project) {
59-
runBlocking {
60-
val a = getInstance(project).chatPanel.getDefaultAppInitContext()
61-
val b = a.messagesFromAppToUi.publish(TestCommandMessage())
62-
}
63-
64-
}
6555
}
6656

6757
override fun dispose() {

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqCodeTest/controller/CodeTestChatController.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitConte
5656
import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthController
5757
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocument.InlineCompletionReference
5858
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocument.InlineCompletionReferencePosition
59+
import software.aws.toolkits.jetbrains.services.amazonq.messages.AmazonQMessage
5960
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfileManager
6061
import software.aws.toolkits.jetbrains.services.amazonq.project.RelevantDocument
6162
import software.aws.toolkits.jetbrains.services.amazonqCodeTest.CodeWhispererUTGChatManager
@@ -110,6 +111,12 @@ import java.util.UUID
110111
import software.amazon.awssdk.services.codewhispererstreaming.model.Position as StreamingPosition
111112
import software.amazon.awssdk.services.codewhispererstreaming.model.Range as StreamingRange
112113

114+
data class TestCommandMessage(
115+
val sender: String = "codetest",
116+
val command: String = "test",
117+
val type: String = "addAnswer",
118+
) : AmazonQMessage
119+
113120
class CodeTestChatController(
114121
private val context: AmazonQAppInitContext,
115122
private val chatSessionStorage: ChatSessionStorage,
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,33 @@
11
// Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
3-
3+
@file:Suppress("BannedImports")
44
package software.aws.toolkits.jetbrains.services.cwc.commands
55

6+
import com.google.gson.Gson
67
import com.intellij.openapi.application.ApplicationManager
78
import com.intellij.openapi.project.Project
89
import kotlinx.coroutines.flow.MutableSharedFlow
910
import kotlinx.coroutines.flow.asSharedFlow
1011
import kotlinx.coroutines.runBlocking
11-
12-
import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext
13-
import software.aws.toolkits.jetbrains.services.amazonq.commands.MessageTypeRegistry
14-
import software.aws.toolkits.jetbrains.services.amazonq.messages.MessageConnector
15-
import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindow
16-
import software.aws.toolkits.jetbrains.services.amazonq.webview.FqnWebviewAdapter
17-
import software.aws.toolkits.jetbrains.services.cwc.controller.TestCommandMessage
18-
1912
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.AsyncChatUiListener
2013
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.FlareUiMessage
2114
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GenericCommandParams
2215
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SendToPromptParams
2316
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TriggerType
2417
import software.aws.toolkits.jetbrains.services.amazonq.messages.AmazonQMessage
18+
import software.aws.toolkits.jetbrains.services.amazonqCodeTest.controller.TestCommandMessage
2519
import software.aws.toolkits.jetbrains.services.cwc.editor.context.ActiveFileContextExtractor
2620
import software.aws.toolkits.jetbrains.services.cwc.editor.context.ExtractionTriggerType
2721

28-
2922
// Register Editor Actions in the Editor Context Menu
3023
class ActionRegistrar {
3124

3225
private val _messages by lazy { MutableSharedFlow<AmazonQMessage>(extraBufferCapacity = 10) }
3326
val flow = _messages.asSharedFlow()
3427

3528
fun reportMessageClick(command: EditorContextCommand, project: Project) {
36-
37-
// language=JSON
38-
// AmazonQToolWindow.sendTestMessage(project)
39-
//AsyncChatUiListener.notifyPartialMessageUpdate(a)
40-
// _messages.tryEmit(ContextMenuActionMessage(command, project))
41-
// runBlocking {
42-
// MessageConnector().publish(messageToPublish)
43-
// }
44-
45-
4629
if (command == EditorContextCommand.GenerateUnitTests) {
47-
// pre-existing old chat code path
48-
_messages.tryEmit(ContextMenuActionMessage(command, project))
30+
AsyncChatUiListener.notifyPartialMessageUpdate(Gson().toJson(TestCommandMessage()))
4931
} else {
5032
// new agentic chat route
5133
ApplicationManager.getApplication().executeOnPooledThread {
@@ -65,7 +47,6 @@ class ActionRegistrar {
6547
}
6648
}
6749
}
68-
6950
}
7051

7152
fun reportMessageClick(command: EditorContextCommand, issue: MutableMap<String, String>, project: Project) {
@@ -77,10 +58,3 @@ class ActionRegistrar {
7758
val instance = ActionRegistrar()
7859
}
7960
}
80-
//fun getContext(project: Project) = AmazonQAppInitContext(
81-
// project,
82-
// MessageConnector(),
83-
// MessageConnector(),
84-
// MessageTypeRegistry(),
85-
// FqnWebviewAdapter(project)
86-
//)

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ import software.aws.toolkits.jetbrains.core.coroutines.EDT
3838
import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext
3939
import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthController
4040
import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthNeededState
41-
import software.aws.toolkits.jetbrains.services.amazonq.messages.AmazonQMessage
4241
import software.aws.toolkits.jetbrains.services.amazonq.messages.MessagePublisher
4342
import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteraction
4443
import software.aws.toolkits.jetbrains.services.amazonq.onboarding.OnboardingPageInteractionType
@@ -52,7 +51,6 @@ import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.TriggerTy
5251
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.v1.ChatSessionFactoryV1
5352
import software.aws.toolkits.jetbrains.services.cwc.commands.CodeScanIssueActionMessage
5453
import software.aws.toolkits.jetbrains.services.cwc.commands.ContextMenuActionMessage
55-
import software.aws.toolkits.jetbrains.services.cwc.commands.EditorContextCommand
5654
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.StaticPrompt
5755
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.StaticTextResponse
5856
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.messenger.ChatPromptHandler
@@ -76,12 +74,6 @@ import software.aws.toolkits.jetbrains.services.cwc.storage.ChatSessionStorage
7674
import software.aws.toolkits.telemetry.CwsprChatCommandType
7775
import java.util.UUID
7876

79-
data class TestCommandMessage(
80-
val sender: String = "testChat",
81-
val command: String = "test",
82-
val type: String = "chatMessage",
83-
) : AmazonQMessage
84-
8577
class ChatController private constructor(
8678
private val context: AmazonQAppInitContext,
8779
private val chatSessionStorage: ChatSessionStorage,
@@ -285,16 +277,7 @@ class ChatController private constructor(
285277

286278
// JB specific (not in vscode)
287279
override suspend fun processContextMenuCommand(message: ContextMenuActionMessage) {
288-
// Extract context
289-
if (message.project != context.project) {
290-
return
291-
}
292-
293-
if (message.command == EditorContextCommand.GenerateUnitTests) {
294-
// Publish an event to "codetest" tab with command as "test" and type as "addAnswer"
295-
val messageToPublish = TestCommandMessage()
296-
context.messagesFromAppToUi.publish(messageToPublish)
297-
}
280+
// No-op since context commands are handled elsewhere. This function will be deprecated once we remove this class
298281
}
299282

300283
private suspend fun processPromptActions(

plugins/amazonq/mynah-ui/src/mynah-ui/ui/quickActions/handler.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ private handleDocCommand(chatPrompt: ChatPrompt, tabID: string, taskName: string
331331
this.showScanInTab(affectedTabId)
332332
}
333333

334-
private handleCodeTestCommand(chatPrompt: ChatPrompt, tabID: string, eventId: string | undefined) {
334+
private handleCodeTestCommand(chatPrompt: ChatPrompt, tabID: string | undefined, eventId: string | undefined) {
335335
if (!this.isCodeTestEnabled) {
336336
return
337337
}
@@ -343,10 +343,17 @@ private handleDocCommand(chatPrompt: ChatPrompt, tabID: string, taskName: string
343343
this.connector.startTestGen(testTabId, realPromptText)
344344
return
345345
}
346+
/**
347+
* right click -> generate test has no tab id
348+
* we have to manually create one if a testgen tab
349+
* wasn't previously created
350+
*/
351+
if (!tabID) {
352+
tabID = this.mynahUI?.updateStore('', {})
353+
}
346354
const affectedTabId: string | undefined = this.addTab(tabID)
347355

348356
// if there is no test tab, open a new one
349-
350357
if (affectedTabId === undefined) {
351358
this.mynahUI?.notify({
352359
content: uiComponentsTexts.noMoreTabsTooltip,

0 commit comments

Comments
 (0)