Я не могу пройти, чтобы покрыть этот кусок кода.
export default function attrFunction($timeout, $parse) {
'ngInject';
return {
restrict: 'A',
link: function($scope, $element, $attrs) {
$timeout(function() {
$element.ready(function() {
$scope.$apply(function() {
var func = $parse($attrs.attrFunction);
func($scope);
});
});
});
}
};
Я получаю успех, но он покрывает до $ timeout (function () '
Мой модульный тест:
fdescribe('Directive,', function() {
beforeEach(
angular.mock.inject(function(_$rootScope_, _$compile_, _$timeout_) {
this.$rootScope = _$rootScope_;
this.$scope = this.$rootScope.$new();
this.$compile = _$compile_;
this.$timeout = _$timeout_;
this.$scope.element = {};
this.compiledElement = this.$compile('<input type="text" ng-model="someNumber" attr-function="function"/>')(this.$scope);
this.$scope.$apply();
}));
it('should add the attribute with function', function() {
expect(this.compiledElement.attr('attr-function')).toEqual('function');
});
});
Я ожидаю от кода добавления атрибута attr-function в поле ввода с функцией для запуска. Как я также могу покрыть остальную часть моего кода?