Skip to content

Commit 3e129b2

Browse files
committed
Progress bar cancel UX changes
1 parent e87fe92 commit 3e129b2

File tree

4 files changed

+29
-16
lines changed

4 files changed

+29
-16
lines changed

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

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ val cancelTestGenBuildAndExecuteButton = Button(
3535
icon = "cancel"
3636
)
3737

38+
val cancelFixingTestCasesButton = Button(
39+
id = CodeTestButtonId.StopFixingTestCases.id,
40+
text = message("general.cancel"),
41+
icon = "cancel"
42+
)
43+
3844
fun testGenProgressField(value: Int) = ProgressField(
3945
status = "default",
4046
text = message("testgen.progressbar.generate_unit_tests"),
@@ -43,14 +49,6 @@ fun testGenProgressField(value: Int) = ProgressField(
4349
actions = listOf(cancelTestGenButton)
4450
)
4551

46-
//val buildAndExecuteProgrogressField = ProgressField(
47-
// status = "default",
48-
// value= -1,
49-
// text = message("testgen.progressbar.build_and_execute"),
50-
// actions = listOf(cancelTestGenBuildAndExecuteButton)
51-
//)
52-
53-
5452
val fixingTestCasesProgressField = ProgressField(
5553
status = "default",
5654
value= -1,
@@ -63,6 +61,6 @@ fun createProgressField(messageKey: String): ProgressField {
6361
status = "default",
6462
value = -1,
6563
text = message(messageKey),
66-
actions = listOf(cancelTestGenBuildAndExecuteButton)
64+
actions = listOf(if (messageKey == "testgen.progressbar.build_and_execute") cancelFixingTestCasesButton else cancelTestGenBuildAndExecuteButton)
6765
)
6866
}

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,6 +1019,9 @@ class CodeTestChatController(
10191019
session.testFileRelativePathToProjectRoot,
10201020
codeTestChatHelper
10211021
)
1022+
if(session.buildStatus === BuildStatus.CANCELLED) {
1023+
return
1024+
}
10221025
while (taskContext.buildExitCode < 0) {
10231026
// wait until build command finished
10241027
delay(1000)
@@ -1104,7 +1107,7 @@ class CodeTestChatController(
11041107
)
11051108
)
11061109
codeTestChatHelper.updateUI(
1107-
promptInputDisabledState = true,
1110+
promptInputDisabledState = false,
11081111
promptInputPlaceholder = message("testgen.placeholder.modifyCommand"),
11091112
)
11101113

@@ -1116,14 +1119,18 @@ class CodeTestChatController(
11161119
"stop_test_generation" -> {
11171120
UiTelemetry.click(null as Project?, "unitTestGeneration_cancelTestGenerationProgress")
11181121
session.isGeneratingTests = false
1119-
// sessionCleanUp(message.tabId)
11201122
return
11211123
}
11221124
"stop_test_gen_build_and_execution" -> {
11231125
UiTelemetry.click(null as Project?, "unitTestGeneration_cancelBuildProgress")
11241126
// TODO: Cancel Build and execute
11251127
session.isGeneratingTests = false
1126-
// sessionCleanUp(message.tabId)
1128+
return
1129+
}
1130+
"stop_fixing_test_cases" -> {
1131+
UiTelemetry.click(null as Project?, "unitTestGeneration_cancelFixingTest")
1132+
session.isGeneratingTests = false
1133+
session.buildStatus=BuildStatus.CANCELLED
11271134
return
11281135
}
11291136
else -> {

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqCodeTest/messages/CodeTestMessage.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const val CODE_TEST_TAB_NAME = "codetest"
1717
enum class CodeTestButtonId(val id: String) {
1818
StopTestGeneration("stop_test_generation"),
1919
StopTestGenBuildAndExecution("stop_test_gen_build_and_execution"),
20+
StopFixingTestCases("stop_fixing_test_cases")
2021
}
2122

2223
data class Button(

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqCodeTest/utils/UTGChatUtil.kt

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,17 +158,24 @@ fun runBuildOrTestCommand(
158158
ApplicationManager.getApplication().invokeLater {
159159
VirtualFileManager.getInstance().refreshAndFindFileByNioPath(file.toPath())?.refresh(false, false)
160160
}
161+
// Check if the build has been cancelled
162+
if (codeTestChatHelper.getActiveSession().buildStatus == BuildStatus.CANCELLED) {
163+
processHandler.destroyProcess()
164+
console.print("\nBuild cancelled by user\n", ConsoleViewContentType.SYSTEM_OUTPUT)
165+
if (isBuildCommand) {
166+
buildAndExecuteTaskContext.buildExitCode = 1
167+
} else {
168+
buildAndExecuteTaskContext.testExitCode = 1
169+
}
170+
}
161171
}
162-
163172
override fun processTerminated(event: ProcessEvent) {
164173
val exitCode = event.exitCode
165174
if (exitCode == 0) {
166175
codeTestChatHelper.getActiveSession().buildStatus = BuildStatus.SUCCESS
167-
// green color
168176
console.print("\nBUILD SUCCESSFUL\n", ConsoleViewContentType.USER_INPUT)
169-
} else {
177+
} else if (codeTestChatHelper.getActiveSession().buildStatus != BuildStatus.CANCELLED) {
170178
codeTestChatHelper.getActiveSession().buildStatus = BuildStatus.FAILURE
171-
// red color
172179
console.print("\nBUILD FAILED with exit code $exitCode\n", ConsoleViewContentType.ERROR_OUTPUT)
173180
}
174181
if (isBuildCommand) {

0 commit comments

Comments
 (0)