@@ -11,34 +11,21 @@ import {
1111 FeatureDevPrepareCodeGenState ,
1212 FeatureDevCodeGenState ,
1313} from '../../../amazonqFeatureDev/session/sessionState'
14- import { SessionStateConfig } from '../../../amazonq/commons/types'
1514import { ToolkitError } from '../../../shared/errors'
1615import * as crypto from '../../../shared/crypto'
1716import { createMockSessionStateAction } from '../../amazonq/utils'
1817
19- import { TestSessionMocks } from '../../amazonq/utils'
20- import { beforeEachFunc , createSessionTestSetup } from '../../amazonq/session/testSetup'
21-
22- let testMocks : TestSessionMocks
18+ import { createTestContext , setupTestHooks } from '../../amazonq/session/testSetup'
2319
2420describe ( 'sessionStateFeatureDev' , ( ) => {
25- const { conversationId, uploadId, tabId, currentCodeGenerationId } = createSessionTestSetup ( )
26- let testConfig : SessionStateConfig
27-
28- beforeEach ( async ( ) => {
29- testMocks = { }
30- testConfig = await beforeEachFunc ( testMocks , conversationId , uploadId , currentCodeGenerationId )
31- } )
32-
33- afterEach ( ( ) => {
34- sinon . restore ( )
35- } )
21+ const context = createTestContext ( )
22+ setupTestHooks ( context )
3623
3724 describe ( 'MockCodeGenState' , ( ) => {
3825 it ( 'loops forever in the same state' , async ( ) => {
3926 sinon . stub ( crypto , 'randomUUID' ) . returns ( 'upload-id' as ReturnType < ( typeof crypto ) [ 'randomUUID' ] > )
4027 const testAction = createMockSessionStateAction ( )
41- const state = new MockCodeGenState ( testConfig , tabId )
28+ const state = new MockCodeGenState ( context . testConfig , context . tabId )
4229 const result = await state . interact ( testAction )
4330
4431 assert . deepStrictEqual ( result , {
@@ -51,40 +38,52 @@ describe('sessionStateFeatureDev', () => {
5138 describe ( 'FeatureDevPrepareCodeGenState' , ( ) => {
5239 it ( 'error when failing to prepare repo information' , async ( ) => {
5340 sinon . stub ( vscode . workspace , 'findFiles' ) . throws ( )
54- testMocks . createUploadUrl ! . resolves ( { uploadId : '' , uploadUrl : '' } )
41+ context . testMocks . createUploadUrl ! . resolves ( { uploadId : '' , uploadUrl : '' } )
5542 const testAction = createMockSessionStateAction ( )
5643
5744 await assert . rejects ( ( ) => {
58- return new FeatureDevPrepareCodeGenState ( testConfig , [ ] , [ ] , [ ] , tabId , 0 ) . interact ( testAction )
45+ return new FeatureDevPrepareCodeGenState ( context . testConfig , [ ] , [ ] , [ ] , context . tabId , 0 ) . interact (
46+ testAction
47+ )
5948 } )
6049 } )
6150 } )
6251
6352 describe ( 'FeatureDevCodeGenState' , ( ) => {
6453 it ( 'transitions to FeatureDevPrepareCodeGenState when codeGenerationStatus ready ' , async ( ) => {
65- testMocks . getCodeGeneration ! . resolves ( {
54+ context . testMocks . getCodeGeneration ! . resolves ( {
6655 codeGenerationStatus : { status : 'Complete' } ,
6756 codeGenerationRemainingIterationCount : 2 ,
6857 codeGenerationTotalIterationCount : 3 ,
6958 } )
7059
71- testMocks . exportResultArchive ! . resolves ( { newFileContents : [ ] , deletedFiles : [ ] , references : [ ] } )
60+ context . testMocks . exportResultArchive ! . resolves ( { newFileContents : [ ] , deletedFiles : [ ] , references : [ ] } )
7261
7362 const testAction = createMockSessionStateAction ( )
74- const state = new FeatureDevCodeGenState ( testConfig , [ ] , [ ] , [ ] , tabId , 0 , { } , 2 , 3 )
63+ const state = new FeatureDevCodeGenState ( context . testConfig , [ ] , [ ] , [ ] , context . tabId , 0 , { } , 2 , 3 )
7564 const result = await state . interact ( testAction )
7665
77- const nextState = new FeatureDevPrepareCodeGenState ( testConfig , [ ] , [ ] , [ ] , tabId , 1 , 2 , 3 , undefined )
66+ const nextState = new FeatureDevPrepareCodeGenState (
67+ context . testConfig ,
68+ [ ] ,
69+ [ ] ,
70+ [ ] ,
71+ context . tabId ,
72+ 1 ,
73+ 2 ,
74+ 3 ,
75+ undefined
76+ )
7877
7978 assert . deepStrictEqual ( result . nextState ?. deletedFiles , nextState . deletedFiles )
8079 assert . deepStrictEqual ( result . nextState ?. filePaths , result . nextState ?. filePaths )
8180 assert . deepStrictEqual ( result . nextState ?. references , result . nextState ?. references )
8281 } )
8382
8483 it ( 'fails when codeGenerationStatus failed ' , async ( ) => {
85- testMocks . getCodeGeneration ! . rejects ( new ToolkitError ( 'Code generation failed' ) )
84+ context . testMocks . getCodeGeneration ! . rejects ( new ToolkitError ( 'Code generation failed' ) )
8685 const testAction = createMockSessionStateAction ( )
87- const state = new FeatureDevCodeGenState ( testConfig , [ ] , [ ] , [ ] , tabId , 0 , { } )
86+ const state = new FeatureDevCodeGenState ( context . testConfig , [ ] , [ ] , [ ] , context . tabId , 0 , { } )
8887 try {
8988 await state . interact ( testAction )
9089 assert . fail ( 'failed code generations should throw an error' )
0 commit comments