Skip to main content
Deno 2 is finally here 🎉️
Learn more
Go to Latest
The Standard Library has been moved to JSR. See the blog post for details.
function assertRejects
import { assertRejects } from "https://deno.land/std@0.180.0/testing/asserts.ts";

Executes a function which returns a promise, expecting it to reject.

Examples

Example 1

import { assertRejects } from "https://deno.land/std@0.180.0/testing/asserts.ts";

Deno.test("doesThrow", async function () {
  await assertRejects(
    async () => {
      throw new TypeError("hello world!");
    },
  );
  await assertRejects(
    async () => {
      return Promise.reject(new Error());
    },
  );
});

// This test will not pass.
Deno.test("fails", async function () {
  await assertRejects(
    async () => {
      console.log("Hello world");
    },
  );
});

Parameters

fn: () => PromiseLike<unknown>
optional
msg: string

Returns

Promise<unknown>

Executes a function which returns a promise, expecting it to reject. If it does not, then it throws. An error class and a string that should be included in the error message can also be asserted.

Examples

Example 1

import { assertRejects } from "https://deno.land/std@0.180.0/testing/asserts.ts";

Deno.test("doesThrow", async function () {
  await assertRejects(async () => {
    throw new TypeError("hello world!");
  }, TypeError);
  await assertRejects(
    async () => {
      throw new TypeError("hello world!");
    },
    TypeError,
    "hello",
  );
});

// This test will not pass.
Deno.test("fails", async function () {
  await assertRejects(
    async () => {
      console.log("Hello world");
    },
  );
});

Type Parameters

optional
E extends Error = Error

Parameters

fn: () => PromiseLike<unknown>
ErrorClass: new (...args: any[]) => E
optional
msgIncludes: string
optional
msg: string

Returns

Promise<E>