summaryrefslogtreecommitdiff
path: root/std/testing/asserts_test.ts
diff options
context:
space:
mode:
authorRob Waller <rdwaller1984@gmail.com>2020-06-23 15:47:09 +0100
committerGitHub <noreply@github.com>2020-06-23 10:47:09 -0400
commitd615f0ff82f5b2b530940a21a61e5b4b08b1d1f4 (patch)
tree2a5799e1db71db8a5a9efd5e7ab6e9a14dfde3df /std/testing/asserts_test.ts
parentd2403caa3b009c1db0dbbf172a03983ca1355d70 (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.ts83
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."
+ );
+});