Search code examples
javascriptjestjschai

Testing truthy / falsy values with assert/expect


when I write tests I often use such constructions with assert

 try {
   await asyncFunction(); // expect error
   assert(false) // to make 100% fail
 } catch (err) {
   assert(err) // means 'assert(true) 
 }

Now I need to use "expect" from chai lib and I don't know how to write exactly the same test with 'expect' syntax


Solution

  • You might try

    expect.fail("This should've not happenned");
    

    or another "more readable" alternative

    should.fail("This should've not happenned");
    

    Chai docs

    In this section looks like there is a cool idiomatic way to perform what you want:

    const action = function() { yourSyncFunction() }
    expect(action).to.throw(YourError)
    

    And here there's the DSL for testing promises. (You need to install the "As promised" plugin)

    yourAsyncFunction().should.be.rejectedWith(Error)