Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jest - expect(...).toContainEqual is not a function

I am using Jest to test my Node.JS application and when I run my tests, some built-in functions don't work, it seems like they are not defined. For instance, toContainEqual and toBeInstanceOf.

Here is example of my code:

it('should delete DB entry', () => query(url, queryString)
    .then(res => res.json()
    .then(() => db.collection('exercises').find({}).toArray()))
    .then(res => expect(res).toContainEqual(originalExercise)))

And the error I'm getting:

TypeError: expect(...).toContainEqual is not a function

But the other functions (like toEqual, toBeTruthy) work fine though.

I am using Jest v15.1.1 (according to jest -v).

How can I deal with it?

like image 558
serge1peshcoff Avatar asked Dec 25 '22 01:12

serge1peshcoff


1 Answers

toContainEqual and toBeInstanceOf is NOT included in v15.1.1 yet. To use these 2 matchers, you need to install [email protected], or just wait for the next release.

According to the Jest code history, toContainEqual was merged on Sep. 20th (https://github.com/facebook/jest/pull/1706) and toBeInstanceOf was merged on Sep. 7th (https://github.com/facebook/jest/pull/1625). However, v15.1.1 was released on Sep. 2th.

It seems the API page of Jest should be changed, so that un-released API won't be included.

like image 86
shaochuancs Avatar answered Jan 06 '23 16:01

shaochuancs