Я пытаюсь использовать Jest для проведения небольшого теста против углового интерфейса, но я получаю таймаут через 5 секунд. Вот мой код:Jest таймауты при попытке тестирования с жасмин-ямой
jest.autoMockOff();
require('../../../../bower_components/angular/angular');
require('../../../../bower_components/angular-mocks/angular-mocks');
window.Event = {};
describe('about', function(){
var mockScope;
pit('updates the view ', function(done){
return runTest()
.then(function(){
var $ = require('../../../../bower_components/jquery/dist/jquery');
expect($("#about-div").text()).toEqual('fred');
});
});
function runTest() {
var q = require('../../../../bower_components/q/q');
var defer = q.defer();
require('../../../../app/scripts/app');
require('../../../../app/scripts/controllers/about');
angular.mock.module('app');
inject(function($rootScope, $controller){
mockScope = $rootScope.$new();
controller = $controller('aboutController', {$scope: mockScope});
});
document.body.innerHTML =
'<html>' +
' <body>' +
' <div ng-controller="aboutController">' +
' <div id="about-div" >{{firstName}}</div>' +
' </div>' +
' </body>' +
'</html>';
setTimeout(function() { defer.resolve(); }, 1000);
return defer.promise;
};
});
Я использую яму, так что я могу иметь 1 секундную задержку, чтобы позволить угловатым обновить представление, но, кажется, что анонимная функция в SetTimeout никогда не вызывается. Обещание не выполняется, и время проверки не соблюдается. Поскольку Jest использует Jasmine 1.3.0, я также пытался использовать run() и waitsFor(), но получаю тот же результат.
Всегда тайм-аут, с бегами и waitsFor тоже. Всегда. Никаких исключений. (по вызовам AJAX) – gbbr