@@ -113,6 +113,8 @@ class QTestGenerationChatTest {
113
113
assertTrue(result.contains(" View Diff opened" ))
114
114
assertTrue(result.contains(" Result Accepted" ))
115
115
assertTrue(result.contains(" Unit test generation completed." ))
116
+ assertTrue(result.contains(" Input field re-enabled after acceptance" ))
117
+ assertTrue(result.contains(" Feedback button found with correct text" ))
116
118
}
117
119
}
118
120
@@ -211,6 +213,8 @@ class QTestGenerationChatTest {
211
213
assertTrue(result.contains(" View Diff opened" ))
212
214
assertTrue(result.contains(" Result Reject" ))
213
215
assertTrue(result.contains(" Unit test generation completed." ))
216
+ assertTrue(result.contains(" Input field re-enabled after rejection" ))
217
+ assertTrue(result.contains(" Feedback button found with correct text" ))
214
218
}
215
219
}
216
220
@@ -314,6 +318,114 @@ class QTestGenerationChatTest {
314
318
assertTrue(result.contains(" Cancel button clicked" ))
315
319
assertTrue(result.contains(" Test generation cancelled successfully" ))
316
320
assertTrue(result.contains(" Input field re-enabled after cancellation" ))
321
+ assertTrue(result.contains(" Feedback button found with correct text" ))
322
+ }
323
+ }
324
+
325
+ @Test
326
+ fun `test documentation generation error handling` () {
327
+ val testCase = TestCase (
328
+ IdeProductProvider .IC ,
329
+ LocalProjectInfo (
330
+ Paths .get(" tstData" , " qTestGenerationTestProject/" )
331
+ )
332
+ ).useRelease(System .getProperty(" org.gradle.project.ideProfileName" ))
333
+
334
+ // inject connection
335
+ useExistingConnectionForTest()
336
+
337
+ Starter .newContext(CurrentTestMethod .hyphenateWithClass(), testCase).apply {
338
+ System .getProperty(" ui.test.plugins" ).split(File .pathSeparator).forEach { path ->
339
+ pluginConfigurator.installPluginFromPath(
340
+ Path .of(path)
341
+ )
342
+ }
343
+
344
+ copyExistingConfig(Paths .get(" tstData" , " configAmazonQTests" ))
345
+ updateGeneralSettings()
346
+ }.runIdeWithDriver()
347
+ .useDriverAndCloseIde {
348
+ waitForProjectOpen()
349
+ openFile(Paths .get(" testModule1" , " HappyPath.java" ).toString())
350
+ Thread .sleep(30000 )
351
+ val result = executePuppeteerScript(testDocumentationErrorScript)
352
+ assertTrue(result.contains(" new tab opened" ))
353
+ assertTrue(result.contains(" Error message displayed correctly" ))
354
+ assertTrue(result.contains(" Input field re-enabled after error" ))
355
+ assertTrue(result.contains(" Feedback button found with correct text after error" ))
356
+ assertTrue(result.contains(" Feedback button is clickable" ))
357
+ }
358
+ }
359
+
360
+ @Test
361
+ fun `test remove function error handling` () {
362
+ val testCase = TestCase (
363
+ IdeProductProvider .IC ,
364
+ LocalProjectInfo (
365
+ Paths .get(" tstData" , " qTestGenerationTestProject/" )
366
+ )
367
+ ).useRelease(System .getProperty(" org.gradle.project.ideProfileName" ))
368
+
369
+ // inject connection
370
+ useExistingConnectionForTest()
371
+
372
+ Starter .newContext(CurrentTestMethod .hyphenateWithClass(), testCase).apply {
373
+ System .getProperty(" ui.test.plugins" ).split(File .pathSeparator).forEach { path ->
374
+ pluginConfigurator.installPluginFromPath(
375
+ Path .of(path)
376
+ )
377
+ }
378
+
379
+ copyExistingConfig(Paths .get(" tstData" , " configAmazonQTests" ))
380
+ updateGeneralSettings()
381
+ }.runIdeWithDriver()
382
+ .useDriverAndCloseIde {
383
+ waitForProjectOpen()
384
+ openFile(Paths .get(" testModule1" , " HappyPath.java" ).toString())
385
+ Thread .sleep(30000 )
386
+ val result = executePuppeteerScript(testRemoveFunctionErrorScript)
387
+ assertTrue(result.contains(" new tab opened" ))
388
+ assertTrue(result.contains(" Error message displayed correctly" ))
389
+ assertTrue(result.contains(" Explanation message displayed correctly" ))
390
+ assertTrue(result.contains(" Input field re-enabled after error" ))
391
+ assertTrue(result.contains(" Feedback button found with correct text after error" ))
392
+ assertTrue(result.contains(" Feedback button is clickable" ))
393
+ }
394
+ }
395
+
396
+ @Test
397
+ fun `test method not found error handling` () {
398
+ val testCase = TestCase (
399
+ IdeProductProvider .IC ,
400
+ LocalProjectInfo (
401
+ Paths .get(" tstData" , " qTestGenerationTestProject/" )
402
+ )
403
+ ).useRelease(System .getProperty(" org.gradle.project.ideProfileName" ))
404
+
405
+ // inject connection
406
+ useExistingConnectionForTest()
407
+
408
+ Starter .newContext(CurrentTestMethod .hyphenateWithClass(), testCase).apply {
409
+ System .getProperty(" ui.test.plugins" ).split(File .pathSeparator).forEach { path ->
410
+ pluginConfigurator.installPluginFromPath(
411
+ Path .of(path)
412
+ )
413
+ }
414
+
415
+ copyExistingConfig(Paths .get(" tstData" , " configAmazonQTests" ))
416
+ updateGeneralSettings()
417
+ }.runIdeWithDriver()
418
+ .useDriverAndCloseIde {
419
+ waitForProjectOpen()
420
+ openFile(Paths .get(" testModule1" , " HappyPath.java" ).toString())
421
+ Thread .sleep(30000 )
422
+ val result = executePuppeteerScript(testMethodNotFoundErrorScript)
423
+ assertTrue(result.contains(" new tab opened" ))
424
+ assertTrue(result.contains(" Method not found error message displayed correctly" ))
425
+ assertTrue(result.contains(" Method not found explanation displayed correctly" ))
426
+ assertTrue(result.contains(" Input field re-enabled after error" ))
427
+ assertTrue(result.contains(" Feedback button found with correct text after error" ))
428
+ assertTrue(result.contains(" Feedback button is clickable" ))
317
429
}
318
430
}
319
431
0 commit comments