Estou começando a utilizar o Karma para testes no AngularJS, configurei o meu arquivo de teste, porém, quando estou começando a utilizar ele encontrei um problema que empaquei, que foi na injeção da classe que quero testar:
- TypeError: undefined is not an object (evaluating '$scope.excluirCorporacao(corporacaoData.id)
no caso as partes importantes do meu spec.js são essas:
beforeEach(inject(function(_$rootScope_, _$controller_, _servicoConstants_, _servicoCorporacoes_) {
$controller = _$controller_;
constants = _servicoConstants_;
servicosCorporacao = _servicoCorporacoes_;
}));
beforeEach(function() {
$scope = {};
corporacaoData = {
id: 8,
nome: 'Ninja das Colinas',
status: 'Ativada e pronto pro combate',
plano: 3,
limiteUsuarios: 50
};
controller = $controller('modalCorporacao', {
$scope: $scope,
corporacao: corporacaoData,
servicosCorporacao: servicosCorporacao
});
});
it('#deve verificar se o serviço de exclusão de corporação foi definido', function() {
expect(servicosCorporacao.excluirCorporacao).toBeDefined();
});
describe('manipular dados da corporacao', function() {
it("#deve excluir uma corporacao, caso ela seja selecionada", function() {
$scope.excluirCorporacao(corporacaoData.id)
.then(function() {
expect($scope.mensagemErro.length).toBe(0);
done();
}).catch(function(e) {
console.log("errou")
done.fail(e);
});
});
});
})
No caso a ideia seria acessar essa clase de exclusão dentro do meu controller.