Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lddubeau/expect-rejection
A minimal way to test rejections.
https://github.com/lddubeau/expect-rejection
Last synced: 9 days ago
JSON representation
A minimal way to test rejections.
- Host: GitHub
- URL: https://github.com/lddubeau/expect-rejection
- Owner: lddubeau
- Created: 2019-01-09T13:45:30.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-30T19:04:00.000Z (almost 2 years ago)
- Last Synced: 2024-04-29T22:07:50.230Z (8 months ago)
- Language: TypeScript
- Size: 422 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
A tiny library meant to scratch a personal itch.
If you want to test promise rejections in Chai, you can, but you need
boilerplate. This package provides the boilerplate.Background
==========I've gradually been phasing ``chai-as-promised`` out of my test suites. I used
it a lot and even contributed substantial code to it but the use of
``async/await`` has lessened the need for it, and the direction
``chai-as-promised`` has been taking lately is not to my liking. At this point,
the only thing that ``chai-as-promised`` can concisely do that Chai and
``async/await`` cannot is test rejections.So I've been using boilerplate to test rejections in this test suite, and that
test suite, and that other suite, etc. I'm tired of the code duplication. Hence
this library.Usage
=====Version 2 requires that you FIRST use the ``use`` function **exported by this
library** to link this library with Chai.Then you can call ``expectRejection``. Read the TypeScript code for detailed
documentation about parameters, etc.```
import * as chai from "chai";
import { expectRejection, use } from "expect-rejection";use(chai);
expectRejection(...);
```FAQ
===Q. Why [...] ?
A. An overarching answer to just about any "why..." question is "because this
library is meant to scratch a *personal itch*." Many of my libraries are aiming
to reach a wider audience, but not this one.Q. Why TypeScript? Isn't this too small a library to bother with TS?
A. I'm using TS a lot. So I want a TS definition files but I don't like
maintaining such files manually. So, yeah the source is in TS and I
automatically get definition files from it. You can still use the library with
plain JS if you want.Q. Why not a Chai *plugin*?
A. I cannot be bothered. I've had the experience of dealing with the intricacies
of Chai plugins. I'd rather not revisit. If you want to create a Chai plugin
from this code, have at it.