Skip to content

Commit b844833

Browse files
committed
backend error handling
1 parent 86c143f commit b844833

File tree

3 files changed

+27
-8
lines changed

3 files changed

+27
-8
lines changed

packages/core/src/amazonqTest/chat/controller/controller.ts

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,10 @@ export class TestController {
284284
this.messenger.sendUpdatePromptProgress(data.tabID, null)
285285
const session = this.sessionStorage.getSession()
286286
const isCancel = data.error.uiMessage === unitTestGenerationCancelMessage
287-
const telemetryErrorMessage = getTelemetryReasonDesc(data.error.uiMessage.replaceAll('```', ''))
287+
let telemetryErrorMessage = getTelemetryReasonDesc(data.error)
288+
if (session.stopIteration) {
289+
telemetryErrorMessage = getTelemetryReasonDesc(data.error.uiMessage.replaceAll('```', ''))
290+
}
288291
TelemetryHelper.instance.sendTestGenerationToolkitEvent(
289292
session,
290293
session.isSupportedLanguage,
@@ -306,13 +309,26 @@ export class TestController {
306309
undefined,
307310
isCancel ? 'CANCELLED' : 'FAILED'
308311
)
309-
this.messenger.sendMessage(
310-
data.error.uiMessage.replaceAll('```', ''),
311-
data.tabID,
312-
'answer',
313-
'testGenErrorMessage',
314-
this.getFeedbackButtons()
315-
)
312+
if (session.stopIteration) {
313+
// Error from Science
314+
this.messenger.sendMessage(
315+
data.error.uiMessage.replaceAll('```', ''),
316+
data.tabID,
317+
'answer',
318+
'testGenErrorMessage',
319+
this.getFeedbackButtons()
320+
)
321+
} else {
322+
isCancel
323+
? this.messenger.sendMessage(
324+
data.error.uiMessage,
325+
data.tabID,
326+
'answer',
327+
'testGenErrorMessage',
328+
this.getFeedbackButtons()
329+
)
330+
: this.sendErrorMessage(data)
331+
}
316332
await this.sessionCleanUp()
317333
return
318334
}
@@ -1382,6 +1398,7 @@ export class TestController {
13821398
session.sourceFilePath = ''
13831399
session.generatedFilePath = ''
13841400
session.projectRootPath = ''
1401+
session.stopIteration = false
13851402
session.fileLanguage = undefined
13861403
ChatSessionManager.Instance.setIsInProgress(false)
13871404
session.linesOfCodeGenerated = 0

packages/core/src/amazonqTest/chat/session/session.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export class Session {
4242
public generatedFilePath: string = ''
4343
public projectRootPath: string = ''
4444
public fileLanguage: string | undefined = 'plaintext'
45+
public stopIteration: boolean = false
4546
public targetFileInfo: TargetFileInfo | undefined
4647
public jobSummary: string = ''
4748

packages/core/src/codewhisperer/service/testGenHandler.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ export async function pollTestJobStatus(
199199
session.numberOfTestsGenerated = 0
200200
logger.verbose(`Test generation failed.`)
201201
if (resp.testGenerationJob?.jobStatusReason) {
202+
session.stopIteration = true
202203
throw new TestGenFailedError(resp.testGenerationJob?.jobStatusReason)
203204
} else {
204205
throw new TestGenFailedError()

0 commit comments

Comments
 (0)