У меня есть этот кусок кода на Angular 1. И контрольные примеры, написанные на Karma.Здесь я рассмотрел все строки.Но условие «если» снижает покрытие филиала.Каким-то образом я должен проверить его с условием «ложь».
Не понимаю, как передать константу «после» как неопределенную.
$scope.$on('klresource-bag.drop-model', (event, el, container) => {
const changedIndex = domIndexOf(el[0], container);
const changed = $scope.resources[changedIndex];
const after = $scope.resources[changedIndex - 1];
let afterId = 0;
if (!isUndefined(after)) {
afterId = after.model_resource.id;
}
$scope.$save(() => {
const s = KLResource.sort({
id: changed.model_resource.id,
after: afterId,
}, {});
return s.$promise;
});
});
Вот мой пример модульного теста.
describe('klresource-bag', () => {
it('Checks the event "klresource-bag.drop-model"', () => {
scope.$save = () => {};
spyOn(Array.prototype.indexOf, 'call').and.returnValue(1);
spyOn(scope, '$save').and.callFake(func => func());
spyOn(KLResource, 'sort').and.returnValue({ $promise: {} });
scope.$broadcast('klresource-bag.drop-model', {}, [{}], {});
scope.$apply();
expect(Array.prototype.indexOf.call).toHaveBeenCalled();
expect(scope.$save).toHaveBeenCalledWith(jasmine.any(Function));
expect(KLResource.sort).toHaveBeenCalledWith(jasmine.any(Object), jasmine.any(Object));
});
});
Я попытался установить это в своем модульном тесте, но выдает ошибки:
scope.resources = undefined;