From 2549988554fd4afebe60ea7de80be6b19678a30c Mon Sep 17 00:00:00 2001 From: efernandez Date: Mon, 11 Feb 2019 10:29:00 -0300 Subject: [PATCH] archivos spec --- spec/controllerSpec.js | 304 +++++++++++++++++++++++++++++++++++++++++++++++++ spec/routeSpec.js | 27 +++++ spec/serviceSpec.js | 175 ++++++++++++++++++++++++++++ test.html | 21 ++++ 4 files changed, 527 insertions(+) create mode 100644 spec/controllerSpec.js create mode 100644 spec/routeSpec.js create mode 100644 spec/serviceSpec.js create mode 100644 test.html diff --git a/spec/controllerSpec.js b/spec/controllerSpec.js new file mode 100644 index 0000000..a519627 --- /dev/null +++ b/spec/controllerSpec.js @@ -0,0 +1,304 @@ +describe('Controladores de abm chofer', function() { + + var $controller; + + beforeEach(function() { + module('focaAbmChofer'); + inject(function(_$controller_) { + $controller = _$controller_; + }); + }); + + describe('Controlador focaAbmChoferesController', function() { + + it('Existe el controlador focaAbmChoferesController', function() { + //arrange + var controlador = $controller('focaAbmChoferesController', { + $scope: {}, + focaAbmChoferService: { + transportistaSeleccionado: function() { return; } + }, + $location: {}, + $uibModal: {}, + focaModalService: {}, + focaBotoneraLateralService: {}, + $timeout: function() { return; } + }); + + //assert + expect(typeof controlador).toEqual('object'); + }); + + it('$scope.solicitarConfirmacion levanta modal de confirmacion', function() { + //arrange + var fakeParam = ''; + var scope = {}; + var focaModalService = { + confirm: function() { } + }; + var controlador = $controller('focaAbmChoferesController', { + $scope: scope, + focaAbmChoferService: { + transportistaSeleccionado: function() { return; } + }, + $location: {}, + $uibModal: {}, + focaModalService: focaModalService, + focaBotoneraLateralService: {}, + $timeout: function() { return; } + }); + console.info(controlador); + + //act + spyOn(focaModalService, 'confirm').and.returnValue({ then: function() { }}); + scope.solicitarConfirmacion(fakeParam); + + //assert + expect(focaModalService.confirm).toHaveBeenCalled(); + }); + + it('$scope.solicitarConfirmacion elimina al confirmar', function(done) { + //arrange + var scope = {}; + var focaModalService = { + confirm: function() { + return { + then: function() { } + }; + } + }; + var focaAbmChoferService = { + transportistaSeleccionado: function() { return; }, + deleteChofer: function() { } + }; + var controlador = $controller('focaAbmChoferesController', { + $scope: scope, + focaAbmChoferService: focaAbmChoferService, + $location: {}, + $uibModal: {}, + focaModalService: focaModalService, + focaBotoneraLateralService: {}, + $timeout: function() { return; } + }); + console.info(controlador); + var fakeParam = ''; + var promesa = Promise.resolve(true); + + //act + spyOn(focaModalService, 'confirm').and.returnValue(promesa); + spyOn(focaAbmChoferService, 'deleteChofer'); + scope.solicitarConfirmacion(fakeParam); + + //assert + promesa.then(function() { + expect(focaAbmChoferService.deleteChofer).toHaveBeenCalled(); + done(); + }); + }); + + it('$scope.seleccionarTransportista levanta modal', function() { + //arrange + var scope = {}; + var focaModalService = { + modal: function() { } + }; + var controlador = $controller('focaAbmChoferesController', { + $scope: scope, + focaAbmChoferService: { + transportistaSeleccionado: function() { } + }, + $location: {}, + $uibModal: {}, + focaModalService: focaModalService, + focaBotoneraLateralService: {}, + $timeout: function() { return; } + }); + console.info(controlador); + + //act + spyOn(focaModalService, 'modal').and.returnValue({ then: function() { }}); + scope.seleccionarTransportista(); + + //assert + expect(focaModalService.modal).toHaveBeenCalled(); + }); + }); + + describe('Controlador focaAbmChoferController', function() { + + it('Existe el controlador focaAbmChoferController', function() { + //arrange + var controlador = $controller('focaAbmChoferController', { + $scope: {}, + focaAbmChoferService: { + getTiposDocumento: function() { + return { + then: function() { } + }; + }, + getChofer: function() { + return { + then: function() { } + }; + }, + getTransportistas: function() { + return { + then: function() { } + }; + } + }, + $routeParams: {}, + $location: {}, + focaBotoneraLateralService: {}, + $timeout: function() { return; }, + focaModalService: {} + }); + + //assert + expect(typeof controlador).toEqual('object'); + }); + + it('$scope.cancelar lleva a la ruta correcta', function() { + inject(function($location) { + //arrange + var scope = {}; + var controlador = $controller('focaAbmChoferController', { + $scope: scope, + focaAbmChoferService: { + getTiposDocumento: function() { + return { + then: function() { } + }; + }, + getChofer: function() { + return { + then: function() { } + }; + }, + getTransportistas: function() { + return { + then: function() { } + }; + } + }, + $routeParams: {}, + $location: $location, + focaBotoneraLateralService: {}, + $timeout: function() { return; }, + focaModalService: {} + }); + console.info(controlador); + + //act + scope.cancelar(); + + //assert + expect($location.url()).toEqual('/chofer'); + }); + }); + + it('$scope.guardar guarda chofer al validarDNI() da ok', function(done) { + + //arrange + var scope = {}; + var focaAbmChoferService = { + getTiposDocumento: function() { + return { + then: function() { } + }; + }, + getChofer: function() { + return { + then: function() { } + }; + }, + getTransportistas: function() { + return { + then: function() { } + }; + }, + guardarChofer: function() { }, + getChoferPorDni: function() { } + }; + var controlador = $controller('focaAbmChoferController', { + $scope: scope, + focaAbmChoferService: focaAbmChoferService, + $routeParams: {}, + $location: {}, + focaBotoneraLateralService: {}, + $timeout: function() { return; }, + focaModalService: {} + }); + console.info(controlador); + var resolveFake = { data: false }; + var promesaChoferPorDni = Promise.resolve(resolveFake); + + //act + spyOn(focaAbmChoferService, 'guardarChofer').and.returnValue({ then: function() { }}); + spyOn(focaAbmChoferService, 'getChoferPorDni').and.returnValue(promesaChoferPorDni); + scope.guardar(13); + + //assert + promesaChoferPorDni.then(function() { + setTimeout(function() { + expect(focaAbmChoferService.guardarChofer).toHaveBeenCalled(); + done(); + }); + }); + }); + + it('$scope.guardar da alerta chofer al validarDNI() da reject', function(done) { + + //arrange + var scope = {}; + var focaModalService = { + alert: function() { } + }; + var focaAbmChoferService = { + getTiposDocumento: function() { + return { + then: function() { } + }; + }, + getChofer: function() { + return { + then: function() { } + }; + }, + getTransportistas: function() { + return { + then: function() { } + }; + }, + getChoferPorDni: function() { } + }; + var controlador = $controller('focaAbmChoferController', { + $scope: scope, + focaAbmChoferService: focaAbmChoferService, + $routeParams: {}, + $location: {}, + focaBotoneraLateralService: {}, + $timeout: function() { return; }, + focaModalService: focaModalService + }); + console.info(controlador); + var resolveFake = { data: { id: true } }; + var promesaChoferPorDni = Promise.resolve(resolveFake); + + //act + spyOn(focaAbmChoferService, 'getChoferPorDni').and.returnValue(promesaChoferPorDni); + spyOn(focaModalService, 'alert'); + scope.chofer.id = 'dato prueba'; + scope.guardar(13); + + //assert + promesaChoferPorDni.then(function() { + //await sleep(100); + setTimeout(function() { + expect(focaModalService.alert).toHaveBeenCalled(); + done(); + }); + }); + }); + }); +}); diff --git a/spec/routeSpec.js b/spec/routeSpec.js new file mode 100644 index 0000000..ed6281e --- /dev/null +++ b/spec/routeSpec.js @@ -0,0 +1,27 @@ +describe('Rutas abm chofer', function() { + + var route; + + beforeEach(function() { + module('focaAbmChofer'); + inject(function($route) { + route = $route; + }); + }); + + it('ruta /chofer redirecciona correctamente', function() { + //assert + expect(route.routes['/chofer'].controller) + .toBe('focaAbmChoferesController'); + expect(route.routes['/chofer'].templateUrl) + .toBe('src/views/foca-abm-choferes-listado.html'); + }); + + it('ruta /chofer/:id/:idTransportista redirecciona correctamente', function() { + //assert + expect(route.routes['/chofer/:id/:idTransportista'].controller) + .toBe('focaAbmChoferController'); + expect(route.routes['/chofer/:id/:idTransportista'].templateUrl) + .toBe('src/views/foca-abm-choferes-item.html'); + }); +}); diff --git a/spec/serviceSpec.js b/spec/serviceSpec.js new file mode 100644 index 0000000..31955db --- /dev/null +++ b/spec/serviceSpec.js @@ -0,0 +1,175 @@ +describe('Servicios de foca abm chofer', function() { + + var httpBackend; + var servicio; + + beforeEach(function() { + module('focaAbmChofer'); + inject(module(function($provide) { + $provide.value('API_ENDPOINT', { + URL: 'localhost' + }); + })); + inject(function($httpBackend, _focaAbmChoferService_) { + servicio = _focaAbmChoferService_; + httpBackend = $httpBackend; + }); + }); + + describe('Servicio focaAbmChoferService', function() { + it('Existe el servicio', function() { + //assert + expect(typeof servicio).toEqual('object'); + }); + + it('La función getChoferes lleva a la ruta correcta', function() { + //arrange + var returnFake = 'test'; + var result; + httpBackend.expectGET('localhost/chofer').respond(returnFake); + + //act + servicio.getChoferes().then(function(data) { + result = data.data; + }); + httpBackend.flush(); + + expect(result).toEqual(returnFake); + }); + + it('La función getChofer lleva a la ruta correcta', function() { + //arrange + var returnFake = 'test'; + var paramFake = 1; + var result; + httpBackend.expectGET('localhost/chofer/' + paramFake).respond(returnFake); + + //act + servicio.getChofer(paramFake).then(function(data) { + result = data.data; + }); + httpBackend.flush(); + + expect(result).toEqual(returnFake); + }); + + it('La función getChoferPorTransportista lleva a la ruta correcta', function() { + //arrange + var returnFake = 'test'; + var paramFake = 1; + var result; + httpBackend.expectGET('localhost/chofer/transportista/' + paramFake) + .respond(returnFake); + + //act + servicio.getChoferPorTransportista(paramFake).then(function(data) { + result = data.data; + }); + httpBackend.flush(); + + expect(result).toEqual(returnFake); + }); + + it('La función getChoferPorDni lleva a la ruta correcta', function() { + //arrange + var returnFake = 'test'; + var paramFake = 1; + var result; + httpBackend.expectPOST('localhost/chofer/dni', { dni: paramFake }) + .respond(returnFake); + + //act + servicio.getChoferPorDni(paramFake).then(function(data) { + result = data.data; + }); + httpBackend.flush(); + + //assert + expect(result).toEqual(returnFake); + }); + + it('La función guardarChofer llama a la ruta correcta', function() { + //arrange + var returnFake = 'test'; + var paramFake = 1; + var result; + httpBackend.expectPOST('localhost/chofer', { chofer: paramFake }) + .respond(returnFake); + + //act + servicio.guardarChofer(paramFake).then(function(data) { + result = data.data; + }); + httpBackend.flush(); + + //assert + expect(result).toEqual(returnFake); + }); + + it('La función getTransportistas lleva a la ruta correcta', function() { + //arrange + var returnFake = 'test'; + var result; + httpBackend.expectGET('localhost/transportista').respond(returnFake); + + //act + servicio.getTransportistas().then(function(data) { + result = data.data; + }); + httpBackend.flush(); + + //assert + expect(result).toEqual(returnFake); + }); + + it('La función getTransportistaPorId lleva a la ruta correcta', function() { + //arrange + var returnFake = 'test'; + var paramFake = 1; + var result; + httpBackend.expectGET('localhost/transportista/'+ paramFake).respond(returnFake); + + //act + servicio.getTransportistaPorId(paramFake).then(function(data) { + result = data.data; + }); + httpBackend.flush(); + + //assert + expect(result).toEqual(returnFake); + }); + + it('La función deleteChofer lleva a la ruta correcta', function() { + //arrange + var returnFake = 'test'; + var paramFake = 1; + var result; + httpBackend.expectDELETE('localhost/chofer/'+ paramFake).respond(returnFake); + + //act + servicio.deleteChofer(paramFake).then(function(data) { + result = data.data; + }); + httpBackend.flush(); + + //assert + expect(result).toEqual(returnFake); + }); + + it('La función getTiposDocumento lleva a la ruta correcta', function() { + //arrange + var returnFake = 'test'; + var result; + httpBackend.expectGET('localhost/tipo-documento').respond(returnFake); + + //act + servicio.getTiposDocumento().then(function(data) { + result = data.data; + }); + httpBackend.flush(); + + //assert + expect(result).toEqual(returnFake); + }); + }); +}); diff --git a/test.html b/test.html new file mode 100644 index 0000000..6c50ce2 --- /dev/null +++ b/test.html @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + -- 1.9.1