Skip to content

Commit 996625c

Browse files
committed
test: update /dev prepareRepoData unit test to include devfile filtering
1 parent ea5dae5 commit 996625c

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

packages/amazonq/test/unit/amazonqFeatureDev/util/files.test.ts

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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'
1414
import { fs, AmazonqCreateUpload } from 'aws-core-vscode/shared'
1515
import { Span } from 'aws-core-vscode/telemetry'
1616
import 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

1826
describe('file utils', () => {
1927
describe('prepareRepoData', function () {
@@ -56,6 +64,36 @@ describe('file utils', () => {
5664
assertTelemetry('amazonq_bundleExtensionIgnored', { filenameExt: 'mp4', count: 1 })
5765
})
5866

67+
it('should ignore devfile.yaml when setting is disabled', async function () {
68+
const workspace = await getWorkspaceWithDevFile()
69+
sinon.stub(CodeWhispererSettings.instance, 'getDevCommandWorkspaceConfigurations').returns({})
70+
71+
const telemetry = new TelemetryHelper()
72+
const result = await prepareRepoData([workspace.uri.fsPath], [workspace], telemetry, {
73+
record: () => {},
74+
} as unknown as Span<AmazonqCreateUpload>)
75+
assert.strictEqual(Buffer.isBuffer(result.zipFileBuffer), true)
76+
// checksum is not the same across different test executions because some unique random folder names are generated
77+
assert.strictEqual(result.zipFileChecksum.length, 44)
78+
assert.strictEqual(telemetry.repositorySize, 12)
79+
})
80+
81+
it('should include devfile.yaml when setting is enabled', async function () {
82+
const workspace = await getWorkspaceWithDevFile()
83+
sinon.stub(CodeWhispererSettings.instance, 'getDevCommandWorkspaceConfigurations').returns({
84+
[workspace.uri.fsPath]: true,
85+
})
86+
87+
const telemetry = new TelemetryHelper()
88+
const result = await prepareRepoData([workspace.uri.fsPath], [workspace], telemetry, {
89+
record: () => {},
90+
} as unknown as Span<AmazonqCreateUpload>)
91+
assert.strictEqual(Buffer.isBuffer(result.zipFileBuffer), true)
92+
// checksum is not the same across different test executions because some unique random folder names are generated
93+
assert.strictEqual(result.zipFileChecksum.length, 44)
94+
assert.strictEqual(telemetry.repositorySize, 16)
95+
})
96+
5997
// Test the logic that allows the customer to modify root source folder
6098
it('prepareRepoData throws a ContentLengthError code when repo is too big', async function () {
6199
const workspace = await createTestWorkspace(1, {})

0 commit comments

Comments
 (0)