in plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqCodeTest/utils/UTGChatUtil.kt [32:80]
fun constructBuildAndExecutionSummaryText(currentStatus: BuildAndExecuteProgressStatus, iterationNum: Int): String {
val progressMessages = mutableListOf<String>()
if (currentStatus >= BuildAndExecuteProgressStatus.RUN_BUILD) {
val verb = if (currentStatus == BuildAndExecuteProgressStatus.RUN_BUILD) "in progress" else "complete"
progressMessages.add("${getBuildIcon(currentStatus)}: Build $verb")
}
if (currentStatus >= BuildAndExecuteProgressStatus.RUN_EXECUTION_TESTS) {
val verb = if (currentStatus == BuildAndExecuteProgressStatus.RUN_EXECUTION_TESTS) "Executing" else "Executed"
progressMessages.add("${getExecutionIcon(currentStatus)}: $verb passed tests")
}
if (currentStatus >= BuildAndExecuteProgressStatus.FIXING_TEST_CASES) {
val verb = if (currentStatus == BuildAndExecuteProgressStatus.FIXING_TEST_CASES) "Fixing" else "Fixed"
progressMessages.add("${getFixingTestCasesIcon(currentStatus)}: $verb errors in tests")
}
if (currentStatus >= BuildAndExecuteProgressStatus.PROCESS_TEST_RESULTS) {
progressMessages.add("\n")
progressMessages.add("**Test case summary**")
progressMessages.add("\n")
progressMessages.add("Unit test coverage X%")
progressMessages.add("Build fails Y")
progressMessages.add("Assertion fails Z")
}
val prefix =
if (iterationNum < 2) {
"Sure"
} else {
val timeString = when (iterationNum) {
2 -> "second"
3 -> "third"
4 -> "fourth"
// shouldn't reach
else -> "fifth"
}
"Working on the $timeString iteration now"
}
// Join all progress messages into a single string
return """
$prefix. This may take a few minutes and I'll update the progress here.
**Progress summary**
""".trimIndent() + progressMessages.joinToString("\n")
}