Я не могу создать тест Jasmine для контроллера (я никогда раньше не использовал jasmine), я не смог найти способ сделать это с помощью контроллера, в котором есть служба, и служба использует http услуги.
AIC-solicitacao.controller.js
(function (angular) {
'use strict';
angular
.module('app.controllers')
.controller('solicitacaoController', solicitacaoController);
solicitacaoController.$inject = ['$scope', '$timeout', 'ambienteIntegracaoContinuaService'];
function solicitacaoController($scope, $timeout, ambienteIntegracaoContinuaService) {
var vm = this;
vm.disabled = true;
function retornoBuild() {
vm.buildId = 'Build solicitado. Acompanhe na aba logs.';
}
function retornoDeploy() {
vm.deployId = 'Deploy solicitado. Acompanhe na aba logs.';
}
function errorBuild(nomeComponent) {
vm.buildId = 'Projeto informado "' + nomeComponent.config.data.componente + '" não existe.';
vm.styleError = true;
}
function errorDeploy(nomeComponent) {
vm.deployId = 'Projeto informado "' + nomeComponent.config.data.componente + '" não existe.';
vm.styleError = true;
}
// solicitação Build
vm.solicitarBuild = function (data) {
vm.disabled = false;
var build = {
componente: data.nomeComponente,
branch: data.branch,
profile: ''
};
ambienteIntegracaoContinuaService.enviarBuild(build).then(retornoBuild, errorBuild);
$timeout(vm.limparSolicitarBuild, 5000);
};
// solicitação Deploy
vm.solicitarDeploy = function (data) {
vm.disabled = false;
var deploy = {
componente: data.nomeComponente,
versao: data.versao,
ambiente: data.ambiente,
responsavel: ''
};
ambienteIntegracaoContinuaService.enviarDeploy(deploy).then(retornoDeploy, errorDeploy);
$timeout(vm.limparSolicitarDeploy, 5000);
};
vm.limparSolicitarBuild = function () {
delete $scope.build;
vm.disabled = true;
$scope.build = {};
vm.buildId = '';
$scope.formBuild.$setPristine();
};
vm.limparSolicitarDeploy = function () {
delete $scope.deploy;
$scope.deploy = {};
vm.deployId = '';
$scope.formDeploy.$setPristine();
};
}
})(angular);
AIC-portal.service.js
(function (angular) {
'use strict';
angular
.module('app.factorys')
.factory('ambienteIntegracaoContinuaService', ambienteIntegracaoContinuaService);
ambienteIntegracaoContinuaService.$inject = ['$http'];
function ambienteIntegracaoContinuaService($http) {
var URI = 'https://aic.desenv.bb.com.br/';
var factory = {
enviarBuild: function (data) {
console.log('parametro enviado para service -> ', data);
return $http.post(URI + 'aic-build/aic-acionamento-build/api/v1/build/execucao', data);
},
listarAmbienteDeploy: function (param) {
return $http.get(URI + 'aic-deploy/aic-acionamento-deploy/api/v1/deploys/ambientes/' + param);
},
enviarDeploy: function (data) {
console.log('parametro enviado para service -> ', data);
return $http.post(URI + 'aic-deploy/aic-acionamento-deploy/api/v1/deploys/execucao', data);
},
usuarioLogado: function () {
return $http.get(URI + 'aic-usuario/aic-usuario-logado/api/v1/dados-usuario-logado');
},
acessoMatricula: function (matricula) {
return $http.get(URI + 'aic-acesso/acessos?matricula=' + matricula);
},
consultaLogBuild: function (siglas) {
console.log('parametro enviado para service -> ', siglas);
return $http.post(URI + 'aic-log/aic-log-esteira/api/v1/build/consulta/log', siglas);
},
consultaLogDeploy: function (siglas) {
console.log('parametro enviado para service -> ', siglas);
return $http.post(URI + 'aic-log/aic-log-esteira/api/v1/deploy/consulta/log', siglas);
},
consultaLogComponente: function (nomeComponente) {
console.log('parametro enviado para service -> ', nomeComponente);
return $http.post(URI + 'aic-log/aic-log-esteira/api/v1/consulta/componente', nomeComponente);
}
};
return factory;
}
})(angular);
Я настроил конфигурацию karma для запуска на PhantomJS и chrome, но я запустил некоторый код на aic-solicitacao.controller-spec.js, но он дал мне много ошибок.
Ошибка, пример:
HeadlessChrome 75.0.3770 (Linux 0.0.0) должен добавить solicitacaoController получить комплексный результат и добавить его в массив результатов FAILED.
Спасибо.