$ Rootscope.digest бросает «Нет больше запросов ожидается» в угловой директиве.

StackOverflow https://stackoverflow.com//questions/21003221

  •  20-12-2019
  •  | 
  •  

Вопрос

Я закодировал директиву, которая проверяет некоторые разрешения и удаляет элемент от DOM, если разрешения являются KO.

Я бы с удовольствием удалите ее, но ... подол, я стучу голову, снова снова стены, чтобы сделать эту простую тестовую работу.

Я использую $ rootscope.digest (), чтобы скомпилировать часть HTML.При вызове этой функции угловые пытаются загрузить мою главную страницу приложения, и я получаю страшную ошибку «Нет больше ожидаемой».

Так вот тест:

describe('Unit testing permission-needed', function() {
    var $compile;
    var $rootScope;
    var $httpBackend;

    // Load the myApp module, which contains the directive
    beforeEach(module('app'));

    beforeEach(angular.mock.module('ngMockE2E'));

    beforeEach(inject(function(_$compile_, _$rootScope_, $injector) {
        $compile = _$compile_;
        $rootScope = _$rootScope_;
        $httpBackend = $injector.get('$httpBackend'); // not sur if I can inject it like others services ?
        $httpBackend.whenGET('app/login/login.tpl.html').passThrough(); // this doesn't seem to work

    }));



    it('should replace the element with the appropriate content', function() {



        // Compile a piece of HTML containing the directive
        var element = $compile("<div permission-needed><span>Some content goes here</span></div>")($rootScope);
        $rootScope.$digest(); // BAM => "no more request expected"

        // Do the test here
        // expect(....);
    });
});
.

Обратите внимание, что если я буду использовать . Соответствует («какой-то HTML здесь»); вместо .passthrough () работает.

Спасибо.

Это было полезно?

Решение

Ну, отвечая на себя:

Использование $ new () rootscope, тест проходит:

$rootScope = _$rootScope_.$new();
.

Надеюсь, это поможет кому-то.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top