У меня есть следующий код модального компонента
angular.module('components')
.component('modal', {
bindings:{
modalInstance: '<',
resolve: '=',
dismiss: '&',
close: '&'
},
controller: controller,
templateUrl: 'template.html'
});
controller.$inject = [];
function controller() {
var ctrl = this;
ctrl.closeModal = closeModal;
ctrl.$onInit = function(){
};
ctrl.modalInstance.rendered.then(function(){
testFunction();
});
}
Чтобы открыть вышеупомянутый модал, я использую
$uibModal.open({
component: 'modal',
backdrop: 'static'
});
Модал работает отлично, но моя проблема в модульном тестировании.Когда я пытаюсь выполнить юнит-тестирование, я получаю
TypeError: undefined is not a function (evaluating 'ctrl.modalInstance.rendered.then
Я пытался протестировать, используя следующий код
var modal = {
rendered: jasmine.createSpy('modal.rendered').and.returnValue({ result: { then: jasmine.createSpy('modal.result.then') } })
};
var injectables = {
};
var bindings = {
modalInstance : modal,
resolve : resolve
};
controller = $componentController('modal', injectables, bindings);
controller.$onInit();