Skip to content

Commit 1513753

Browse files
committed
reduce code dupe, merge settings
1 parent c8d957c commit 1513753

File tree

1 file changed

+50
-89
lines changed

1 file changed

+50
-89
lines changed

packages/core/src/test/amazonqFeatureDev/prepareRepoData.test.ts

Lines changed: 50 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -14,99 +14,60 @@ type resultType = {
1414
zipFileChecksum: string
1515
}
1616

17-
describe('prepareRepoData', function () {
18-
describe('Performance Tests', function () {
19-
function verifyResult(result: resultType, telemetry: TelemetryHelper, expectedSize: number): void {
20-
assert.ok(result)
21-
assert.strictEqual(Buffer.isBuffer(result.zipFileBuffer), true)
22-
assert.strictEqual(telemetry.repositorySize, expectedSize)
23-
assert.strictEqual(result.zipFileChecksum.length, 44)
24-
}
25-
/**
26-
* Tests 250 files w/ 10 bytes each.
27-
* Running more files can lead to flaky test from timeout.
28-
*/
29-
performanceTest(
30-
{
31-
testRuns: 10,
32-
linux: {
33-
userCpuUsage: 90,
34-
systemCpuUsage: 35,
35-
heapTotal: 4,
36-
},
37-
darwin: {
38-
userCpuUsage: 90,
39-
systemCpuUsage: 35,
40-
heapTotal: 4,
41-
},
42-
win32: {
43-
userCpuUsage: 90,
44-
systemCpuUsage: 35,
45-
heapTotal: 4,
46-
},
17+
function performanceTestWrapper(numFiles: number, fileSize: number) {
18+
return performanceTest(
19+
{
20+
testRuns: 10,
21+
linux: {
22+
userCpuUsage: 100,
23+
systemCpuUsage: 35,
24+
heapTotal: 4,
4725
},
48-
'handles many files',
49-
function () {
50-
const telemetry = new TelemetryHelper()
51-
return {
52-
setup: async () => {
53-
return await createTestWorkspace(250, {
54-
fileNamePrefix: 'file',
55-
fileContent: '0123456789',
56-
fileNameSuffix: '.md',
57-
})
58-
},
59-
execute: async (workspace: WorkspaceFolder) => {
60-
return await prepareRepoData([workspace.uri.fsPath], [workspace], telemetry, {
61-
record: () => {},
62-
} as unknown as Metric<AmazonqCreateUpload>)
63-
},
64-
verify: async (_w: WorkspaceFolder, result: resultType) => verifyResult(result, telemetry, 2500),
65-
}
66-
}
67-
)
68-
/**
69-
* Runs 10 files of size 1000 bytes.
70-
*/
71-
performanceTest(
72-
{
73-
testRuns: 10,
74-
linux: {
75-
userCpuUsage: 65,
76-
systemCpuUsage: 30,
77-
heapTotal: 1,
26+
darwin: {
27+
userCpuUsage: 100,
28+
systemCpuUsage: 35,
29+
heapTotal: 4,
30+
},
31+
win32: {
32+
userCpuUsage: 100,
33+
systemCpuUsage: 35,
34+
heapTotal: 4,
35+
},
36+
},
37+
`handles ${numFiles} files of size ${fileSize} bytes`,
38+
function () {
39+
const telemetry = new TelemetryHelper()
40+
return {
41+
setup: async () => {
42+
return await createTestWorkspace(numFiles, {
43+
fileNamePrefix: 'file',
44+
fileContent: getRandomString(fileSize),
45+
fileNameSuffix: '.md',
46+
})
7847
},
79-
darwin: {
80-
userCpuUsage: 50,
81-
systemCpuUsage: 25,
82-
heapTotal: 1,
48+
execute: async (workspace: WorkspaceFolder) => {
49+
return await prepareRepoData([workspace.uri.fsPath], [workspace], telemetry, {
50+
record: () => {},
51+
} as unknown as Metric<AmazonqCreateUpload>)
8352
},
84-
win32: {
85-
userCpuUsage: 60,
86-
systemCpuUsage: 30,
87-
heapTotal: 1,
53+
verify: async (_w: WorkspaceFolder, result: resultType) => {
54+
verifyResult(result, telemetry, numFiles * fileSize)
8855
},
89-
},
90-
91-
'handles large files',
92-
function () {
93-
const telemetry = new TelemetryHelper()
94-
return {
95-
setup: async () => {
96-
return await createTestWorkspace(10, {
97-
fileNamePrefix: 'file',
98-
fileContent: getRandomString(1000),
99-
fileNameSuffix: '.md',
100-
})
101-
},
102-
execute: async (workspace: WorkspaceFolder) => {
103-
return await prepareRepoData([workspace.uri.fsPath], [workspace], telemetry, {
104-
record: () => {},
105-
} as unknown as Metric<AmazonqCreateUpload>)
106-
},
107-
verify: async (_w: WorkspaceFolder, result: resultType) => verifyResult(result, telemetry, 10000),
108-
}
10956
}
110-
)
57+
}
58+
)
59+
}
60+
61+
function verifyResult(result: resultType, telemetry: TelemetryHelper, expectedSize: number): void {
62+
assert.ok(result)
63+
assert.strictEqual(Buffer.isBuffer(result.zipFileBuffer), true)
64+
assert.strictEqual(telemetry.repositorySize, expectedSize)
65+
assert.strictEqual(result.zipFileChecksum.length, 44)
66+
}
67+
68+
describe('prepareRepoData', function () {
69+
describe('Performance Tests', function () {
70+
performanceTestWrapper(250, 10)
71+
performanceTestWrapper(10, 1000)
11172
})
11273
})

0 commit comments

Comments
 (0)