Address review comments

This commit is contained in:
Angela P Wen
2022-08-11 13:45:26 +02:00
parent 3c4f458a1a
commit 65d6ee0c51
16 changed files with 126 additions and 107 deletions

1
lib/actions-util.js generated
View File

@@ -678,7 +678,6 @@ async function isAnalyzingDefaultBranch() {
} }
exports.isAnalyzingDefaultBranch = isAnalyzingDefaultBranch; exports.isAnalyzingDefaultBranch = isAnalyzingDefaultBranch;
async function printDebugLogs(config) { async function printDebugLogs(config) {
core.info("Debug mode is on. Printing CodeQL debug logs...");
for (const language of config.languages) { for (const language of config.languages) {
const databaseDirectory = (0, util_1.getCodeQLDatabasePath)(config, language); const databaseDirectory = (0, util_1.getCodeQLDatabasePath)(config, language);
const logsDirectory = path.join(databaseDirectory, "log"); const logsDirectory = path.join(databaseDirectory, "log");

File diff suppressed because one or more lines are too long

View File

@@ -47,7 +47,7 @@ async function runWrapper() {
await run(debugArtifacts.uploadSarifDebugArtifact); await run(debugArtifacts.uploadSarifDebugArtifact);
} }
catch (error) { catch (error) {
core.setFailed(`analyze action cleanup failed: ${error}`); core.setFailed(`analyze post-action step failed: ${error}`);
console.log(error); console.log(error);
} }
} }

View File

@@ -1 +1 @@
{"version":3,"file":"analyze-action-post.js","sourceRoot":"","sources":["../src/analyze-action-post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oDAAsC;AAEtC,4DAA8C;AAC9C,iDAA2C;AAC3C,kEAAoD;AACpD,uCAA6C;AAE7C,KAAK,UAAU,GAAG,CAAC,wBAAkC;IACnD,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAS,EAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;KACH;IAED,+CAA+C;IAC/C,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE;QACrB,IAAI,CAAC,IAAI,CACP,oFAAoF,CACrF,CAAC;QACF,MAAM,SAAS,GAAG,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KACnD;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,MAAM,GAAG,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;KACpD;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACpB;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"} {"version":3,"file":"analyze-action-post.js","sourceRoot":"","sources":["../src/analyze-action-post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oDAAsC;AAEtC,4DAA8C;AAC9C,iDAA2C;AAC3C,kEAAoD;AACpD,uCAA6C;AAE7C,KAAK,UAAU,GAAG,CAAC,wBAAkC;IACnD,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAS,EAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;KACH;IAED,+CAA+C;IAC/C,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE;QACrB,IAAI,CAAC,IAAI,CACP,oFAAoF,CACrF,CAAC;QACF,MAAM,SAAS,GAAG,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KACnD;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,MAAM,GAAG,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;KACpD;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACpB;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"}

31
lib/debug-artifacts.js generated
View File

@@ -99,9 +99,9 @@ exports.uploadLogsDebugArtifact = uploadLogsDebugArtifact;
/** /**
* If a database has not been finalized, we cannot run the `codeql database bundle` * If a database has not been finalized, we cannot run the `codeql database bundle`
* command in the CLI because it will return an error. Instead we directly zip * command in the CLI because it will return an error. Instead we directly zip
* all files in the database folder and upload it as an artifact. * all files in the database folder and return the path.
*/ */
async function uploadPartialDatabaseBundle(config, language) { async function createPartialDatabaseBundle(config, language) {
const databasePath = (0, util_1.getCodeQLDatabasePath)(config, language); const databasePath = (0, util_1.getCodeQLDatabasePath)(config, language);
const databaseBundlePath = path.resolve(config.dbLocation, `${config.debugDatabaseName}-${language}-partial.zip`); const databaseBundlePath = path.resolve(config.dbLocation, `${config.debugDatabaseName}-${language}-partial.zip`);
core.info(`${config.debugDatabaseName}-${language} is not finalized. Uploading partial database bundle at ${databaseBundlePath}...`); core.info(`${config.debugDatabaseName}-${language} is not finalized. Uploading partial database bundle at ${databaseBundlePath}...`);
@@ -112,21 +112,30 @@ async function uploadPartialDatabaseBundle(config, language) {
const zip = new adm_zip_1.default(); const zip = new adm_zip_1.default();
zip.addLocalFolder(databasePath); zip.addLocalFolder(databasePath);
zip.writeZip(databaseBundlePath); zip.writeZip(databaseBundlePath);
await uploadDebugArtifacts([databaseBundlePath], config.dbLocation, config.debugArtifactName); return databaseBundlePath;
}
/**
* Runs `codeql database bundle` command and returns the path.
*/
async function createDatabaseBundleCli(config, language) {
// Otherwise run `codeql database bundle` command.
const databaseBundlePath = await (0, util_1.bundleDb)(config, language, await (0, codeql_1.getCodeQL)(config.codeQLCmd), `${config.debugDatabaseName}-${language}`);
return databaseBundlePath;
} }
async function uploadDatabaseBundleDebugArtifact(config, logger) { async function uploadDatabaseBundleDebugArtifact(config, logger) {
for (const language of config.languages) { for (const language of config.languages) {
if (!(0, analyze_1.dbIsFinalized)(config, language, logger)) {
await uploadPartialDatabaseBundle(config, language);
continue;
}
try { try {
// Otherwise run `codeql database bundle` command. let databaseBundlePath;
const bundlePath = await (0, util_1.bundleDb)(config, language, await (0, codeql_1.getCodeQL)(config.codeQLCmd), `${config.debugDatabaseName}-${language}`); if (!(0, analyze_1.dbIsFinalized)(config, language, logger)) {
await uploadDebugArtifacts([bundlePath], config.dbLocation, config.debugArtifactName); databaseBundlePath = await createPartialDatabaseBundle(config, language);
}
else {
databaseBundlePath = await createDatabaseBundleCli(config, language);
}
await uploadDebugArtifacts([databaseBundlePath], config.dbLocation, config.debugArtifactName);
} }
catch (error) { catch (error) {
core.info(`Failed to upload database debug bundles for ${config.debugDatabaseName}-${language}: ${error}`); core.info(`Failed to upload database debug bundle for ${config.debugDatabaseName}-${language}: ${error}`);
} }
} }
} }

View File

@@ -1 +1 @@
{"version":3,"file":"debug-artifacts.js","sourceRoot":"","sources":["../src/debug-artifacts.ts"],"names":[],"mappings":"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"} {"version":3,"file":"debug-artifacts.js","sourceRoot":"","sources":["../src/debug-artifacts.ts"],"names":[],"mappings":"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"}

View File

@@ -48,7 +48,7 @@ async function runWrapper() {
await run(debugArtifacts.uploadDatabaseBundleDebugArtifact, debugArtifacts.uploadLogsDebugArtifact, actionsUtil.printDebugLogs); await run(debugArtifacts.uploadDatabaseBundleDebugArtifact, debugArtifacts.uploadLogsDebugArtifact, actionsUtil.printDebugLogs);
} }
catch (error) { catch (error) {
core.setFailed(`init action cleanup failed: ${error}`); core.setFailed(`init post-action step failed: ${error}`);
console.log(error); console.log(error);
} }
} }

View File

@@ -1 +1 @@
{"version":3,"file":"init-action-post.js","sourceRoot":"","sources":["../src/init-action-post.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAsC;AAEtC,4DAA8C;AAC9C,iDAA2C;AAC3C,kEAAoD;AACpD,uCAA6C;AAE7C,KAAK,UAAU,GAAG,CAChB,iCAA2C,EAC3C,uBAAiC,EACjC,cAAwB;IAExB,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAS,EAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;KACH;IAED,qDAAqD;IACrD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE;QACrB,IAAI,CAAC,IAAI,CACP,mGAAmG,CACpG,CAAC;QACF,MAAM,iCAAiC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;KAC9B;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,MAAM,GAAG,CACP,cAAc,CAAC,iCAAiC,EAChD,cAAc,CAAC,uBAAuB,EACtC,WAAW,CAAC,cAAc,CAC3B,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACpB;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"} {"version":3,"file":"init-action-post.js","sourceRoot":"","sources":["../src/init-action-post.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAsC;AAEtC,4DAA8C;AAC9C,iDAA2C;AAC3C,kEAAoD;AACpD,uCAA6C;AAE7C,KAAK,UAAU,GAAG,CAChB,iCAA2C,EAC3C,uBAAiC,EACjC,cAAwB;IAExB,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAS,EAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;KACH;IAED,qDAAqD;IACrD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE;QACrB,IAAI,CAAC,IAAI,CACP,mGAAmG,CACpG,CAAC;QACF,MAAM,iCAAiC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;KAC9B;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,MAAM,GAAG,CACP,cAAc,CAAC,iCAAiC,EAChD,cAAc,CAAC,uBAAuB,EACtC,WAAW,CAAC,cAAc,CAC3B,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACpB;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"}

62
lib/util.test.js generated
View File

@@ -317,37 +317,37 @@ for (const [version, githubVersion, shouldReportWarning,] of CHECK_ACTION_VERSIO
isActionsStub.restore(); isActionsStub.restore();
}); });
} }
(0, ava_1.default)("doesDirectoryExist", (t) => { (0, ava_1.default)("doesDirectoryExist", async (t) => {
const tmpDir = fs.mkdtempSync(path_1.default.join(os.tmpdir(), "does-dir-exist-")); await util.withTmpDir(async (tmpDir) => {
const topLevelFile = "top-level-test-file.txt"; const topLevelFile = "top-level-test-file.txt";
fs.writeFileSync(topLevelFile, ""); fs.writeFileSync(topLevelFile, "");
fs.writeFileSync(`${tmpDir}/nested-test-file.txt`, ""); fs.writeFileSync(`${tmpDir}/nested-test-file.txt`, "");
// Returns true if directory // Returns true if directory
t.true(util.doesDirectoryExist(tmpDir)); t.true(util.doesDirectoryExist(tmpDir));
// Returns false if file // Returns false if file
t.false(util.doesDirectoryExist(topLevelFile)); t.false(util.doesDirectoryExist(topLevelFile));
// Returns false if no file of this type exists // Returns false if no file of this type exists
t.false(util.doesDirectoryExist("non-existent-file.txt")); t.false(util.doesDirectoryExist("non-existent-file.txt"));
// Clean up test files. });
fs.rmSync(tmpDir, { recursive: true, force: true });
fs.unlinkSync(topLevelFile);
}); });
(0, ava_1.default)("listFolder", (t) => { (0, ava_1.default)("listFolder", async (t) => {
// Returns empty if not a directory await util.withTmpDir(async (tmpDir) => {
t.deepEqual(util.listFolder("not-a-directory"), []); // Returns empty if not a directory
// Returns empty if directory is empty t.deepEqual(util.listFolder("not-a-directory"), []);
const emptyTmpDir = fs.mkdtempSync(path_1.default.join(os.tmpdir(), "list-folder-empty-")); // Returns empty if directory is empty
t.deepEqual(util.listFolder(emptyTmpDir), []); const emptyTmpDir = fs.mkdtempSync(path_1.default.join(os.tmpdir(), "list-folder-empty-"));
fs.rmSync(emptyTmpDir, { recursive: true, force: true }); t.deepEqual(util.listFolder(emptyTmpDir), []);
// Returns all file names in directory fs.rmSync(emptyTmpDir, { recursive: true, force: true });
const tmpDir = fs.mkdtempSync(path_1.default.join(os.tmpdir(), "list-folder-")); // Returns all file names in directory
fs.writeFileSync(`${tmpDir}/test-file-1.txt`, ""); tmpDir = fs.mkdtempSync(path_1.default.join(os.tmpdir(), "list-folder-"));
fs.writeFileSync(`${tmpDir}/test-file-2.txt`, ""); fs.writeFileSync(`${tmpDir}/test-file-1.txt`, "");
fs.writeFileSync(`${tmpDir}/test-file-3.txt`, ""); fs.writeFileSync(`${tmpDir}/test-file-2.txt`, "");
t.deepEqual(util.listFolder(tmpDir), [ fs.writeFileSync(`${tmpDir}/test-file-3.txt`, "");
`${tmpDir}/test-file-1.txt`, t.deepEqual(util.listFolder(tmpDir), [
`${tmpDir}/test-file-2.txt`, `${tmpDir}/test-file-1.txt`,
`${tmpDir}/test-file-3.txt`, `${tmpDir}/test-file-2.txt`,
]); `${tmpDir}/test-file-3.txt`,
]);
});
}); });
//# sourceMappingURL=util.test.js.map //# sourceMappingURL=util.test.js.map

