Skip to content

Commit 48fc68a

Browse files
authored
test(amazonq): update tests for messages at different remaining iteration counts (#5271)
* test(amazonq): update tests for messages at different remaining iteration counts * test(amazonq): update tests for messages at different remaining iteration counts
1 parent 5bceb99 commit 48fc68a

File tree

1 file changed

+115
-0
lines changed
  • plugins/amazonq/chat/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/controller

1 file changed

+115
-0
lines changed

plugins/amazonq/chat/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/controller/FeatureDevControllerTest.kt

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,121 @@ class FeatureDevControllerTest : FeatureDevTestBase() {
433433
}
434434
}
435435

436+
@Test
437+
fun `test handleChat onCodeGeneration sends correct add code messages`() = runTest {
438+
val totalIterations = 10
439+
440+
for (remainingIterations in 0 until totalIterations) {
441+
val message = if (remainingIterations > 2) {
442+
message("amazonqFeatureDev.code_generation.iteration_counts_ask_to_add_code_or_feedback")
443+
} else if (remainingIterations > 0) {
444+
message(
445+
"amazonqFeatureDev.code_generation.iteration_counts",
446+
remainingIterations,
447+
totalIterations,
448+
)
449+
} else {
450+
message(
451+
"amazonqFeatureDev.code_generation.iteration_counts_ask_to_add_code",
452+
remainingIterations,
453+
totalIterations,
454+
)
455+
}
456+
val mockSession = mock<Session>()
457+
val featureDevService = mockk<FeatureDevService>()
458+
val repoContext = mock<FeatureDevSessionContext>()
459+
val sessionStateConfig = SessionStateConfig(testConversationId, repoContext, featureDevService)
460+
val mockInteraction = mock<Interaction>()
461+
whenever(mockSession.send(userMessage)).thenReturn(mockInteraction)
462+
whenever(mockSession.sessionState).thenReturn(
463+
PrepareCodeGenerationState(
464+
testTabId,
465+
CancellationTokenSource(),
466+
"test-command",
467+
sessionStateConfig,
468+
newFileContents,
469+
deletedFiles,
470+
testReferences,
471+
testUploadId,
472+
1,
473+
messenger,
474+
remainingIterations,
475+
totalIterations,
476+
diffMetricsProcessed = DiffMetricsProcessed(HashSet(), HashSet()),
477+
),
478+
)
479+
480+
controller.onCodeGeneration(mockSession, userMessage, testTabId)
481+
482+
coVerify {
483+
messenger.sendAnswer(
484+
tabId = testTabId,
485+
messageType = FeatureDevMessageType.Answer,
486+
message = message
487+
)
488+
}
489+
}
490+
}
491+
492+
@Test
493+
fun `test handleChat onCodeGeneration sends correct messages after cancellation`() = runTest {
494+
val totalIterations = 10
495+
496+
for (remainingIterations in -1 until totalIterations) {
497+
// remainingIterations < 0 is to represent the null case
498+
val message = if (remainingIterations > 2 || remainingIterations < 0) {
499+
message("amazonqFeatureDev.code_generation.stopped_code_generation_no_iteration_count_display")
500+
} else if (remainingIterations > 0) {
501+
message(
502+
"amazonqFeatureDev.code_generation.stopped_code_generation",
503+
remainingIterations,
504+
totalIterations,
505+
)
506+
} else {
507+
message(
508+
"amazonqFeatureDev.code_generation.stopped_code_generation_no_iterations",
509+
remainingIterations,
510+
totalIterations,
511+
)
512+
}
513+
val mockSession = mock<Session>()
514+
val featureDevService = mockk<FeatureDevService>()
515+
val repoContext = mock<FeatureDevSessionContext>()
516+
val sessionStateConfig = SessionStateConfig(testConversationId, repoContext, featureDevService)
517+
val mockInteraction = mock<Interaction>()
518+
val token = CancellationTokenSource()
519+
token.cancel()
520+
whenever(mockSession.send(userMessage)).thenReturn(mockInteraction)
521+
whenever(mockSession.sessionState).thenReturn(
522+
PrepareCodeGenerationState(
523+
testTabId,
524+
token,
525+
"test-command",
526+
sessionStateConfig,
527+
newFileContents,
528+
deletedFiles,
529+
testReferences,
530+
testUploadId,
531+
1,
532+
messenger,
533+
(if (remainingIterations < 0) null else remainingIterations),
534+
totalIterations,
535+
diffMetricsProcessed = DiffMetricsProcessed(HashSet(), HashSet()),
536+
),
537+
)
538+
539+
controller.onCodeGeneration(mockSession, userMessage, testTabId)
540+
541+
coVerify {
542+
messenger.sendAnswer(
543+
tabId = testTabId,
544+
messageType = FeatureDevMessageType.Answer,
545+
message = message
546+
)
547+
}
548+
}
549+
}
550+
436551
@Test
437552
fun `test handleChat onCodeGeneration sends success metrics`() = runTest {
438553
val mockSession = mock<Session>()

0 commit comments

Comments
 (0)