fun constructBuildAndExecutionSummaryText()

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")
}