hapijs / hapijs/code

Allow simpler tests for error.code

Aperta
#166 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
feature
Lingua principale
JavaScript
Stelle
231
Fork
75
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

#### 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' });
```

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.