Испытательный корпус по угловой директиве Karma не компилирует HTML

0

Ниже мой directive--

define(['jquery', 'angular'],function($, angular){

    var publishToolSummaryDirective = angular.module('sdm.publishTool.directives').directive('krnPublishToolSummary',
        function($compile){
            return {
                restrict: 'EA',
                templateUrl: "apps/sdm/pages/partials/publishToolSummary.html",
                link : function(scope, element){
                    var elem =$(element);
                    scope.previousComment = "";
                    scope.displayPublishingCommentText = false;
                    scope.displayCommentBox = function(event){
                        event.preventDefault();
                        scope.displayPublishingCommentText = true;
                    };
                    scope.displayCommentLink = function(event){
                        if(event.target.textContent === "cancel"){
                             scope.publishingCommentText = scope.previousComment;

                        }else{
                            scope.previousComment = scope.publishingCommentText;
                        }
                        scope.displayPublishingCommentText = false;
                    }
                }
            }

        });
    return publishToolSummaryDirective;
})

Ниже мой блок Test--

define([
    'apps/sdm/app',
    'angular',
    'jquery',
    'angular-mocks'
], function ($, angular) {
    describe("Unit testing Summary directive", function() {
        angular.mock.module('sdm.publishTool.directives');
        var compile,scope, q,url,elm;
        beforeEach(inject(["$templateCache", "$compile","$rootScope", "$q","$httpBackend",function($templateCache, $compile, $rootScope, $q, $httpBackend) {
            q = $q;
            compile = $compile;
            scope = $rootScope.$new();
            var html='<krn-publish-tool-summary></krn-publish-tool-summary>';
            elm = compile(html)(scope);
            scope.$digest();
            console.log(elm);
        }]));

        it("should compile", function(){
            expect(elm.find('button').length).toEqual(3);
            expect(elm.className).toContain('publishTool-summary');
        });

    })
})

Он не строит шаблон templateURL, упомянутый в директиве. консоль o/p - это

Object{0: <krn-publish-tool-summary class="ng-scope"></krn-publish-tool-summary>, length: 1}

Отчет о покрытии показывает, что он даже не входит в директиву 2-й линии. Любая помощь пожалуйста!

Теги:
karma-jasmine

1 ответ

0

Переменная html не является угловым элементом, поэтому она не дает желаемого результата.


Попробуйте изменить

var html='<krn-publish-tool-summary></krn-publish-tool-summary>';

в

var html=angular.element('<krn-publish-tool-summary></krn-publish-tool-summary>');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню