Skip to content

Commit e47224c

Browse files
committed
feat: dismiss excluseion of gradle-wrapper.jar
1 parent 6c9a107 commit e47224c

2 files changed

Lines changed: 46 additions & 1 deletion

File tree

packages/core/src/shared/utilities/workspaceUtils.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,19 @@ async function filterOutGitignoredFiles(rootPath: string, files: vscode.Uri[]):
305305
getExcludePattern()
306306
)
307307
const gitIgnoreFilter = await GitIgnoreFilter.build(gitIgnoreFiles)
308-
return gitIgnoreFilter.filterFiles(files)
308+
309+
// Filter files based on gitignore rules
310+
const filteredFiles = gitIgnoreFilter.filterFiles(files)
311+
312+
// Find the gradle-wrapper.jar file if it exists
313+
const gradleWrapperJar = files.find((file) => file.path.endsWith('/gradle/wrapper/gradle-wrapper.jar'))
314+
315+
// If gradle-wrapper.jar exists but was filtered out, add it back
316+
if (gradleWrapperJar && !filteredFiles.includes(gradleWrapperJar)) {
317+
filteredFiles.push(gradleWrapperJar)
318+
}
319+
320+
return filteredFiles
309321
}
310322

311323
/**

packages/core/src/testInteg/shared/utilities/workspaceUtils.test.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,39 @@ describe('workspaceUtils', () => {
310310
)
311311
})
312312

313+
it('includes gradle-wrapper.jar even when excluded by gitignore', async function () {
314+
const workspaceFolder = await createTestWorkspaceFolder()
315+
316+
const writeFile = (pathParts: string[], fileContent: string) => {
317+
return toFile(fileContent, path.join(workspaceFolder.uri.fsPath, ...pathParts))
318+
}
319+
320+
sandbox.stub(vscode.workspace, 'workspaceFolders').value([workspaceFolder])
321+
322+
// Create .gitignore file that excludes gradle-wrapper.jar
323+
await writeFile(['.gitignore'], 'gradle/wrapper/gradle-wrapper.jar')
324+
325+
// Create gradle-wrapper.jar
326+
await writeFile(['gradle', 'wrapper', 'gradle-wrapper.jar'], 'gradle wrapper content')
327+
328+
// Create another file that should be excluded
329+
await writeFile(['gradle', 'wrapper', 'excluded-file.txt'], 'excluded content')
330+
331+
const result = await collectFiles([workspaceFolder.uri.fsPath], [workspaceFolder], true)
332+
333+
assert.strictEqual(result.length, 2) // .gitignore and gradle-wrapper.jar
334+
assert.strictEqual(
335+
result.some((file) => file.relativeFilePath === path.join('gradle', 'wrapper', 'gradle-wrapper.jar')),
336+
true,
337+
'gradle-wrapper.jar should be included in the result'
338+
)
339+
assert.strictEqual(
340+
result.some((file) => file.relativeFilePath === path.join('gradle', 'wrapper', 'excluded-file.txt')),
341+
false,
342+
'excluded-file.txt should not be included in the result'
343+
)
344+
})
345+
313346
it('does not return license files', async function () {
314347
const workspace = await createTestWorkspaceFolder()
315348

0 commit comments

Comments
 (0)