diff options
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." + ); +}); |