@@ -6,6 +6,7 @@ import * as vscode from 'vscode'
66import assert from 'assert'
77import {
88 prepareRepoData ,
9+ PrepareRepoDataOptions ,
910 TelemetryHelper ,
1011 ContentLengthError ,
1112 maxRepoSizeBytes ,
@@ -46,23 +47,23 @@ const testDevfilePrepareRepo = async (devfileEnabled: boolean) => {
4647 . stub ( CodeWhispererSettings . instance , 'getAutoBuildSetting' )
4748 . returns ( devfileEnabled ? { [ workspace . uri . fsPath ] : true } : { } )
4849
49- await testPrepareRepoData ( [ workspace ] , expectedFiles )
50+ await testPrepareRepoData ( [ workspace ] , expectedFiles , { telemetry : new TelemetryHelper ( ) } )
5051}
5152
5253const testPrepareRepoData = async (
5354 workspaces : vscode . WorkspaceFolder [ ] ,
5455 expectedFiles : string [ ] ,
56+ prepareRepoDataOptions : PrepareRepoDataOptions ,
5557 expectedTelemetryMetrics ?: Array < { metricName : MetricName ; value : any } >
5658) => {
5759 expectedFiles . sort ( ( a , b ) => a . localeCompare ( b ) )
58- const telemetry = new TelemetryHelper ( )
5960 const result = await prepareRepoData (
6061 workspaces . map ( ( ws ) => ws . uri . fsPath ) ,
6162 workspaces as CurrentWsFolders ,
62- telemetry ,
6363 {
6464 record : ( ) => { } ,
65- } as unknown as Span < AmazonqCreateUpload >
65+ } as unknown as Span < AmazonqCreateUpload > ,
66+ prepareRepoDataOptions
6667 )
6768
6869 assert . strictEqual ( Buffer . isBuffer ( result . zipFileBuffer ) , true )
@@ -84,6 +85,8 @@ const testPrepareRepoData = async (
8485
8586describe ( 'file utils' , ( ) => {
8687 describe ( 'prepareRepoData' , function ( ) {
88+ const defaultPrepareRepoDataOptions : PrepareRepoDataOptions = { telemetry : new TelemetryHelper ( ) }
89+
8790 afterEach ( ( ) => {
8891 sinon . restore ( )
8992 } )
@@ -92,21 +95,33 @@ describe('file utils', () => {
9295 const folder = await TestFolder . create ( )
9396 await folder . write ( 'file1.md' , 'test content' )
9497 await folder . write ( 'file2.md' , 'test content' )
98+ await folder . write ( 'docs/infra.svg' , 'test content' )
9599 const workspace = getWorkspaceFolder ( folder . path )
96100
97- await testPrepareRepoData ( [ workspace ] , [ 'file1.md' , 'file2.md' ] )
101+ await testPrepareRepoData ( [ workspace ] , [ 'file1.md' , 'file2.md' ] , defaultPrepareRepoDataOptions )
102+ } )
103+
104+ it ( 'infrastructure diagram is included' , async function ( ) {
105+ const folder = await TestFolder . create ( )
106+ await folder . write ( 'file1.md' , 'test content' )
107+ await folder . write ( 'file2.svg' , 'test content' )
108+ await folder . write ( 'docs/infra.svg' , 'test content' )
109+ const workspace = getWorkspaceFolder ( folder . path )
110+
111+ await testPrepareRepoData ( [ workspace ] , [ 'file1.md' , 'docs/infra.svg' ] , {
112+ telemetry : new TelemetryHelper ( ) ,
113+ isIncludeInfraDiagram : true ,
114+ } )
98115 } )
99116
100117 it ( 'prepareRepoData ignores denied file extensions' , async function ( ) {
101118 const folder = await TestFolder . create ( )
102119 await folder . write ( 'file.mp4' , 'test content' )
103120 const workspace = getWorkspaceFolder ( folder . path )
104121
105- await testPrepareRepoData (
106- [ workspace ] ,
107- [ ] ,
108- [ { metricName : 'amazonq_bundleExtensionIgnored' , value : { filenameExt : 'mp4' , count : 1 } } ]
109- )
122+ await testPrepareRepoData ( [ workspace ] , [ ] , defaultPrepareRepoDataOptions , [
123+ { metricName : 'amazonq_bundleExtensionIgnored' , value : { filenameExt : 'mp4' , count : 1 } } ,
124+ ] )
110125 } )
111126
112127 it ( 'should ignore devfile.yaml when setting is disabled' , async function ( ) {
@@ -122,14 +137,18 @@ describe('file utils', () => {
122137 const folder = await TestFolder . create ( )
123138 await folder . write ( 'file.md' , 'test content' )
124139 const workspace = getWorkspaceFolder ( folder . path )
125- const telemetry = new TelemetryHelper ( )
126140
127141 sinon . stub ( fs , 'stat' ) . resolves ( { size : 2 * maxRepoSizeBytes } as vscode . FileStat )
128142 await assert . rejects (
129143 ( ) =>
130- prepareRepoData ( [ workspace . uri . fsPath ] , [ workspace ] , telemetry , {
131- record : ( ) => { } ,
132- } as unknown as Span < AmazonqCreateUpload > ) ,
144+ prepareRepoData (
145+ [ workspace . uri . fsPath ] ,
146+ [ workspace ] ,
147+ {
148+ record : ( ) => { } ,
149+ } as unknown as Span < AmazonqCreateUpload > ,
150+ defaultPrepareRepoDataOptions
151+ ) ,
133152 ContentLengthError
134153 )
135154 } )
@@ -144,7 +163,11 @@ describe('file utils', () => {
144163 const workspace2 = getWorkspaceFolder ( folder . path + '/innerFolder' )
145164 const folderName = path . basename ( folder . path )
146165
147- await testPrepareRepoData ( [ workspace1 , workspace2 ] , [ `${ folderName } _${ workspace1 . name } /${ testFilePath } ` ] )
166+ await testPrepareRepoData (
167+ [ workspace1 , workspace2 ] ,
168+ [ `${ folderName } _${ workspace1 . name } /${ testFilePath } ` ] ,
169+ defaultPrepareRepoDataOptions
170+ )
148171 } )
149172 } )
150173} )
0 commit comments