File diff suppressed because one or more lines are too long

View File

@@ -876,7 +876,6 @@ export async function isAnalyzingDefaultBranch(): Promise<boolean> {
} }
export async function printDebugLogs(config: Config) { export async function printDebugLogs(config: Config) {
core.info("Debug mode is on. Printing CodeQL debug logs...");
for (const language of config.languages) { for (const language of config.languages) {
const databaseDirectory = getCodeQLDatabasePath(config, language); const databaseDirectory = getCodeQLDatabasePath(config, language);
const logsDirectory = path.join(databaseDirectory, "log"); const logsDirectory = path.join(databaseDirectory, "log");

View File

@@ -34,7 +34,7 @@ async function runWrapper() {
try { try {
await run(debugArtifacts.uploadSarifDebugArtifact); await run(debugArtifacts.uploadSarifDebugArtifact);
} catch (error) { } catch (error) {
core.setFailed(`analyze action cleanup failed: ${error}`); core.setFailed(`analyze post-action step failed: ${error}`);
console.log(error); console.log(error);
} }
} }

View File

@@ -116,9 +116,12 @@ export async function uploadLogsDebugArtifact(config: Config) {
/** /**
* If a database has not been finalized, we cannot run the `codeql database bundle` * If a database has not been finalized, we cannot run the `codeql database bundle`
* command in the CLI because it will return an error. Instead we directly zip * command in the CLI because it will return an error. Instead we directly zip
* all files in the database folder and upload it as an artifact. * all files in the database folder and return the path.
*/ */
async function uploadPartialDatabaseBundle(config: Config, language: Language) { async function createPartialDatabaseBundle(
config: Config,
language: Language
): Promise<string> {
const databasePath = getCodeQLDatabasePath(config, language); const databasePath = getCodeQLDatabasePath(config, language);
const databaseBundlePath = path.resolve( const databaseBundlePath = path.resolve(
config.dbLocation, config.dbLocation,
@@ -134,11 +137,24 @@ async function uploadPartialDatabaseBundle(config: Config, language: Language) {
const zip = new AdmZip(); const zip = new AdmZip();
zip.addLocalFolder(databasePath); zip.addLocalFolder(databasePath);
zip.writeZip(databaseBundlePath); zip.writeZip(databaseBundlePath);
await uploadDebugArtifacts( return databaseBundlePath;
[databaseBundlePath], }
config.dbLocation,
config.debugArtifactName /**
* Runs `codeql database bundle` command and returns the path.
*/
async function createDatabaseBundleCli(
config: Config,
language: Language
): Promise<string> {
// Otherwise run `codeql database bundle` command.
const databaseBundlePath = await bundleDb(
config,
language,
await getCodeQL(config.codeQLCmd),
`${config.debugDatabaseName}-${language}`
); );
return databaseBundlePath;
} }
export async function uploadDatabaseBundleDebugArtifact( export async function uploadDatabaseBundleDebugArtifact(
@@ -146,26 +162,24 @@ export async function uploadDatabaseBundleDebugArtifact(
logger: Logger logger: Logger
) { ) {
for (const language of config.languages) { for (const language of config.languages) {
if (!dbIsFinalized(config, language, logger)) {
await uploadPartialDatabaseBundle(config, language);
continue;
}
try { try {
// Otherwise run `codeql database bundle` command. let databaseBundlePath;
const bundlePath = await bundleDb( if (!dbIsFinalized(config, language, logger)) {
config, databaseBundlePath = await createPartialDatabaseBundle(
language, config,
await getCodeQL(config.codeQLCmd), language
`${config.debugDatabaseName}-${language}` );
); } else {
databaseBundlePath = await createDatabaseBundleCli(config, language);
}
await uploadDebugArtifacts( await uploadDebugArtifacts(
[bundlePath], [databaseBundlePath],
config.dbLocation, config.dbLocation,
config.debugArtifactName config.debugArtifactName
); );
} catch (error) { } catch (error) {
core.info( core.info(
`Failed to upload database debug bundles for ${config.debugDatabaseName}-${language}: ${error}` `Failed to upload database debug bundle for ${config.debugDatabaseName}-${language}: ${error}`
); );
} }
} }

View File

@@ -45,7 +45,7 @@ async function runWrapper() {
actionsUtil.printDebugLogs actionsUtil.printDebugLogs
); );
} catch (error) { } catch (error) {
core.setFailed(`init action cleanup failed: ${error}`); core.setFailed(`init post-action step failed: ${error}`);
console.log(error); console.log(error);
} }
} }

View File

@@ -442,46 +442,44 @@ for (const [
}); });
} }
test("doesDirectoryExist", (t) => { test("doesDirectoryExist", async (t) => {
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "does-dir-exist-")); await util.withTmpDir(async (tmpDir: string) => {
const topLevelFile = "top-level-test-file.txt";
fs.writeFileSync(topLevelFile, "");
fs.writeFileSync(`${tmpDir}/nested-test-file.txt`, "");
const topLevelFile = "top-level-test-file.txt"; // Returns true if directory
fs.writeFileSync(topLevelFile, ""); t.true(util.doesDirectoryExist(tmpDir));
fs.writeFileSync(`${tmpDir}/nested-test-file.txt`, "");
// Returns true if directory // Returns false if file
t.true(util.doesDirectoryExist(tmpDir)); t.false(util.doesDirectoryExist(topLevelFile));
// Returns false if file // Returns false if no file of this type exists
t.false(util.doesDirectoryExist(topLevelFile)); t.false(util.doesDirectoryExist("non-existent-file.txt"));
});
// Returns false if no file of this type exists
t.false(util.doesDirectoryExist("non-existent-file.txt"));
// Clean up test files.
fs.rmSync(tmpDir, { recursive: true, force: true });
fs.unlinkSync(topLevelFile);
}); });
test("listFolder", (t) => { test("listFolder", async (t) => {
// Returns empty if not a directory await util.withTmpDir(async (tmpDir: string) => {
t.deepEqual(util.listFolder("not-a-directory"), []); // Returns empty if not a directory
t.deepEqual(util.listFolder("not-a-directory"), []);
// Returns empty if directory is empty // Returns empty if directory is empty
const emptyTmpDir = fs.mkdtempSync( const emptyTmpDir = fs.mkdtempSync(
path.join(os.tmpdir(), "list-folder-empty-") path.join(os.tmpdir(), "list-folder-empty-")
); );
t.deepEqual(util.listFolder(emptyTmpDir), []); t.deepEqual(util.listFolder(emptyTmpDir), []);
fs.rmSync(emptyTmpDir, { recursive: true, force: true }); fs.rmSync(emptyTmpDir, { recursive: true, force: true });
// Returns all file names in directory // Returns all file names in directory
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "list-folder-")); tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "list-folder-"));
fs.writeFileSync(`${tmpDir}/test-file-1.txt`, ""); fs.writeFileSync(`${tmpDir}/test-file-1.txt`, "");
fs.writeFileSync(`${tmpDir}/test-file-2.txt`, ""); fs.writeFileSync(`${tmpDir}/test-file-2.txt`, "");
fs.writeFileSync(`${tmpDir}/test-file-3.txt`, ""); fs.writeFileSync(`${tmpDir}/test-file-3.txt`, "");
t.deepEqual(util.listFolder(tmpDir), [ t.deepEqual(util.listFolder(tmpDir), [
`${tmpDir}/test-file-1.txt`, `${tmpDir}/test-file-1.txt`,
`${tmpDir}/test-file-2.txt`, `${tmpDir}/test-file-2.txt`,
`${tmpDir}/test-file-3.txt`, `${tmpDir}/test-file-3.txt`,
]); ]);
});
}); });

0
top-level-test-file.txt Normal file
View File