Skip to content

expect(...).rejects.toThrow() should not be passing for rejected promises. #6558

Closed
@dmaretskyi

Description

Describe the bug

If I correctly understand the behaviour of toThrow from the docs, it should fail when the value passed to expect is not a function; yet, this test passes:

import { test } from 'vitest';

test('expect rejects toThrow', async ({ expect }) => {
  const promise = Promise.reject(new Error('Test'));
  await expect(promise).rejects.toThrow();
});

Reproduction

https://stackblitz.com/edit/vite-ssr-map-sources-csbrts?file=repro.test.js

System Info

System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 18.20.3 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 10.2.3 - /usr/local/bin/npm
    pnpm: 8.15.6 - /usr/local/bin/pnpm
  npmPackages:
    vite: ^5.4.7 => 5.4.7 
    vitest: ^2.1.1 => 2.1.1

Used Package Manager

pnpm

Validations

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationp1-choreDoesn't change code behavior (priority)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions