Пожалуйста, помогите мне понять, что здесь не так:JSDOM не заканчивается
Вот мой JS код (упрощенный выделить минимальный код, необходимый для демонстрации проблемы):
'use strict';
var jsdom = require('jsdom');
describe('desc', function() {
it('should', function() {
function uploadURL(callback) {
jsdom.env({
url: "http://digg.com",
done: function (errors, window) {
console.log("inside");
callback("abc");
}
});
}
uploadURL(function(x){
console.log("returned " + x);
});
});
});
Вот мой Командная строка:
node_modules/mocha/bin/mocha tests/test.js
Когда я бегу выше сценарий, я получаю следующий результат:
desc
✓ should (196ms)
1 passing (204ms)
После того, как я удалить jsdom часть и запустить только часть uploadURL(), который содержит console.log и обратный вызов, я получаю это обратно:
desc
inside
returned abc
✓ should
1 passing (5ms)
Похоже, jsdom части не получают выполняться перед сценарий заканчивается. Почему это и как это можно решить?
Спасибо!
Благодарим за отзыв. К сожалению, я получаю следующую ошибку при попытке вашего предложения: Ошибка: превышен превышение 2000 мс. Убедитесь, что в этом тесте вызывается обратный вызов done(). – Katya
@ Katya: Похоже, что требуется больше 2 секунд, чтобы запросить digg.com и проанализировать результат. Я ожидаю, что где-то есть параметр конфигурации, позволяющий увеличить время ожидания. –
Бинго! :) Добавление обратного вызова и настройка «this.timeout (10000)»; между «описать» и «он» решил проблему. Большое спасибо! – Katya