2014-09-23 1 views
0

У меня есть существующий случай для сортировки kendo, и я пытаюсь проверить функцию подсказки с помощью кармы и жасмина. Любые идеи о том, как эмулировать событие перетаскивания с помощью Kendo Sortable, чтобы вызвать функцию подсказки?Kendo Sortable + Karma: функция проверки единиц измерения

$element.find("#sortable-container").kendoSortable({ 
    axis: "none", 
    cursor: "move", 
    container: "#sortable-container", 
    hint: function (element) { //this is not called and is messing with my karma coverage 
     var elementHint = element.clone(); 

     elementHint.find('[ng-transclude=""]').removeAttr("ng-transclude"); 
     elementHint.find(".hw-closeable").removeClass("hw-closeable"); 

     return elementHint.addClass("sortable-tooltip"); 
    } 
}); 

ответ

0

Для модульных испытаний вызов функции подсказки вручную был достаточно хорошим для меня. Я согласен с тем, что для интеграционных тестов требуется нечто большее.

Мой код выглядит следующим образом:

Директива

angular.module('appSample').directive('sortableDiv', function() { 
    return { 
     restrict: 'A', 
     transclude: true, 
     templateUrl: 'src/widgets/sortable-div/sortable-div.html', 
     controller: function ($scope, $element) { 
      $element.find("#sortable-container").kendoSortable({ 
       axis: "none", 
       cursor: "move", 
       container: "#sortable-container", 
       hint: function (element) { 
        return element.clone().addClass("sortable-tooltip"); 
       } 
      }); 
     } 
    }; 
}); 

ДИРЕКТИВА HTML

<div id="sortable-container" class="row sortable-container" ng-transclude></div> 

Карма Тест

function sortableDiv() { 
    var el = angular.element('<div sortable-div><div id="sort1">Sort me!</div> <div id="sort2">Sort me again!</div></div>'); 

    compile(el)(scope); 

    scope.$digest(); 
    timeout.flush(); 

    return el; 
} 

it('should hint a sortable div', function() { 

    var el = sortableDiv(); 

    var elHint = el.find("#sortable-container").data("kendoSortable").options.hint(el.find("#sort1")); 

    expect(elHint.attr("class")).toContain("sortable-tooltip"); 
});