diff options
author | Rob Waller <rdwaller1984@gmail.com> | 2020-06-23 15:47:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-23 10:47:09 -0400 |
commit | d615f0ff82f5b2b530940a21a61e5b4b08b1d1f4 (patch) | |
tree | 2a5799e1db71db8a5a9efd5e7ab6e9a14dfde3df /std/testing/asserts_test.ts | |
parent | d2403caa3b009c1db0dbbf172a03983ca1355d70 (diff) |
fix(std/testing): assertThrows gracefully fails if non-Error thrown (#6330)
Diffstat (limited to 'std/testing/asserts_test.ts')
-rw-r--r-- | std/testing/asserts_test.ts | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/std/testing/asserts_test.ts b/std/testing/asserts_test.ts index 36d054356..8b79ddf8a 100644 --- a/std/testing/asserts_test.ts +++ b/std/testing/asserts_test.ts @@ -409,3 +409,86 @@ Deno.test({ ); }, }); + +Deno.test("Assert Throws Non-Error Fail", () => { + assertThrows( + () => { + assertThrows( + () => { + throw "Panic!"; + }, + String, + "Panic!" + ); + }, + AssertionError, + "A non-Error object was thrown." + ); + + assertThrows( + () => { + assertThrows(() => { + throw null; + }); + }, + AssertionError, + "A non-Error object was thrown." + ); + + assertThrows( + () => { + assertThrows(() => { + throw undefined; + }); + }, + AssertionError, + "A non-Error object was thrown." + ); +}); + +Deno.test("Assert Throws Async Non-Error Fail", () => { + assertThrowsAsync( + () => { + return assertThrowsAsync( + () => { + return Promise.reject("Panic!"); + }, + String, + "Panic!" + ); + }, + AssertionError, + "A non-Error object was thrown or rejected." + ); + + assertThrowsAsync( + () => { + return assertThrowsAsync(() => { + return Promise.reject(null); + }); + }, + AssertionError, + "A non-Error object was thrown or rejected." + ); + + assertThrowsAsync( + () => { + return assertThrowsAsync(() => { + return Promise.reject(undefined); + }); + }, + AssertionError, + "A non-Error object was thrown or rejected." + ); + + assertThrowsAsync( + () => { + return assertThrowsAsync(() => { + throw undefined; + return Promise.resolve("Ok!"); + }); + }, + AssertionError, + "A non-Error object was thrown or rejected." + ); +}); |