Code Monkey home page Code Monkey logo

Comments (3)

siddharthvp avatar siddharthvp commented on June 10, 2024 6

Having the same issue here.

Code to replicate:

it('test', async () => {
	  function reject42() {
	  	return Promise.reject(42);
	  }
	  await expect(reject42()).to.be.rejectedWith(999);
});
it('test', async () => {
	  function reject42() {
	  	return Promise.reject(42);
	  }
	  await expect(reject42()).to.be.eventually.rejectedWith(999);
});

In both cases test passes rather than fail.

from chai-as-promised.

nilsreichardt avatar nilsreichardt commented on June 10, 2024 1

@masterpandabear But this is only true, if no rejected value is part of the error. Here are some false-positive example:

const mocha = require("mocha");
const chai = require("chai");
const chaiAsPromised = require("chai-as-promised");
chai.use(chaiAsPromised);

it('test 1', async () => {
    function reject42() {
        return Promise.reject(new Error('42'))
    }

    await chai.expect(reject42()).to.eventually.be.rejectedWith('4')
});

it('test 2', async () => {
    function reject42() {
        return Promise.reject(new Error('42'))
    }

    await chai.expect(reject42()).to.eventually.be.rejectedWith('2')
});

Both tests are passing, which is not expected (for me), because it's obvious that 42 != 4 and 42 != 2.

Reproducible source code: https://github.com/nilsreichardt/playground/blob/chai-as-promised-error-message-bug/test/index_test.js

from chai-as-promised.

masterpandabear avatar masterpandabear commented on June 10, 2024

A bit late but I guess this library looks for actual thrown errors for rejected values, for example this fails as expected

    it('test', async () => {
      function reject42 () {
        return Promise.reject(new Error('42'))
      }

      await expect(reject42()).to.eventually.be.rejectedWith('999')
    })

from chai-as-promised.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.