Супертест не возвращает правильный статус

Возникла проблема с получением супертеста для подтверждения правильного ответа о статусе. Что я делаю неправильно?

/// server.js /////
var app = express();

app.get('/', function(req, res) {
    res.status(200).json({ message: 'v1.0' });
});


// test.js ////
it('should fail but passes', function(done) {
    request
        .get('/')
        .expect(500, done);
});

person Justin Young    schedule 02.03.2017    source источник
comment
вы смотрели на ко-мокко? Я использую его для тестирования обещаний. npmjs.com/package/co-mocha   -  person Andy Macleod    schedule 03.03.2017
comment
@AndyMacleod Я на самом деле использую жасмин   -  person Justin Young    schedule 03.03.2017


Ответы (1)


Оказывается, это было связано с использованием жасмина. По-видимому, функция done() в jasmine заменяет функцию done в супертесте, поэтому вам нужно обрабатывать ошибку в методе end().

https://github.com/jasmine/jasmine-npm/issues/31

it('should fail & does', function(done) {
    request
        .get('/doesNotExist')
        .expect(200)
        .end(function(err, res) {
            if (err) {
                done.fail(err);
            } else {
                done();
            }
        });
});
person Justin Young    schedule 03.03.2017