Skip to content

Commit 0e93a97

Browse files
committed
refactor(dev): remove errorName from Error classes
1 parent 62e9cfb commit 0e93a97

File tree

3 files changed

+33
-40
lines changed

3 files changed

+33
-40
lines changed

packages/core/src/amazonqFeatureDev/controllers/chat/controller.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,8 @@ export class FeatureDevController {
216216
let defaultMessage
217217
const isDenyListedError = denyListedErrors.some((err) => errorMessage.includes(err))
218218

219-
switch (err.code) {
220-
case ContentLengthError.errorName:
219+
switch (err.constructor.name) {
220+
case ContentLengthError.name:
221221
this.messenger.sendAnswer({
222222
type: 'answer',
223223
tabID: message.tabID,
@@ -235,26 +235,26 @@ export class FeatureDevController {
235235
],
236236
})
237237
break
238-
case MonthlyConversationLimitError.errorName:
238+
case MonthlyConversationLimitError.name:
239239
this.messenger.sendMonthlyLimitError(message.tabID)
240240
break
241-
case FeatureDevServiceError.errorName:
242-
case UploadCodeError.errorName:
243-
case UserMessageNotFoundError.errorName:
244-
case TabIdNotFoundError.errorName:
245-
case PrepareRepoFailedError.errorName:
241+
case FeatureDevServiceError.name:
242+
case UploadCodeError.name:
243+
case UserMessageNotFoundError.name:
244+
case TabIdNotFoundError.name:
245+
case PrepareRepoFailedError.name:
246246
this.messenger.sendErrorMessage(
247247
errorMessage,
248248
message.tabID,
249249
this.retriesRemaining(session),
250250
session?.conversationIdUnsafe
251251
)
252252
break
253-
case PromptRefusalException.errorName:
254-
case ZipFileError.errorName:
253+
case PromptRefusalException.name:
254+
case ZipFileError.name:
255255
this.messenger.sendErrorMessage(errorMessage, message.tabID, 0, session?.conversationIdUnsafe, true)
256256
break
257-
case NoChangeRequiredException.errorName:
257+
case NoChangeRequiredException.name:
258258
this.messenger.sendAnswer({
259259
type: 'answer',
260260
tabID: message.tabID,
@@ -263,7 +263,7 @@ export class FeatureDevController {
263263
})
264264
// Allow users to re-work the task description.
265265
return this.newTask(message)
266-
case CodeIterationLimitError.errorName:
266+
case CodeIterationLimitError.name:
267267
this.messenger.sendAnswer({
268268
type: 'answer',
269269
tabID: message.tabID,
@@ -282,7 +282,7 @@ export class FeatureDevController {
282282
],
283283
})
284284
break
285-
case UploadURLExpired.errorName:
285+
case UploadURLExpired.name:
286286
this.messenger.sendAnswer({
287287
type: 'answer',
288288
tabID: message.tabID,

packages/core/src/amazonqFeatureDev/errors.ts

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,13 @@ export class ConversationIdNotFoundError extends ToolkitError {
1717
}
1818

1919
export class TabIdNotFoundError extends ToolkitError {
20-
static errorName = 'TabIdNotFoundError'
21-
2220
constructor() {
2321
super(i18n('AWS.amazonq.featureDev.error.tabIdNotFoundError'), {
2422
code: 'TabIdNotFound',
2523
})
2624
}
2725
}
2826

29-
export class PanelLoadError extends ToolkitError {
30-
constructor() {
31-
super(`${featureName} UI panel failed to load`, { code: 'PanelLoadFailed' })
32-
}
33-
}
34-
3527
export class WorkspaceFolderNotFoundError extends ToolkitError {
3628
constructor() {
3729
super(i18n('AWS.amazonq.featureDev.error.workspaceFolderNotFoundError'), {
@@ -41,7 +33,6 @@ export class WorkspaceFolderNotFoundError extends ToolkitError {
4133
}
4234

4335
export class UserMessageNotFoundError extends ToolkitError {
44-
static errorName = 'UserMessageNotFoundError'
4536
constructor() {
4637
super(i18n('AWS.amazonq.featureDev.error.userMessageNotFoundError'), {
4738
code: 'MessageNotFound',
@@ -58,7 +49,6 @@ export class SelectedFolderNotInWorkspaceFolderError extends ToolkitError {
5849
}
5950

6051
export class PromptRefusalException extends ToolkitError {
61-
static errorName = 'PromptRefusalException'
6252
constructor() {
6353
super(i18n('AWS.amazonq.featureDev.error.promptRefusalException'), {
6454
code: 'PromptRefusalException',
@@ -67,7 +57,6 @@ export class PromptRefusalException extends ToolkitError {
6757
}
6858

6959
export class NoChangeRequiredException extends ToolkitError {
70-
static errorName = 'NoChangeRequiredException'
7160
constructor() {
7261
super(i18n('AWS.amazonq.featureDev.error.noChangeRequiredException'), {
7362
code: 'NoChangeRequiredException',
@@ -76,14 +65,12 @@ export class NoChangeRequiredException extends ToolkitError {
7665
}
7766

7867
export class FeatureDevServiceError extends ToolkitError {
79-
static errorName = 'FeatureDevServiceError'
8068
constructor(message: string, code: string) {
8169
super(message, { code })
8270
}
8371
}
8472

8573
export class PrepareRepoFailedError extends ToolkitError {
86-
static errorName = 'PrepareRepoFailedError'
8774
constructor() {
8875
super(i18n('AWS.amazonq.featureDev.error.prepareRepoFailedError'), {
8976
code: 'PrepareRepoFailed',
@@ -92,14 +79,12 @@ export class PrepareRepoFailedError extends ToolkitError {
9279
}
9380

9481
export class UploadCodeError extends ToolkitError {
95-
static errorName = 'UploadCodeError'
9682
constructor(statusCode: string) {
9783
super(uploadCodeError, { code: `UploadCode-${statusCode}` })
9884
}
9985
}
10086

10187
export class UploadURLExpired extends ToolkitError {
102-
static errorName = 'UploadURLExpired'
10388
constructor() {
10489
super(i18n('AWS.amazonq.featureDev.error.uploadURLExpired'), { code: 'UploadURLExpired' })
10590
}
@@ -112,30 +97,26 @@ export class IllegalStateTransition extends ToolkitError {
11297
}
11398

11499
export class ContentLengthError extends ToolkitError {
115-
static errorName = 'ContentLengthError'
116100
constructor() {
117-
super(i18n('AWS.amazonq.featureDev.error.contentLengthError'), { code: ContentLengthError.errorName })
101+
super(i18n('AWS.amazonq.featureDev.error.contentLengthError'), { code: ContentLengthError.name })
118102
}
119103
}
120104

121105
export class ZipFileError extends ToolkitError {
122-
static errorName = 'ZipFileError'
123106
constructor() {
124-
super(i18n('AWS.amazonq.featureDev.error.zipFileError'), { code: ZipFileError.errorName })
107+
super(i18n('AWS.amazonq.featureDev.error.zipFileError'), { code: ZipFileError.name })
125108
}
126109
}
127110

128111
export class CodeIterationLimitError extends ToolkitError {
129-
static errorName = 'CodeIterationLimitError'
130112
constructor() {
131-
super(i18n('AWS.amazonq.featureDev.error.codeIterationLimitError'), { code: CodeIterationLimitError.errorName })
113+
super(i18n('AWS.amazonq.featureDev.error.codeIterationLimitError'), { code: CodeIterationLimitError.name })
132114
}
133115
}
134116

135117
export class MonthlyConversationLimitError extends ToolkitError {
136-
static errorName = 'MonthlyConversationLimitError'
137118
constructor(message: string) {
138-
super(message, { code: MonthlyConversationLimitError.errorName })
119+
super(message, { code: MonthlyConversationLimitError.name })
139120
}
140121
}
141122

packages/core/src/test/amazonqFeatureDev/controllers/chat/controller.test.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { assertTelemetry, toFile } from '../../../testUtil'
1616
import {
1717
NoChangeRequiredException,
1818
SelectedFolderNotInWorkspaceFolderError,
19+
UploadURLExpired,
1920
} from '../../../../amazonqFeatureDev/errors'
2021
import { CodeGenState, PrepareCodeGenState } from '../../../../amazonqFeatureDev/session/sessionState'
2122
import { FeatureDevClient } from '../../../../amazonqFeatureDev/client/featureDev'
@@ -385,9 +386,8 @@ describe('Controller', () => {
385386
}
386387

387388
describe('processErrorChatMessage', function () {
388-
it('should handle NoChangeRequiredException', async function () {
389-
const noChangeRequiredException = new NoChangeRequiredException()
390-
sinon.stub(session, 'preloader').throws(noChangeRequiredException)
389+
async function verifyException(error: Error, message?: string) {
390+
sinon.stub(session, 'preloader').throws(error)
391391
const sendAnswerSpy = sinon.stub(controllerSetup.messenger, 'sendAnswer')
392392

393393
await fireChatMessage()
@@ -396,11 +396,23 @@ describe('Controller', () => {
396396
sendAnswerSpy.calledWith({
397397
type: 'answer',
398398
tabID,
399-
message: noChangeRequiredException.message,
399+
message: message ?? error.message,
400400
canBeVoted: true,
401401
}),
402402
true
403403
)
404+
}
405+
406+
it('should handle NoChangeRequiredException', async function () {
407+
const noChangeRequiredException = new NoChangeRequiredException()
408+
409+
await verifyException(noChangeRequiredException)
410+
})
411+
412+
it('should handle UploadURLExpired', async function () {
413+
const uploadURLExpired = new UploadURLExpired()
414+
415+
await verifyException(uploadURLExpired)
404416
})
405417
})
406418
})

0 commit comments

Comments
 (0)