Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fluffynuts/expect-even-more-jest
expect-more-jest with even more stuff
https://github.com/fluffynuts/expect-even-more-jest
Last synced: 5 days ago
JSON representation
expect-more-jest with even more stuff
- Host: GitHub
- URL: https://github.com/fluffynuts/expect-even-more-jest
- Owner: fluffynuts
- License: bsd-3-clause
- Created: 2020-05-29T14:21:22.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-13T09:06:51.000Z (4 months ago)
- Last Synced: 2024-12-29T20:07:53.015Z (14 days ago)
- Language: TypeScript
- Size: 812 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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);
});
});
```