У меня есть контроллер, который излучает широковещательное событие на корнеплодах. Я хотел бы проверить, что событие broacast запущено правильно.
Мой код в моем контроллере выглядит следующим образом:
$scope.$watch("pageIndex", function(){
if($scope.pageIndex == 4)
{
// emit social share
$rootScope.$broadcast('myEvent');
}
});
Я попытался проверить его следующим кодом:
it('Should call myEvent when pageIndex is 4',function(){
scope.pageIndex = 4;
scope.$apply();
expect(rootScope.$on).toHaveBeenCalledWith('myEvent');
});
Но он говорит мне, что код не вызывается, который я проверил вручную, что он делает. Затем я попытался использовать следующий код:
it('Should call myEvent when pageIndex is 4',function(){
var listener = jasmine.createSpy('listener');
rootScope.$on('myEvent', listener);
scope.pageIndex = 4;
scope.$apply();
expect(listener).toHaveBeenCalled();
});
Но с тем же отрицательным результатом. Есть ли способ проверить, что событие транслируется?