Skip to content

Commit 42f0bb6

Browse files
committed
test: update /dev prepareRepoData unit test to include devfile filtering
1 parent e23c61d commit 42f0bb6

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

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

Lines changed: 36 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,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

Comments
 (0)