Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não é possível invocar $service.$parent

Eu tenho o seguinte cenário:

Uma classe de teste cujo objetivo é validar minha diretiva AngularJS...

describe('Directive Spec', function() {

    var $compile, $rootScope, directives;

    beforeEach(module('ui-first', 'ui-first.directive'));

    beforeEach(module(function(_$provide_) {
        _$provide_.value('$commons');
    }));

    beforeEach(inject(function(_$compile_, _$rootScope_) {
        $compile = _$compile_;
        $rootScope = _$rootScope_;
        directive = $compile("<ui-pop-dir></ui-pop-dir>")($rootScope);
        $rootScope.$digest();
    }));

    it('blablabla', function() {...});
});

ui-first é meu modulo e ui-first.directive minha declaração de template no arquivo karma.conf.js.

Na minha diretiva, tenho tenho um $inject para o meu controller...

Controller.$inject = ['$scope', '$commons'];

Dentro do meu $commons, tenho um outro $injector...

var promisseT = $injector.get('promisseT');

Ao executar o teste, falha com o seguinte log:

TypeError: undefined is not an object (evaluating '$commons.$promisseT') (line 34)
Controller@C:/Users/user.user/git/gitlab/src/pop.directive.js:34:33
2 respostas

Andrey, tudo bem ?

Passei sua dúvida para o instrutor ele deve conversar contigo em breve :D

solução!

@Matheus, tudo bom?

Acabei resolvendo o problema. Aparentemente estava injetando e buscando de forma incorreta o meu $promisseT.

Fica como alerta aos próximos que se depararem com um problema parecido, verificar sempre se o que está se tentando injetar, é realmente o esperado. Perdi um bom tempo até associar.

De qualquer forma, também não tive contato por parte do instrutor, mas agradeço a tentativa de apoio.