Синяя птица Каждая петля в мокко не работает

Я пишу тест, в котором мне нужно перебрать результаты асинхронного вызова API и динамически создать мокко «Свой» для проверки каждой итерации ответа. Я нашел несколько других связанных ответов, которые заставили меня начать. Вот что я пробовал до сих пор.

function getter(uri) {
    return new Promise(function(resolve, reject) {
        request({
            method: 'GET',
            json: true,
            uri: uri
        }, function(error, response, body) {
            if (response.statusCode == 200) {
                resolve(body);
            } else {
                reject(error);
            }
        });
    });
}

describe('This works', function() {
    it('works', function(done) {
        getter('myapi_that_returns_an_array').then(function(r) {
            r.should.not.be.empty;
            done();
        }).catch(function(err) {
            done(err);
        });
    });
});


describe('Why not this one', function() {
    getter('myapi_that_returns_an_array').each(function(r) {
        it('should make a test', function(done) {
            r.should.not.be.empty;
            done();
        });
    });
});

Я пытался просто обернуть простой массив в обещание и передать его на мой тест, и это работает! Поэтому я не могу понять, почему вызываемый мной API-интерфейс не работает так же.

function simple_test() {
    return new Promise(function (resolve, reject) {
        resolve([ [1, 2, 3, 4], [2, 3, 4, 1], [3, 4, 2, 1], [4, 1, 2, 3] ]);
        });
}

describe('But this one works', function() {
    two().each(function(r) {
        it('is a test', function(done) {
            r.should.not.be.empty();
            done();
        });
    });
});

Я попытался добавить тайм-аут в simple_test, чтобы он действовал как вызов API - результат такой же, как вызов API. Есть ли способ сделать это с мокко? Похоже, что описание выполняется перед ожиданием разрешения обещания.

Ответы на вопрос(2)

Ваш ответ на вопрос