@@ -10,10 +10,18 @@ import {
1010 ContentLengthError ,
1111 maxRepoSizeBytes ,
1212} from 'aws-core-vscode/amazonqFeatureDev'
13- import { assertTelemetry , createTestWorkspace } from 'aws-core-vscode/test'
13+ import { assertTelemetry , createTestWorkspace , getWorkspaceFolder , TestFolder } 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'
18+
19+ const getWorkspaceWithDevFile = async ( ) => {
20+ const folder = await TestFolder . create ( )
21+ await folder . write ( 'devfile.yaml' , 'test' )
22+ await folder . write ( 'file.md' , 'test content' )
23+ return getWorkspaceFolder ( folder . path )
24+ }
1725
1826describe ( 'file utils' , ( ) => {
1927 describe ( 'prepareRepoData' , function ( ) {
@@ -56,6 +64,33 @@ describe('file utils', () => {
5664 assertTelemetry ( 'amazonq_bundleExtensionIgnored' , { filenameExt : 'mp4' , count : 1 } )
5765 } )
5866
67+ it ( 'prepareRepoData should ignore devfile.yaml when setting is disabled' , async function ( ) {
68+ const workspace = await getWorkspaceWithDevFile ( )
69+
70+ const telemetry = new TelemetryHelper ( )
71+ const result = await prepareRepoData ( [ workspace . uri . fsPath ] , [ workspace ] , telemetry , {
72+ record : ( ) => { } ,
73+ } as unknown as Span < AmazonqCreateUpload > )
74+ assert . strictEqual ( Buffer . isBuffer ( result . zipFileBuffer ) , true )
75+ // checksum is not the same across different test executions because some unique random folder names are generated
76+ assert . strictEqual ( result . zipFileChecksum . length , 44 )
77+ assert . strictEqual ( telemetry . repositorySize , 12 )
78+ } )
79+
80+ it ( 'prepareRepoData should ignore devfile.yaml when setting is enabled' , async function ( ) {
81+ const workspace = await getWorkspaceWithDevFile ( )
82+ await CodeWhispererSettings . instance . updateDevCommandWorkspaceConfigurations ( workspace . uri . fsPath , true )
83+
84+ const telemetry = new TelemetryHelper ( )
85+ const result = await prepareRepoData ( [ workspace . uri . fsPath ] , [ workspace ] , telemetry , {
86+ record : ( ) => { } ,
87+ } as unknown as Span < AmazonqCreateUpload > )
88+ assert . strictEqual ( Buffer . isBuffer ( result . zipFileBuffer ) , true )
89+ // checksum is not the same across different test executions because some unique random folder names are generated
90+ assert . strictEqual ( result . zipFileChecksum . length , 44 )
91+ assert . strictEqual ( telemetry . repositorySize , 16 )
92+ } )
93+
5994 // Test the logic that allows the customer to modify root source folder
6095 it ( 'prepareRepoData throws a ContentLengthError code when repo is too big' , async function ( ) {
6196 const workspace = await createTestWorkspace ( 1 , { } )
0 commit comments