hapijs / hapijs/code

Allow simpler tests for error.code

オープン
#166 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
feature
主要言語
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 はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。