Commit 77e8fca2 authored by D’jalmar Gutierrez Titirico's avatar D’jalmar Gutierrez Titirico 🚲

se agregaron los test unitarios a los controladores de evaluacion, etapa, calificacion

parent 841f31cf
...@@ -196,7 +196,6 @@ input[type=checkbox].with-font:checked ~ label:before { ...@@ -196,7 +196,6 @@ input[type=checkbox].with-font:checked ~ label:before {
@import 'etapas/etapas.scss'; @import 'etapas/etapas.scss';
@import 'evaluaciones/evaluaciones.scss'; @import 'evaluaciones/evaluaciones.scss';
@import 'evaluacionesCargosEtapas/evaluacionesCargosEtapas.scss'; @import 'evaluacionesCargosEtapas/evaluacionesCargosEtapas.scss';
@import 'gruposConvocatoria/gruposConvocatoria.scss';
@import 'main/main.scss'; @import 'main/main.scss';
@import 'personas/personas.scss'; @import 'personas/personas.scss';
@import 'postulaciones/postulaciones.scss'; @import 'postulaciones/postulaciones.scss';
......
'use strict'; 'use strict';
describe('Controller: CargosCtrl', function () { describe('Controller: CargoCtrl', function () {
// load the controller's module // load the controller's module
beforeEach(module('moduloPersonalApp')); beforeEach(module('moduloPersonalApp'));
var CargosCtrl, scope, cargoService, postulacionService, personaService; var CargoCtrl, scope, cargoService, postulacionService, personaService;
var cargos = { var cargos = {
"count": 2, "count": 2,
"rows": [ "rows": [
...@@ -38,7 +38,7 @@ describe('Controller: CargosCtrl', function () { ...@@ -38,7 +38,7 @@ describe('Controller: CargosCtrl', function () {
let lstStub = sinon.stub(cargoService, 'getCargos'); let lstStub = sinon.stub(cargoService, 'getCargos');
lstStub.returns($q.when(cargos)); lstStub.returns($q.when(cargos));
CargosCtrl = $controller('CargosCtrl', { CargoCtrl = $controller('CargoCtrl', {
$scope: scope, $scope: scope,
cargoService cargoService
}); });
...@@ -46,7 +46,7 @@ describe('Controller: CargosCtrl', function () { ...@@ -46,7 +46,7 @@ describe('Controller: CargosCtrl', function () {
it('Debe obtener cargos paginados', function () { it('Debe obtener cargos paginados', function () {
scope.$digest(); scope.$digest();
expect(CargosCtrl.totalElementos).to.be.equal(2); expect(CargoCtrl.totalElementos).to.be.equal(2);
expect(CargosCtrl.cargosLibres.length).to.be.equal(2); expect(CargoCtrl.cargos.length).to.be.equal(2);
}); });
}); });
'use strict'; 'use strict';
describe('Controller: CargosConvocatoriasCtrl', function () { describe('Controller: CargoConvocatoriaCtrl', function () {
// load the controller's module // load the controller's module
beforeEach(module('moduloPersonalApp')); beforeEach(module('moduloPersonalApp'));
var CargosConvocatoriasCtrl, scope; var CargosConvocatoriasCtrl, scope, cargoConvocatoriaService, convocatoriaService;
var cargosConvocatorias = {
'count': 2,
'rows': [
{
"_id": 1,
"fk_cargo": 1,
"fk_convocatoria": 2
},
{
"_id": 2,
"fk_cargo": 1,
"fk_convocatoria": 2
}
]
};
// Initialize the controller and a mock scope // Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) { beforeEach(inject(function ($controller, $rootScope, _CargoConvocatoriaService_, _ConvocatoriaService_, $q) {
cargoConvocatoriaService = _CargoConvocatoriaService_;
convocatoriaService = _ConvocatoriaService_;
scope = $rootScope.$new(); scope = $rootScope.$new();
CargosConvocatoriasCtrl = $controller('CargosConvocatoriasCtrl', {
$scope: scope let lstStub = sinon.stub(convocatoriaService, 'cargosConvocatoria');
lstStub.returns($q.when(cargosConvocatorias));
CargosConvocatoriasCtrl = $controller('CargoConvocatoriaCtrl', {
$scope: scope,
convocatoriaService
}); });
})); }));
it('should ...', function () { it('Debe obtener cargos asociados a una convocatoria', function () {
expect(1).to.equal(1); scope.$digest();
expect(CargosConvocatoriasCtrl.cargosConvocatoria.count).to.be.equal(2);
expect(CargosConvocatoriasCtrl.cargosConvocatoria.rows.length).to.be.equal(2);
}); });
}); });
(()=> {
'use strict';
class CargoGrupoService {
constructor($resource, appConfig) {
this.resource = $resource(appConfig.serverAddress + '/api/cargosGrupos/:id', {id: '@_id'}, {
update: {method: 'PUT'},
query: {isArray: false},
save: {
method: 'POST',
isArray: true
}
})
}
guardar(cargoGrupo) {
return this.resource.save(cargoGrupo).$promise;
}
}
angular.module('moduloPersonalApp')
.service('CargoGrupoService', CargoGrupoService);
})();
...@@ -25,8 +25,7 @@ ...@@ -25,8 +25,7 @@
let parametros = { let parametros = {
pagina: this.paginaActual, elementos: 10, ordenarPor: 'nombre', incluye: [{entidad: 'Persona'}] pagina: this.paginaActual, elementos: 10, ordenarPor: 'nombre', incluye: [{entidad: 'Persona'}]
}; };
if (this.cargoId if (this.cargoId) {
) {
this.cargoService.relacionesLaborales(this.cargoId, parametros) this.cargoService.relacionesLaborales(this.cargoId, parametros)
.then(relacionesLaborales=> { .then(relacionesLaborales=> {
this.relacionesLaborales = relacionesLaborales; this.relacionesLaborales = relacionesLaborales;
...@@ -34,56 +33,10 @@ ...@@ -34,56 +33,10 @@
} }
} }
// crear() {
// this.modal.open({
// templateUrl: 'app/convocatorias/modals/convocatorias.modal.html',
// controller: 'ConvocatoriaCrearModalCtrl',
// controllerAs: 'vm',
// resolve: {parametro: {entidadId: this.entidadId}}
// }).result.then(convocatoria=> {
// this.alertas.push({
// tipo: 'success',
// mensaje: 'Se creo correctamente la convocatoria ' + convocatoria.descripcion
// });
// this.convocatorias.rows.push(convocatoria);
// this.convocatorias.count += 1;
// })
// }
//
// editar(convocatoria) {
// this.modal.open({
// templateUrl: 'app/convocatorias/modals/convocatorias.modal.html',
// controller: 'ConvocatoriaEditarModalCtrl',
// controllerAs: 'vm',
// resolve: {parametro: {entidadId: this.entidadId, convocatoria: convocatoria}}
// }).result.then(convocatoria=> {
// this.alertas.push({
// tipo: 'success',
// mensaje: 'Se edito correctamente la convocatoria ' + convocatoria.descripcion
// });
// })
// }
//
// eliminar(convocatoria) {
// this.Modal.confirm.eliminar(convocatoria=> {
// this.service.eliminar(convocatoria._id).then(()=> {
// this.convocatorias.rows.splice(this.convocatorias.rows.indexOf(convocatoria), 1);
// this.alertas.push({tipo: 'danger', mensaje: 'La convocatoria se elimino correctamente'});
// });
// })(convocatoria.descripcion, convocatoria);
// }
} }
angular angular.module('moduloPersonalApp')
.module( .controller('RelacionLaboralCtrl', RelacionLaboralController);
'moduloPersonalApp'
)
.controller(
'RelacionLaboralCtrl'
,
RelacionLaboralController
)
;
})(); })();
...@@ -5,17 +5,43 @@ describe('Controller: ContratacionesCtrl', function () { ...@@ -5,17 +5,43 @@ describe('Controller: ContratacionesCtrl', function () {
// load the controller's module // load the controller's module
beforeEach(module('moduloPersonalApp')); beforeEach(module('moduloPersonalApp'));
var ContratacionesCtrl, scope; var ContratacionesCtrl, scope, cargoService;
var relacionesLaborales = {
'count': 3,
'rows': [
{
fk_persona: 1,
fk_cargo: 1
},
{
fk_persona: 2,
fk_cargo: 2
},
{
fk_persona: 3,
fk_cargo: 4
}
]
};
// Initialize the controller and a mock scope // Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) { beforeEach(inject(function ($controller, $rootScope, $q, _cargoService_, $stateParams) {
cargoService = _cargoService_;
scope = $rootScope.$new(); scope = $rootScope.$new();
ContratacionesCtrl = $controller('ContratacionesCtrl', { $stateParams.cargoId = 10;
$scope: scope let lstStub = sinon.stub(cargoService, 'relacionesLaborales');
lstStub.returns($q.when(relacionesLaborales));
ContratacionesCtrl = $controller('RelacionLaboralCtrl', {
$scope: scope,
cargoService,
$stateParams
}); });
})); }));
it('should ...', function () { it('Debe retornar las relaciones laborales paginadas', function () {
expect(1).to.equal(1); scope.$digest();
expect(ContratacionesCtrl.relacionesLaborales.count).to.be.equal(3);
expect(ContratacionesCtrl.relacionesLaborales.rows.length).to.be.equal(3);
}); });
}); });
...@@ -5,17 +5,38 @@ describe('Controller: ConvocatoriasCtrl', function () { ...@@ -5,17 +5,38 @@ describe('Controller: ConvocatoriasCtrl', function () {
// load the controller's module // load the controller's module
beforeEach(module('moduloPersonalApp')); beforeEach(module('moduloPersonalApp'));
var ConvocatoriasCtrl, scope; var ConvocatoriasCtrl, scope, cargoService;
var convocatorias = {
'count': 2,
'rows': [
{
_id: 2,
nombre: 'Convocatoria 1'
}, {
_id: 3,
nombre: 'Convocatoria 2'
}
]
};
// Initialize the controller and a mock scope // Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) { beforeEach(inject(function ($controller, $rootScope, $q, _cargoService_, $stateParams) {
cargoService = _cargoService_;
scope = $rootScope.$new(); scope = $rootScope.$new();
ConvocatoriasCtrl = $controller('ConvocatoriasCtrl', { $stateParams.cargoId = 2;
$scope: scope let lstStub = sinon.stub(cargoService, 'convocatorias');
lstStub.returns($q.when(convocatorias));
ConvocatoriasCtrl = $controller('ConvocatoriaCtrl', {
$scope: scope,
cargoService,
$stateParams
}); });
})); }));
it('should ...', function () { it('Debe retornar convocatorias paginadas', function () {
expect(1).to.equal(1); scope.$digest();
expect(ConvocatoriasCtrl.convocatorias.count).to.be.equal(2);
expect(ConvocatoriasCtrl.convocatorias.rows.length).to.be.equal(2);
}); });
}); });
...@@ -5,17 +5,37 @@ describe('Controller: EtapasCtrl', function () { ...@@ -5,17 +5,37 @@ describe('Controller: EtapasCtrl', function () {
// load the controller's module // load the controller's module
beforeEach(module('moduloPersonalApp')); beforeEach(module('moduloPersonalApp'));
var EtapasCtrl, scope; var EtapasCtrl, scope, convocatoriaService;
var etapas = {
'count': 2,
'rows': [
{
_id: 2,
nombre: 'etapa 1'
}, {
_id: 3,
nombre: 'etapa 2'
}
]
};
// Initialize the controller and a mock scope // Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) { beforeEach(inject(function ($controller, $rootScope, $q, _ConvocatoriaService_, $stateParams) {
convocatoriaService = _ConvocatoriaService_;
scope = $rootScope.$new(); scope = $rootScope.$new();
EtapasCtrl = $controller('EtapasCtrl', { $stateParams.convocatoriaId = 2;
$scope: scope let lstStub = sinon.stub(convocatoriaService, 'etapas');
lstStub.returns($q.when(etapas));
EtapasCtrl = $controller('EtapaCtrl', {
$scope: scope,
convocatoriaService,
$stateParams
}); });
})); }));
it('should ...', function () { it('Debe retornar etapas paginadas', function () {
expect(1).to.equal(1); scope.$digest();
expect(EtapasCtrl.etapas.count).to.be.equal(2);
expect(EtapasCtrl.etapas.rows.length).to.be.equal(2);
}); });
}); });
...@@ -5,17 +5,38 @@ describe('Controller: EvaluacionesCtrl', function () { ...@@ -5,17 +5,38 @@ describe('Controller: EvaluacionesCtrl', function () {
// load the controller's module // load the controller's module
beforeEach(module('moduloPersonalApp')); beforeEach(module('moduloPersonalApp'));
var EvaluacionesCtrl, scope; var EvaluacionesCtrl, scope, convocatoriaService;
var evaluaciones = {
'count': 2,
'rows': [
{
_id: 1,
nombre: 'Evaluacion 1'
}, {
_id: 2,
nombre: 'Evaluacion 3'
}
]
};
// Initialize the controller and a mock scope // Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) { beforeEach(inject(function ($controller, $rootScope, $q, _ConvocatoriaService_, $stateParams) {
convocatoriaService = _ConvocatoriaService_;
$stateParams.convocatoriaId = 2;
scope = $rootScope.$new(); scope = $rootScope.$new();
EvaluacionesCtrl = $controller('EvaluacionesCtrl', {
$scope: scope let lstStub = sinon.stub(convocatoriaService, 'evaluaciones');
lstStub.returns($q.when(evaluaciones));
EvaluacionesCtrl = $controller('EvaluacionCtrl', {
$scope: scope,
convocatoriaService,
$stateParams
}); });
})); }));
it('should ...', function () { it('Debe retornar evaluaciones paginadas', function () {
expect(1).to.equal(1); scope.$digest();
expect(EvaluacionesCtrl.evaluaciones.count).to.be.equal(2);
expect(EvaluacionesCtrl.evaluaciones.rows.length).to.be.equal(2);
}); });
}); });
...@@ -14,12 +14,10 @@ ...@@ -14,12 +14,10 @@
this.service = EvaluacionCargoEtapaService; this.service = EvaluacionCargoEtapaService;
this.convocatoriaService = ConvocatoriaService; this.convocatoriaService = ConvocatoriaService;
this.cargoConvocatoriaService = CargoConvocatoriaService; this.cargoConvocatoriaService = CargoConvocatoriaService;
this.cargoConvocatoriaService.evaluacionesCargosEtapas(this.cargoConvocatoriaId) this.cargoConvocatoriaService.evaluacionesCargosEtapas(this.cargoConvocatoriaId)
.then(evaluacionCargoEtapa=> { .then(evaluacionesCargosEtapas=> {
console.log(evaluacionCargoEtapa); this.evaluacionesCargosEtapas = evaluacionesCargosEtapas;
this.evaluacionesCargosEtapas = evaluacionCargoEtapa;
return this.convocatoriaService.evaluaciones(this.convocatoriaId); return this.convocatoriaService.evaluaciones(this.convocatoriaId);
}) })
.then(evaluaciones=> { .then(evaluaciones=> {
...@@ -28,7 +26,7 @@ ...@@ -28,7 +26,7 @@
}) })
.then(etapas=> { .then(etapas=> {
this.etapas = etapas; this.etapas = etapas;
this.etapas.rows.sort((a, b)=>a.orden - b.orden) this.etapas.rows.sort((a, b)=>a.orden - b.orden);
this.etapas.rows.forEach(etapa=> { this.etapas.rows.forEach(etapa=> {
etapa.evaluaciones = this.evaluaciones.rows.filter( etapa.evaluaciones = this.evaluaciones.rows.filter(
x=> this.evaluacionesCargosEtapas.rows.filter( x=> this.evaluacionesCargosEtapas.rows.filter(
...@@ -38,8 +36,6 @@ ...@@ -38,8 +36,6 @@
}) })
} }
guardar() { guardar() {
var evaluacionesCargosEtapas = []; var evaluacionesCargosEtapas = [];
this.etapas.rows.forEach(etapa=> { this.etapas.rows.forEach(etapa=> {
......
...@@ -5,17 +5,69 @@ describe('Controller: EvaluacionesCargosEtapasCtrl', function () { ...@@ -5,17 +5,69 @@ describe('Controller: EvaluacionesCargosEtapasCtrl', function () {
// load the controller's module // load the controller's module
beforeEach(module('moduloPersonalApp')); beforeEach(module('moduloPersonalApp'));
var EvaluacionesCargosEtapasCtrl, scope; var EvaluacionesCargosEtapasCtrl, scope, cargoConvocatoriaService, convocatoriaService;
var evaluacionesCargosEtapas = {
'count': 2,
'rows': [
{
_id: 1,
fk_evaluacion: 1,
fk_cargo_convocatoria: 1,
fk_etapa: 1
}, {
_id: 2,
fk_evaluacion: 2,
fk_cargo_convocatoria: 1,
fk_etapa: 1
},
{
_id: 3,
fk_evaluacion: 3,
fk_cargo_convocatoria: 1,
fk_etapa: 2
}
]
};
var etapas = {
'count': 2,
'rows': [
{_id: 1, nombre: 'Etapa 1', orden: 1}, {_id: 2, nombre: 'Etapa 2', orden: 0}
]
};
var evaluaciones = {
'count': 3,
'rows': [
{_id: 1, nombre: 'Evaluacion 1'}, {_id: 2, nombre: 'Evaluacion 2'}, {_id: 3, nombre: 'Evaluacion 3'}
]
};
// Initialize the controller and a mock scope // Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) { beforeEach(inject(function ($controller, $rootScope, $q, _CargoConvocatoriaService_, _ConvocatoriaService_, $stateParams) {
cargoConvocatoriaService = _CargoConvocatoriaService_;
convocatoriaService = _ConvocatoriaService_;
$stateParams.convocatoriaId = 1;
$stateParams.cargoConvocatoriaId = 1;
scope = $rootScope.$new(); scope = $rootScope.$new();
EvaluacionesCargosEtapasCtrl = $controller('EvaluacionesCargosEtapasCtrl', {
$scope: scope let evaluacionesStub = sinon.stub(convocatoriaService, 'evaluaciones');
evaluacionesStub.returns($q.when(evaluaciones));
let etapasStub = sinon.stub(convocatoriaService, 'etapas');
etapasStub.returns($q.when(etapas));
let evaluacionesCargosEtapasStub = sinon.stub(cargoConvocatoriaService, 'evaluacionesCargosEtapas');
evaluacionesCargosEtapasStub.returns($q.when(evaluacionesCargosEtapas));
EvaluacionesCargosEtapasCtrl = $controller('EvaluacionCargoEtapaCtrl', {
$scope: scope,
$stateParams,
cargoConvocatoriaService,
convocatoriaService
}); });
})); }));
it('should ...', function () { it('debe retornar evaluacionesCargosEtapas, etapas y evaluaciones', function () {
expect(1).to.equal(1); scope.$digest();
expect(EvaluacionesCargosEtapasCtrl.etapas.count).to.be.equal(2);
expect(EvaluacionesCargosEtapasCtrl.etapas.rows[0].orden).to.be.equal(0);
expect(EvaluacionesCargosEtapasCtrl.evaluaciones.rows.length).to.be.equal(0);
expect(EvaluacionesCargosEtapasCtrl.etapas.rows[1].evaluaciones.length).to.be.equal(2);
}); });
}); });
(()=> {
'use strict';
class GrupoConvocatoriaEditarController {
constructor($stateParams, $previousState, $uibModal, Modal, GrupoConvocatoriaService) {
this.errores = {}; // lista de errores
this.modal = $uibModal;
this.Modal = Modal;
this.alertas = [];
this.estadoAnterior = $previousState;
this.entidadId = $stateParams.entidadId;
this.convocatoriaId = $stateParams.convocatoriaId;
this.id = $stateParams.grupoId;
this.service = GrupoConvocatoriaService;
this.service.grupoConvocatoria(this.id)
.then(grupoConvocatoria=> {
this.grupoConvocatoria = grupoConvocatoria;
})
}
guardar(form, campo) {
if (form.$valid) {
this.service.editar(this.id, {[campo]: form[campo].$modelValue})
.then(entidad=> {
form[campo].$dirty = false;
this.enviado = false;
this.grupoConvocatoria[campo] = entidad[campo];
})
.catch(err => {
this.errores.other = err.message;
});
}
}
}
angular.module('moduloPersonalApp')
.controller('GrupoConvocatoriaEditarCtrl', GrupoConvocatoriaEditarController);
})();
<div class="container">
<div class="row">
<div class="col-sm-5 col-md-4 col-xs-6">
<h3>Grupo</h3>
</div>
<div class="col-sm-5 col-md-4 col-sm-offset-2">
<div class="pull-right">
<a class="btn btn-default header-button" ng-click="vm.estadoAnterior.go()">
<i class="fa fa-arrow-left"></i>
Regresar
</a>
</div>
</div>
</div>
<uib-alert ng-repeat="alerta in vm.alertas" type="{{alerta.tipo}}" close="vm.alertas.splice($index,1)"
dismiss-on-timeout="3000">{{alerta.mensaje}}
</uib-alert>
<div class="row">
<div class="col-sm-5 col-md-4 col-xs-6">
<h4 class="color-primary">Grupo</h4>
</div>
</div>
<blockquote class="col-md-12 blockquote-primary">
<form class="form" name="form" novalidate>
<div class="row">
<div class="col-md-10">
<label>Descripción</label>
<div class="input-group">
<textarea type="text" name="descripcion" class="form-control" rows="5"
ng-model="vm.grupoConvocatoria.descripcion"
required>
</textarea>
<span class="input-group-addon btn btn-primary-outline" ng-click="vm.guardar(form,'descripcion')"
ng-disabled="!form.descripcion.$dirty">
<i class="fa fa-save"></i>
</span>
</div>
</div>
</div>
<div class="form-group has-error">
<p class="help-block"
ng-show="(form.descripcion.$error.required ) && vm.enviado">
Debe llenar todos los campos
</p>
<p class="help-block">{{ vm.errores.other }}</p>
</div>
</form>
</blockquote>
</div>
(()=> {
'use strict';
class GrupoConvocatoriaController {
constructor($stateParams, $uibModal, Modal, GrupoConvocatoriaService, ConvocatoriaService) {
this.errores = {}; // lista de errores
this.modal = $uibModal;
this.Modal = Modal;
this.alertas = [];
this.entidadId = $stateParams.entidadId;