Skip to content

Commit d8b8b88

Browse files
committed
update controller tests
1 parent 3bfd937 commit d8b8b88

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

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

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,14 @@ describe('Controller', () => {
258258

259259
assertTelemetry('amazonq_endChat', { amazonqConversationId: conversationID, result: 'Succeeded' })
260260
})
261+
262+
it('disableFileList is called', async () => {
263+
const disableFileListSpy = sinon.stub(session, 'disableFileList').resolves()
264+
265+
await newTaskClicked()
266+
267+
assert.ok(disableFileListSpy.calledOnce)
268+
})
261269
})
262270

263271
describe('fileClicked', () => {
@@ -437,11 +445,13 @@ describe('Controller', () => {
437445
const sendAnswerSpy = sinon.stub(controllerSetup.messenger, 'sendAnswer')
438446
const sendErrorMessageSpy = sinon.stub(controllerSetup.messenger, 'sendErrorMessage')
439447
const sendMonthlyLimitErrorSpy = sinon.stub(controllerSetup.messenger, 'sendMonthlyLimitError')
448+
const disableFileListSpy = sinon.stub(session, 'disableFileList').resolves()
440449

441450
await fireChatMessage()
442451

443452
switch (error.constructor.name) {
444453
case ContentLengthError.name:
454+
assert.ok(disableFileListSpy.calledOnce)
445455
assert.ok(
446456
sendAnswerSpy.calledWith({
447457
type: 'answer',
@@ -452,13 +462,15 @@ describe('Controller', () => {
452462
)
453463
break
454464
case MonthlyConversationLimitError.name:
465+
assert.ok(disableFileListSpy.calledOnce)
455466
assert.ok(sendMonthlyLimitErrorSpy.calledWith(tabID))
456467
break
457468
case FeatureDevServiceError.name:
458469
case UploadCodeError.name:
459470
case UserMessageNotFoundError.name:
460471
case TabIdNotFoundError.name:
461472
case PrepareRepoFailedError.name:
473+
assert.ok(disableFileListSpy.calledOnce)
462474
assert.ok(
463475
sendErrorMessageSpy.calledWith(
464476
createTestErrorMessage(error.message),
@@ -470,6 +482,7 @@ describe('Controller', () => {
470482
break
471483
case PromptRefusalException.name:
472484
case ZipFileError.name:
485+
assert.ok(disableFileListSpy.calledOnce)
473486
assert.ok(
474487
sendErrorMessageSpy.calledWith(
475488
createTestErrorMessage(error.message),
@@ -481,8 +494,19 @@ describe('Controller', () => {
481494
)
482495
break
483496
case NoChangeRequiredException.name:
497+
assert.ok(disableFileListSpy.calledTwice)
498+
assert.ok(
499+
sendAnswerSpy.calledWith({
500+
type: 'answer',
501+
tabID,
502+
message: error.message,
503+
canBeVoted: true,
504+
})
505+
)
506+
break
484507
case CodeIterationLimitError.name:
485508
case UploadURLExpired.name:
509+
assert.ok(disableFileListSpy.calledOnce)
486510
assert.ok(
487511
sendAnswerSpy.calledWith({
488512
type: 'answer',
@@ -493,6 +517,7 @@ describe('Controller', () => {
493517
)
494518
break
495519
default:
520+
assert.ok(disableFileListSpy.calledOnce)
496521
assert.ok(
497522
sendErrorMessageSpy.calledWith(
498523
i18n('AWS.amazonq.featureDev.error.codeGen.default'),
@@ -524,4 +549,36 @@ describe('Controller', () => {
524549
assertTelemetry('ui_click', { elementId: 'amazonq_stopCodeGeneration' })
525550
})
526551
})
552+
553+
describe('closeSession', async () => {
554+
async function closeSessionClicked() {
555+
const getSessionStub = sinon.stub(controllerSetup.sessionStorage, 'getSession').resolves(session)
556+
557+
controllerSetup.emitters.followUpClicked.fire({
558+
tabID,
559+
followUp: {
560+
type: FollowUpTypes.CloseSession,
561+
},
562+
})
563+
564+
// Wait until the controller has time to process the event
565+
await waitUntil(() => {
566+
return Promise.resolve(getSessionStub.callCount > 0)
567+
}, {})
568+
}
569+
570+
it('end chat telemetry is sent', async () => {
571+
await closeSessionClicked()
572+
573+
assertTelemetry('amazonq_endChat', { amazonqConversationId: conversationID, result: 'Succeeded' })
574+
})
575+
576+
it('disableFileList is called', async () => {
577+
const disableFileListSpy = sinon.stub(session, 'disableFileList').resolves()
578+
579+
await closeSessionClicked()
580+
581+
assert.ok(disableFileListSpy.calledOnce)
582+
})
583+
})
527584
})

0 commit comments

Comments
 (0)