Skip to content

Commit fb56e3d

Browse files
Add support for empty results in getChangedFiles (#37877)
* Add support for empty results in getChangedFiles * Add comment --------- Co-authored-by: Mike Harder <[email protected]>
1 parent 4b21c6d commit fb56e3d

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

.github/shared/src/changed-files.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,11 @@ export async function getChangedFiles(options = {}) {
3333
// filter based on status with a single call to `git diff`.
3434
const result = await simpleGit(cwd).diff(["--name-only", baseCommitish, headCommitish, ...paths]);
3535

36-
const files = result.trim().split("\n");
36+
const files = result
37+
.trim()
38+
.split("\n")
39+
// ignore empty lines (e.g. when no files are changed)
40+
.filter((s) => s.length > 0);
3741
logger?.info("Changed Files:");
3842
for (const file of files) {
3943
logger?.info(` ${file}`);

.github/shared/test/changed-files.test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ describe("changedFiles", () => {
5757
]);
5858
});
5959

60+
it("getChangedFiles returns empty array when no files are changed", async () => {
61+
vi.mocked(simpleGit.simpleGit().diff).mockResolvedValue("");
62+
await expect(getChangedFiles()).resolves.toEqual([]);
63+
expect(simpleGit.simpleGit().diff).toHaveBeenCalledWith(["--name-only", "HEAD^", "HEAD"]);
64+
});
65+
6066
const files = [
6167
"cspell.json",
6268
"cspell.yaml",

0 commit comments

Comments
 (0)