diff --git a/lib/toolrunner-error-catcher.test.js b/lib/toolrunner-error-catcher.test.js index 606679eb4..c4dd64d3b 100644 --- a/lib/toolrunner-error-catcher.test.js +++ b/lib/toolrunner-error-catcher.test.js @@ -23,6 +23,31 @@ ava_1.default("matchers are never applied if non-error exit", async (t) => { t.deepEqual(await exec.exec("node", testArgs), 0); t.deepEqual(await toolrunner_error_catcher_1.toolrunnerErrorCatcher("node", testArgs, matchers), 0); }); +ava_1.default("exit code matching is correctly handled", async (t) => { + const testArgs = buildDummyArgs("foo bar\\nblort qux", "foo bar\\nblort qux", "", 42); + const nonMatchers = [ + { + exitCode: 123, + outputRegex: new RegExp("will not match"), + message: "custom message!", + }, + ]; + await t.throwsAsync(toolrunner_error_catcher_1.toolrunnerErrorCatcher("node", testArgs, nonMatchers), { + instanceOf: Error, + message: "The process 'node' failed with exit code 42", + }); + const matchers = [ + { + exitCode: 42, + outputRegex: new RegExp("will not match"), + message: "custom message!", + }, + ]; + await t.throwsAsync(toolrunner_error_catcher_1.toolrunnerErrorCatcher("node", testArgs, matchers), { + instanceOf: Error, + message: "custom message!", + }); +}); ava_1.default("regex matchers are applied to stdout for non-zero exit code", async (t) => { const testArgs = buildDummyArgs("foo bar\\nblort qux", "", "", 1); const matchers = [ diff --git a/lib/toolrunner-error-catcher.test.js.map b/lib/toolrunner-error-catcher.test.js.map index aad8fddac..1df02092e 100644 --- a/lib/toolrunner-error-catcher.test.js.map +++ b/lib/toolrunner-error-catcher.test.js.map @@ -1 +1 @@ -{"version":3,"file":"toolrunner-error-catcher.test.js","sourceRoot":"","sources":["../src/toolrunner-error-catcher.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"toolrunner-error-catcher.test.js","sourceRoot":"","sources":["../src/toolrunner-error-catcher.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/toolrunner-error-catcher.test.ts b/src/toolrunner-error-catcher.test.ts index 700e01ecc..35d28ead1 100644 --- a/src/toolrunner-error-catcher.test.ts +++ b/src/toolrunner-error-catcher.test.ts @@ -24,6 +24,41 @@ test("matchers are never applied if non-error exit", async (t) => { t.deepEqual(await toolrunnerErrorCatcher("node", testArgs, matchers), 0); }); +test("exit code matching is correctly handled", async (t) => { + const testArgs = buildDummyArgs( + "foo bar\\nblort qux", + "foo bar\\nblort qux", + "", + 42 + ); + + const nonMatchers: ErrorMatcher[] = [ + { + exitCode: 123, + outputRegex: new RegExp("will not match"), + message: "custom message!", + }, + ]; + + await t.throwsAsync(toolrunnerErrorCatcher("node", testArgs, nonMatchers), { + instanceOf: Error, + message: "The process 'node' failed with exit code 42", + }); + + const matchers: ErrorMatcher[] = [ + { + exitCode: 42, + outputRegex: new RegExp("will not match"), + message: "custom message!", + }, + ]; + + await t.throwsAsync(toolrunnerErrorCatcher("node", testArgs, matchers), { + instanceOf: Error, + message: "custom message!", + }); +}); + test("regex matchers are applied to stdout for non-zero exit code", async (t) => { const testArgs = buildDummyArgs("foo bar\\nblort qux", "", "", 1);