UNPKG

expect-even-more-jest

Version:
70 lines (55 loc) 2.76 kB
# expect-even-more-jest ![Test](https://github.com/fluffynuts/expect-even-more-jest/workflows/Tests/badge.svg) ![npm](https://img.shields.io/npm/v/expect-even-more-jest) ## What is it? It's [expect-more-jest](https://www.npmjs.com/package/expect-more-jest) with _even more_ stuff! ## Why? Because [expect-more-jest](https://www.npmjs.com/package/expect-more-jest) has most of the things I need, but is missing a few, which I'm not entirely sure would be accepted upstream. This way, I present one package with all the tastiness of [expect-more-jest](https://www.npmjs.com/package/expect-more-jest) _as well as_ all the useful things that _I_ like! ## Ok, so what's in the tin? First, check out what [expect-more-jest supplies](https://www.npmjs.com/package/expect-more-jest#-matchers) Cool, huh? Now, in addition to that, I've added: ```typescript describe(`expect-even-more-jest', () => { it(`makes your tests and output easier to read as well!`, async () => { // values expect(SomeClass).toBeConstructor(); expect(new SomeClass()).toBeA(SomeClass); // syntactic sugar: better flowing expect(new ExcitedThing()).toBeAn(ExcitedThing); // test that a value is not null or undefined expect(someValue).toExist(); // tests matching properties on two objects expect({ foo: 1, bar: 2 }) .toIntersectionEqual({ foo: 1, quux: 2 }); // mocks & spies expect(spyOrMock).toHaveBeenCalledOnce(); expect(spyOrMock).toHaveBeenCalledOnceWith("hello", "world"); // promises // - completed promises have resolved _or_ rejected await expect(Promise.resolve()).toBeCompleted(); await expect(Promise.reject()).toBeCompleted(); // test that a promise resolves within a timeframe (defaults to 50 ms) await expect(Promise.resolve()).toBeResolved("should have resolved", 5000); // test that a promise rejects within a timeframe (defaults to 50 ms) await expect(Promise.reject()).toBeRejected("should have rejected", 123); expect(new Promise(() => {})).toBePromiseLike(); // file system expect(pathToFile).toBeFile(); expect(pathToFolder).toBeFolder(); // collections expect([1, 2, 3 ]).toBeEquivalentTo([ 2, 1, 3]); expect({ foo: 1 }).toHaveKey("foo"); expect({ foo: 1, bar: 2 }).toHaveKeys("foo", "bar"); expect([ 1, 2, 3 ]).toAllMatch(i => i < 4); // performs deep partial equality testing on elements of an array to find // the search object, using jasmine.objectContaining (so you don't need // to match _all_ properties! expect(arrayOfObjects).toContainElementLike(search); }); }); ```