Функции, определенные с помощью async
, возвращают Promise
при вызове. Для Chai есть плагин под названием Chai as Promised, который вы можете использовать для проверки своей функции.
Установить Chai как было обещано от npm:
$ npm install chai-as-promised --save-dev
Подключите его к Chai:
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
var expect = chai.expect;
Затем написать тест для вашей функции асинхронной. Если тестовая среда позволяет возвращать Promise
из теста (как мокко), то сделать это:
const err = new exceptions.InvalidCredentialsError('');
const fn = async function() { throw err; };
return expect(fn()).to.be.rejectedWith(err);
Если тестовая среда не позволяет возвращать Promise
, сделать это вместо того, чтобы:
const err = new exceptions.InvalidCredentialsError('');
const fn = async function() { throw err; };
expect(fn()).to.be.rejectedWith(err).notify(done); // where `done` is the callback
Обратите внимание, что возвращаемое значение функции (a Promise
) передается expect()
, а не самой функции.
whats npm вы используете для тестирования? – IzumiSy