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 {
@import 'etapas/etapas.scss';
@import 'evaluaciones/evaluaciones.scss';
@import 'evaluacionesCargosEtapas/evaluacionesCargosEtapas.scss';
@import 'gruposConvocatoria/gruposConvocatoria.scss';
@import 'main/main.scss';
@import 'personas/personas.scss';
@import 'postulaciones/postulaciones.scss';
......
'use strict';
describe('Controller: CargosCtrl', function () {
describe('Controller: CargoCtrl', function () {
// load the controller's module
beforeEach(module('moduloPersonalApp'));
var CargosCtrl, scope, cargoService, postulacionService, personaService;
var CargoCtrl, scope, cargoService, postulacionService, personaService;
var cargos = {
"count": 2,
"rows": [
......@@ -38,7 +38,7 @@ describe('Controller: CargosCtrl', function () {
let lstStub = sinon.stub(cargoService, 'getCargos');
lstStub.returns($q.when(cargos));
CargosCtrl = $controller('CargosCtrl', {
CargoCtrl = $controller('CargoCtrl', {
$scope: scope,
cargoService
});
......@@ -46,7 +46,7 @@ describe('Controller: CargosCtrl', function () {
it('Debe obtener cargos paginados', function () {
scope.$digest();
expect(CargosCtrl.totalElementos).to.be.equal(2);
expect(CargosCtrl.cargosLibres.length).to.be.equal(2);
expect(CargoCtrl.totalElementos).to.be.equal(2);
expect(CargoCtrl.cargos.length).to.be.equal(2);
});
});
'use strict';
describe('Controller: CargosConvocatoriasCtrl', function () {
describe('Controller: CargoConvocatoriaCtrl', function () {
// load the controller's module
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
beforeEach(inject(function ($controller, $rootScope) {
beforeEach(inject(function ($controller, $rootScope, _CargoConvocatoriaService_, _ConvocatoriaService_, $q) {
cargoConvocatoriaService = _CargoConvocatoriaService_;
convocatoriaService = _ConvocatoriaService_;
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 () {
expect(1).to.equal(1);
it('Debe obtener cargos asociados a una convocatoria', function () {
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 @@
let parametros = {
pagina: this.paginaActual, elementos: 10, ordenarPor: 'nombre', incluye: [{entidad: 'Persona'}]
};
if (this.cargoId
) {
if (this.cargoId) {
this.cargoService.relacionesLaborales(this.cargoId, parametros)
.then(relacionesLaborales=> {
this.relacionesLaborales = relacionesLaborales;
......@@ -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
.module(
'moduloPersonalApp'
)
.controller(
'RelacionLaboralCtrl'
,
RelacionLaboralController
)
;
angular.module('moduloPersonalApp')
.controller('RelacionLaboralCtrl', RelacionLaboralController);
})();
......@@ -5,17 +5,43 @@ describe('Controller: ContratacionesCtrl', function () {
// load the controller's module
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
beforeEach(inject(function ($controller, $rootScope) {
beforeEach(inject(function ($controller, $rootScope, $q, _cargoService_, $stateParams) {
cargoService = _cargoService_;
scope = $rootScope.$new();
ContratacionesCtrl = $controller('ContratacionesCtrl', {
$scope: scope
$stateParams.cargoId = 10;
let lstStub = sinon.stub(cargoService, 'relacionesLaborales');
lstStub.returns($q.when(relacionesLaborales));
ContratacionesCtrl = $controller('RelacionLaboralCtrl', {
$scope: scope,
cargoService,
$stateParams
});
}));
it('should ...', function () {
expect(1).to.equal(1);
it('Debe retornar las relaciones laborales paginadas', function () {
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 () {
// load the controller's module
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
beforeEach(inject(function ($controller, $rootScope) {
beforeEach(inject(function ($controller, $rootScope, $q, _cargoService_, $stateParams) {
cargoService = _cargoService_;
scope = $rootScope.$new();
ConvocatoriasCtrl = $controller('ConvocatoriasCtrl', {
$scope: scope
$stateParams.cargoId = 2;
let lstStub = sinon.stub(cargoService, 'convocatorias');
lstStub.returns($q.when(convocatorias));
ConvocatoriasCtrl = $controller('ConvocatoriaCtrl', {
$scope: scope,
cargoService,
$stateParams
});
}));
it('should ...', function () {
expect(1).to.equal(1);
it('Debe retornar convocatorias paginadas', function () {
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 () {
// load the controller's module
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
beforeEach(inject(function ($controller, $rootScope) {
beforeEach(inject(function ($controller, $rootScope, $q, _ConvocatoriaService_, $stateParams) {
convocatoriaService = _ConvocatoriaService_;
scope = $rootScope.$new();
EtapasCtrl = $controller('EtapasCtrl', {
$scope: scope
$stateParams.convocatoriaId = 2;
let lstStub = sinon.stub(convocatoriaService, 'etapas');
lstStub.returns($q.when(etapas));
EtapasCtrl = $controller('EtapaCtrl', {
$scope: scope,
convocatoriaService,
$stateParams
});
}));
it('should ...', function () {
expect(1).to.equal(1);
it('Debe retornar etapas paginadas', function () {
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 () {
// load the controller's module
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
beforeEach(inject(function ($controller, $rootScope) {
beforeEach(inject(function ($controller, $rootScope, $q, _ConvocatoriaService_, $stateParams) {
convocatoriaService = _ConvocatoriaService_;
$stateParams.convocatoriaId = 2;
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 () {
expect(1).to.equal(1);
it('Debe retornar evaluaciones paginadas', function () {
scope.$digest();
expect(EvaluacionesCtrl.evaluaciones.count).to.be.equal(2);
expect(EvaluacionesCtrl.evaluaciones.rows.length).to.be.equal(2);
});
});
......@@ -14,12 +14,10 @@
this.service = EvaluacionCargoEtapaService;
this.convocatoriaService = ConvocatoriaService;
this.cargoConvocatoriaService = CargoConvocatoriaService;
this.cargoConvocatoriaService.evaluacionesCargosEtapas(this.cargoConvocatoriaId)
.then(evaluacionCargoEtapa=> {
console.log(evaluacionCargoEtapa);
this.evaluacionesCargosEtapas = evaluacionCargoEtapa;
.then(evaluacionesCargosEtapas=> {
this.evaluacionesCargosEtapas = evaluacionesCargosEtapas;
return this.convocatoriaService.evaluaciones(this.convocatoriaId);
})
.then(evaluaciones=> {
......@@ -28,7 +26,7 @@
})
.then(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=> {
etapa.evaluaciones = this.evaluaciones.rows.filter(
x=> this.evaluacionesCargosEtapas.rows.filter(
......@@ -38,8 +36,6 @@
})
}
guardar() {
var evaluacionesCargosEtapas = [];
this.etapas.rows.forEach(etapa=> {
......
......@@ -5,17 +5,69 @@ describe('Controller: EvaluacionesCargosEtapasCtrl', function () {
// load the controller's module
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
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();
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 () {
expect(1).to.equal(1);
it('debe retornar evaluacionesCargosEtapas, etapas y evaluaciones', function () {
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;
this.convocatoriaId = $stateParams.convocatoriaId;
this.grupoConvocatoriaService = GrupoConvocatoriaService;
this.convocatoriaService = ConvocatoriaService;
this.convocatoriaService.grupos(this.convocatoriaId)
.then(grupos=> {
this.grupos = grupos;
})
}
crear() {
this.modal.open({
templateUrl: 'app/gruposConvocatoria/modals/gruposConvocatoria.modal.html',
controller: 'GrupoConvocatoriaCrearModalCtrl',
controllerAs: 'vm',
resolve: {parametro: {convocatoriaId: this.convocatoriaId, entidadId: this.entidadId}}
}).result.then(grupo=> {
this.alertas.push({
tipo: 'success',
mensaje: 'Se creo correctamente el grupo'
});
this.grupos.rows.push(grupo);
this.grupos.count += 1;
})
}
editar(grupo) {
this.modal.open({
templateUrl: 'app/gruposConvocatoria/modals/gruposConvocatoria.modal.html',
controller: 'GrupoConvocatoriaEditarModalCtrl',
controllerAs: 'vm',
resolve: {
parametro: {grupo: grupo, entidadId: this.entidadId}
}
}).result.then(grupoEditado=> {
this.alertas.push({
tipo: 'success',
mensaje: 'Se edito correctamente el grupo'
});
grupo = Object.assign(grupo, grupoEditado);
})
}
}
angular.module('moduloPersonalApp')
.controller('GrupoConvocatoriaCtrl', GrupoConvocatoriaController);
})();
'use strict';
describe('Controller: GruposConvocatoriaCtrl', function () {
// load the controller's module
beforeEach(module('moduloPersonalApp'));
var GruposConvocatoriaCtrl, scope;
// Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) {
scope = $rootScope.$new();
GruposConvocatoriaCtrl = $controller('GruposConvocatoriaCtrl', {
$scope: scope
});
}));
it('should ...', function () {
expect(1).to.equal(1);
});
});
<div class="container">
<div ui-view></div>
<div ui-view="grupos"></div>
<div ui-view="cargos"></div>
<div ui-view="postulantes"></div>
</div>
'use strict';
angular.module('moduloPersonalApp')
.