@@ -14,6 +14,7 @@ import { assertTelemetry, createTestWorkspace } from 'aws-core-vscode/test'
1414import { fs , AmazonqCreateUpload } from 'aws-core-vscode/shared'
1515import { Span } from 'aws-core-vscode/telemetry'
1616import sinon from 'sinon'
17+ import { CodeWhispererSettings } from 'aws-core-vscode/codewhisperer'
1718
1819describe ( 'file utils' , ( ) => {
1920 describe ( 'prepareRepoData' , function ( ) {
@@ -56,6 +57,64 @@ describe('file utils', () => {
5657 assertTelemetry ( 'amazonq_bundleExtensionIgnored' , { filenameExt : 'mp4' , count : 1 } )
5758 } )
5859
60+ it ( 'prepareRepoData should ignore devfile.yaml when setting is disabled' , async function ( ) {
61+ const fileAmount = 2
62+ const fileNamePrefix = 'file'
63+ const fileNameSuffix = '.md'
64+ const fileContent = 'test content'
65+
66+ const workspace = await createTestWorkspace ( fileAmount , {
67+ fileNamePrefix,
68+ fileContent,
69+ fileNameSuffix,
70+ additionalFiles : [
71+ {
72+ fileContent : 'test' ,
73+ fileName : 'devfile.yaml' ,
74+ } ,
75+ ] ,
76+ } )
77+
78+ const telemetry = new TelemetryHelper ( )
79+ const result = await prepareRepoData ( [ workspace . uri . fsPath ] , [ workspace ] , telemetry , {
80+ record : ( ) => { } ,
81+ } as unknown as Span < AmazonqCreateUpload > )
82+ assert . strictEqual ( Buffer . isBuffer ( result . zipFileBuffer ) , true )
83+ // checksum is not the same across different test executions because some unique random folder names are generated
84+ assert . strictEqual ( result . zipFileChecksum . length , 44 )
85+ assert . strictEqual ( telemetry . repositorySize , 24 )
86+ } )
87+
88+ it ( 'prepareRepoData should ignore devfile.yaml when setting is enabled' , async function ( ) {
89+ const fileAmount = 2
90+ const fileNamePrefix = 'file'
91+ const fileNameSuffix = '.md'
92+ const fileContent = 'test content'
93+
94+ const workspace = await createTestWorkspace ( fileAmount , {
95+ fileNamePrefix,
96+ fileContent,
97+ fileNameSuffix,
98+ additionalFiles : [
99+ {
100+ fileContent : 'test' ,
101+ fileName : 'devfile.yaml' ,
102+ } ,
103+ ] ,
104+ } )
105+
106+ await CodeWhispererSettings . instance . updateDevCommandWorkspaceConfigurations ( workspace . uri . fsPath , true )
107+ const telemetry = new TelemetryHelper ( )
108+ console . log ( workspace . uri . fsPath )
109+ const result = await prepareRepoData ( [ workspace . uri . fsPath ] , [ workspace ] , telemetry , {
110+ record : ( ) => { } ,
111+ } as unknown as Span < AmazonqCreateUpload > )
112+ assert . strictEqual ( Buffer . isBuffer ( result . zipFileBuffer ) , true )
113+ // checksum is not the same across different test executions because some unique random folder names are generated
114+ assert . strictEqual ( result . zipFileChecksum . length , 44 )
115+ assert . strictEqual ( telemetry . repositorySize , 28 )
116+ } )
117+
59118 // Test the logic that allows the customer to modify root source folder
60119 it ( 'prepareRepoData throws a ContentLengthError code when repo is too big' , async function ( ) {
61120 const workspace = await createTestWorkspace ( 1 , { } )
0 commit comments