В моем угловом проекте у меня есть директива, отображающая значок по умолчанию до загрузки настоящего аватара.Угловая загрузка тестового изображения с помощью Jasmine
function avatarDirective(API) {
var DEFAULT_AVATAR = 'img/default-avatar.png';
return {
restrict : 'A',
scope : {
avatarUrl: '='
},
link: linkFunc
};
function linkFunc($scope, $element) {
$element.attr('src', DEFAULT_AVATAR);
$scope.$watch(function() {
return $scope.avatarUrl;
}, _setAvatar);
function _setAvatar() {
if ($scope.avatarUrl) {
var avatar = new Image();
avatar.onload = function() {
$element.attr('src', API.BASE_URL + $scope.avatarUrl);
}
avatar.src = API.BASE_URL + $scope.avatarUrl;
}
}
}
}
Этот код работает правильно, без проблем. Но я не могу проверить его с помощью кармы. Действительно, функция загрузки никогда не срабатывает. Вот мой тест ниже.
it('should set the default avatar if avatar-url is empty', function(done) {
element = angular.element('<img class="img-circle" dod-avatar avatar-url="avatar"/>');
element = $compile(element)($scope);
$scope.avatar = 'img/new-avatar.png';
$scope.$digest();
expect(element.attr('src')).toContain('img/new-avatar.png'); // FAILED
});
Спасибо