deno.land / std@0.224.0 / assert / assert_throws_test.ts
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.import { assert, assertEquals, AssertionError, assertThrows, fail,} from "./mod.ts";
Deno.test("assertThrows() throws when thrown error class does not match expected", () => { assertThrows( () => { //This next assertThrows will throw an AssertionError due to the wrong //expected error class assertThrows( () => { fail("foo"); }, TypeError, "Failed assertion: foo", ); }, AssertionError, `Expected error to be instance of "TypeError", but was "AssertionError"`, );});
Deno.test("assertThrows() changes its return type by parameter", () => { assertThrows(() => { throw new Error(); });});
Deno.test("assertThrows() throws when error class is expected but non-error value is thrown", () => { assertThrows( () => { assertThrows( () => { throw "Panic!"; }, Error, "Panic!", ); }, AssertionError, "A non-Error object was thrown.", );});
Deno.test("assertThrows() matches thrown non-error value", () => { assertThrows( () => { throw "Panic!"; }, ); assertThrows( () => { throw null; }, ); assertThrows( () => { throw undefined; }, );});
Deno.test("assertThrows() matches thrown error with given error class", () => { assertThrows( () => { throw new Error("foo"); }, Error, "foo", );});
Deno.test("assertThrows() matches and returns thrown error value", () => { const error = assertThrows( () => { throw new Error("foo"); }, ); assert(error instanceof Error); assertEquals(error.message, "foo");});
Deno.test("assertThrows() matches and returns thrown non-error", () => { const stringError = assertThrows( () => { throw "Panic!"; }, ); assert(typeof stringError === "string"); assertEquals(stringError, "Panic!");
const numberError = assertThrows( () => { throw 1; }, ); assert(typeof numberError === "number"); assertEquals(numberError, 1);
const nullError = assertThrows( () => { throw null; }, ); assert(nullError === null);
const undefinedError = assertThrows( () => { throw undefined; }, ); assert(typeof undefinedError === "undefined"); assertEquals(undefinedError, undefined);});
Deno.test("assertThrows() matches subclass of expected error", () => { assertThrows( () => { throw new AssertionError("Fail!"); }, Error, "Fail!", );});
Version Info