Skip to content

Commit 03cd78b

Browse files
siakmun-awskaranA-aws
authored andcommitted
test(amazonq): update tests for messages at different remaining iteration counts (aws#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 bedf333 commit 03cd78b

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
@@ -434,6 +434,121 @@ class FeatureDevControllerTest : FeatureDevTestBase() {
434434
}
435435
}
436436

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

0 commit comments

Comments
 (0)