Allow simpler tests for error.code
- 主要言語
- JavaScript
- スター
- 231
- フォーク
- 75
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
#### Support plan
* *is this issue currently blocking your project?* (yes/no): no
* *is this issue affecting a production system?* (yes/no): no
#### Context
* *node version*: any
* *module version*: 8.0.3
* *environment* (e.g. node, browser, native): node
* *used with* (e.g. hapi application, another framework, standalone, ...):
* *any other relevant information*:
#### What problem are you trying to solve?
To test for the `.code` property attached to node errors (instead of `.message`) that are not fixed).
Currently I have to do this manually, eg. for `throw()`:
```js
const Code = require('code');
const expect = Code.expect;
const err = expect(() => process.chdir(42)).to.throw(TypeError);
expect(err).to.contain({ code: 'ERR_INVALID_ARG_TYPE' });
// or as one-liner
expect(expect(() => process.chdir(42)).to.throw(TypeError)).to.contain({ code: 'ERR_INVALID_ARG_TYPE' });
```
#### Do you have a new or modified API suggestion to solve the problem?
Add a third `has` parameter to `throw()` and `reject()`, which takes an `object` which is passed to a `contain()` test. Also make the `message` optional (works since it uses a string and type must be `instanceof Error`). Eg.
```js
expect(() => process.chdir(42)).to.throw(TypeError, { code: 'ERR_INVALID_ARG_TYPE' });
```
コントリビューションガイド
評価
この issue はまだ評価されていません。