Skip to content

Commit

Permalink
Add utilities unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Angela P Wen committed Aug 10, 2022
1 parent ff7a29d commit 484a72c
Show file tree
Hide file tree
Showing 9 changed files with 92 additions and 17 deletions.
5 changes: 4 additions & 1 deletion lib/debug-artifacts.test.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/debug-artifacts.test.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions lib/util.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/util.js.map

Large diffs are not rendered by default.

40 changes: 34 additions & 6 deletions lib/util.test.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/util.test.js.map

Large diffs are not rendered by default.

7 changes: 6 additions & 1 deletion src/debug-artifacts.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,9 @@ test("sanitizeArifactName", (t) => {
);
});

// TODO(angelapwen): Test uploadDebugArtifacts if toUpload is empty
test("uploadDebugArtifacts", async (t) => {
// Test that no error is thrown if artifacts list is empty.
await t.notThrowsAsync(
debugArtifacts.uploadDebugArtifacts([], "rootDir", "artifactName")
);
});
45 changes: 39 additions & 6 deletions src/util.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import * as fs from "fs";
import * as os from "os";
import path from "path";
import * as stream from "stream";

import * as core from "@actions/core";
Expand Down Expand Up @@ -440,14 +441,46 @@ for (const [
});
}

// TODO(angelapwen): Test doesDirectoryExist() returns true if directory
test("doesDirectoryExist", (t) => {
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "does-dir-exist-"));

// TODO(angelapwen): Test doesDirectoryExist() returns false if file
const topLevelFile = "top-level-test-file.txt";
fs.writeFileSync(topLevelFile, "");
fs.writeFileSync(`${tmpDir}/nested-test-file.txt`, "");

// TODO(angelapwen): Test doesDirectoryExist() returns false if no file of this type exists
// Returns true if directory
t.true(util.doesDirectoryExist(tmpDir));

// TODO(angelapwen): Test listFolder() returns files in directory
// Returns false if file
t.false(util.doesDirectoryExist(topLevelFile));

// TODO(angelapwen): Test listFolder() returns empty if not a directory
// Returns false if no file of this type exists
t.false(util.doesDirectoryExist("non-existent-file.txt"));

// TODO(angelapwen): Test doesDirectoryExist() returns empty if directory is empty
// Clean up test files.
fs.rmSync(tmpDir, { recursive: true, force: true });
fs.unlinkSync(topLevelFile);
});

test("listFolder", (t) => {
// Returns empty if not a directory
t.deepEqual(util.listFolder("not-a-directory"), []);

// Returns empty if directory is empty
const emptyTmpDir = fs.mkdtempSync(
path.join(os.tmpdir(), "list-folder-empty-")
);
t.deepEqual(util.listFolder(emptyTmpDir), []);
fs.rmSync(emptyTmpDir, { recursive: true, force: true });

// Returns all file names in directory
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "list-folder-"));
fs.writeFileSync(`${tmpDir}/test-file-1.txt`, "");
fs.writeFileSync(`${tmpDir}/test-file-2.txt`, "");
fs.writeFileSync(`${tmpDir}/test-file-3.txt`, "");
t.deepEqual(util.listFolder(tmpDir), [
`${tmpDir}/test-file-1.txt`,
`${tmpDir}/test-file-2.txt`,
`${tmpDir}/test-file-3.txt`,
]);
});
3 changes: 3 additions & 0 deletions src/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -773,6 +773,9 @@ export function doesDirectoryExist(dirPath: string): boolean {
* Returns a list of files in a given directory.
*/
export function listFolder(dir: string): string[] {
if (!doesDirectoryExist(dir)) {
return [];
}
const entries = fs.readdirSync(dir, { withFileTypes: true });
let files: string[] = [];
for (const entry of entries) {
Expand Down

0 comments on commit 484a72c

Please sign in to comment.