Commit 2549988554fd4afebe60ea7de80be6b19678a30c

Authored by Eric Fernandez
1 parent 9089fe2a16
Exists in master

archivos spec

spec/controllerSpec.js
... ... @@ -0,0 +1,304 @@
  1 +describe('Controladores de abm chofer', function() {
  2 +
  3 + var $controller;
  4 +
  5 + beforeEach(function() {
  6 + module('focaAbmChofer');
  7 + inject(function(_$controller_) {
  8 + $controller = _$controller_;
  9 + });
  10 + });
  11 +
  12 + describe('Controlador focaAbmChoferesController', function() {
  13 +
  14 + it('Existe el controlador focaAbmChoferesController', function() {
  15 + //arrange
  16 + var controlador = $controller('focaAbmChoferesController', {
  17 + $scope: {},
  18 + focaAbmChoferService: {
  19 + transportistaSeleccionado: function() { return; }
  20 + },
  21 + $location: {},
  22 + $uibModal: {},
  23 + focaModalService: {},
  24 + focaBotoneraLateralService: {},
  25 + $timeout: function() { return; }
  26 + });
  27 +
  28 + //assert
  29 + expect(typeof controlador).toEqual('object');
  30 + });
  31 +
  32 + it('$scope.solicitarConfirmacion levanta modal de confirmacion', function() {
  33 + //arrange
  34 + var fakeParam = '';
  35 + var scope = {};
  36 + var focaModalService = {
  37 + confirm: function() { }
  38 + };
  39 + var controlador = $controller('focaAbmChoferesController', {
  40 + $scope: scope,
  41 + focaAbmChoferService: {
  42 + transportistaSeleccionado: function() { return; }
  43 + },
  44 + $location: {},
  45 + $uibModal: {},
  46 + focaModalService: focaModalService,
  47 + focaBotoneraLateralService: {},
  48 + $timeout: function() { return; }
  49 + });
  50 + console.info(controlador);
  51 +
  52 + //act
  53 + spyOn(focaModalService, 'confirm').and.returnValue({ then: function() { }});
  54 + scope.solicitarConfirmacion(fakeParam);
  55 +
  56 + //assert
  57 + expect(focaModalService.confirm).toHaveBeenCalled();
  58 + });
  59 +
  60 + it('$scope.solicitarConfirmacion elimina al confirmar', function(done) {
  61 + //arrange
  62 + var scope = {};
  63 + var focaModalService = {
  64 + confirm: function() {
  65 + return {
  66 + then: function() { }
  67 + };
  68 + }
  69 + };
  70 + var focaAbmChoferService = {
  71 + transportistaSeleccionado: function() { return; },
  72 + deleteChofer: function() { }
  73 + };
  74 + var controlador = $controller('focaAbmChoferesController', {
  75 + $scope: scope,
  76 + focaAbmChoferService: focaAbmChoferService,
  77 + $location: {},
  78 + $uibModal: {},
  79 + focaModalService: focaModalService,
  80 + focaBotoneraLateralService: {},
  81 + $timeout: function() { return; }
  82 + });
  83 + console.info(controlador);
  84 + var fakeParam = '';
  85 + var promesa = Promise.resolve(true);
  86 +
  87 + //act
  88 + spyOn(focaModalService, 'confirm').and.returnValue(promesa);
  89 + spyOn(focaAbmChoferService, 'deleteChofer');
  90 + scope.solicitarConfirmacion(fakeParam);
  91 +
  92 + //assert
  93 + promesa.then(function() {
  94 + expect(focaAbmChoferService.deleteChofer).toHaveBeenCalled();
  95 + done();
  96 + });
  97 + });
  98 +
  99 + it('$scope.seleccionarTransportista levanta modal', function() {
  100 + //arrange
  101 + var scope = {};
  102 + var focaModalService = {
  103 + modal: function() { }
  104 + };
  105 + var controlador = $controller('focaAbmChoferesController', {
  106 + $scope: scope,
  107 + focaAbmChoferService: {
  108 + transportistaSeleccionado: function() { }
  109 + },
  110 + $location: {},
  111 + $uibModal: {},
  112 + focaModalService: focaModalService,
  113 + focaBotoneraLateralService: {},
  114 + $timeout: function() { return; }
  115 + });
  116 + console.info(controlador);
  117 +
  118 + //act
  119 + spyOn(focaModalService, 'modal').and.returnValue({ then: function() { }});
  120 + scope.seleccionarTransportista();
  121 +
  122 + //assert
  123 + expect(focaModalService.modal).toHaveBeenCalled();
  124 + });
  125 + });
  126 +
  127 + describe('Controlador focaAbmChoferController', function() {
  128 +
  129 + it('Existe el controlador focaAbmChoferController', function() {
  130 + //arrange
  131 + var controlador = $controller('focaAbmChoferController', {
  132 + $scope: {},
  133 + focaAbmChoferService: {
  134 + getTiposDocumento: function() {
  135 + return {
  136 + then: function() { }
  137 + };
  138 + },
  139 + getChofer: function() {
  140 + return {
  141 + then: function() { }
  142 + };
  143 + },
  144 + getTransportistas: function() {
  145 + return {
  146 + then: function() { }
  147 + };
  148 + }
  149 + },
  150 + $routeParams: {},
  151 + $location: {},
  152 + focaBotoneraLateralService: {},
  153 + $timeout: function() { return; },
  154 + focaModalService: {}
  155 + });
  156 +
  157 + //assert
  158 + expect(typeof controlador).toEqual('object');
  159 + });
  160 +
  161 + it('$scope.cancelar lleva a la ruta correcta', function() {
  162 + inject(function($location) {
  163 + //arrange
  164 + var scope = {};
  165 + var controlador = $controller('focaAbmChoferController', {
  166 + $scope: scope,
  167 + focaAbmChoferService: {
  168 + getTiposDocumento: function() {
  169 + return {
  170 + then: function() { }
  171 + };
  172 + },
  173 + getChofer: function() {
  174 + return {
  175 + then: function() { }
  176 + };
  177 + },
  178 + getTransportistas: function() {
  179 + return {
  180 + then: function() { }
  181 + };
  182 + }
  183 + },
  184 + $routeParams: {},
  185 + $location: $location,
  186 + focaBotoneraLateralService: {},
  187 + $timeout: function() { return; },
  188 + focaModalService: {}
  189 + });
  190 + console.info(controlador);
  191 +
  192 + //act
  193 + scope.cancelar();
  194 +
  195 + //assert
  196 + expect($location.url()).toEqual('/chofer');
  197 + });
  198 + });
  199 +
  200 + it('$scope.guardar guarda chofer al validarDNI() da ok', function(done) {
  201 +
  202 + //arrange
  203 + var scope = {};
  204 + var focaAbmChoferService = {
  205 + getTiposDocumento: function() {
  206 + return {
  207 + then: function() { }
  208 + };
  209 + },
  210 + getChofer: function() {
  211 + return {
  212 + then: function() { }
  213 + };
  214 + },
  215 + getTransportistas: function() {
  216 + return {
  217 + then: function() { }
  218 + };
  219 + },
  220 + guardarChofer: function() { },
  221 + getChoferPorDni: function() { }
  222 + };
  223 + var controlador = $controller('focaAbmChoferController', {
  224 + $scope: scope,
  225 + focaAbmChoferService: focaAbmChoferService,
  226 + $routeParams: {},
  227 + $location: {},
  228 + focaBotoneraLateralService: {},
  229 + $timeout: function() { return; },
  230 + focaModalService: {}
  231 + });
  232 + console.info(controlador);
  233 + var resolveFake = { data: false };
  234 + var promesaChoferPorDni = Promise.resolve(resolveFake);
  235 +
  236 + //act
  237 + spyOn(focaAbmChoferService, 'guardarChofer').and.returnValue({ then: function() { }});
  238 + spyOn(focaAbmChoferService, 'getChoferPorDni').and.returnValue(promesaChoferPorDni);
  239 + scope.guardar(13);
  240 +
  241 + //assert
  242 + promesaChoferPorDni.then(function() {
  243 + setTimeout(function() {
  244 + expect(focaAbmChoferService.guardarChofer).toHaveBeenCalled();
  245 + done();
  246 + });
  247 + });
  248 + });
  249 +
  250 + it('$scope.guardar da alerta chofer al validarDNI() da reject', function(done) {
  251 +
  252 + //arrange
  253 + var scope = {};
  254 + var focaModalService = {
  255 + alert: function() { }
  256 + };
  257 + var focaAbmChoferService = {
  258 + getTiposDocumento: function() {
  259 + return {
  260 + then: function() { }
  261 + };
  262 + },
  263 + getChofer: function() {
  264 + return {
  265 + then: function() { }
  266 + };
  267 + },
  268 + getTransportistas: function() {
  269 + return {
  270 + then: function() { }
  271 + };
  272 + },
  273 + getChoferPorDni: function() { }
  274 + };
  275 + var controlador = $controller('focaAbmChoferController', {
  276 + $scope: scope,
  277 + focaAbmChoferService: focaAbmChoferService,
  278 + $routeParams: {},
  279 + $location: {},
  280 + focaBotoneraLateralService: {},
  281 + $timeout: function() { return; },
  282 + focaModalService: focaModalService
  283 + });
  284 + console.info(controlador);
  285 + var resolveFake = { data: { id: true } };
  286 + var promesaChoferPorDni = Promise.resolve(resolveFake);
  287 +
  288 + //act
  289 + spyOn(focaAbmChoferService, 'getChoferPorDni').and.returnValue(promesaChoferPorDni);
  290 + spyOn(focaModalService, 'alert');
  291 + scope.chofer.id = 'dato prueba';
  292 + scope.guardar(13);
  293 +
  294 + //assert
  295 + promesaChoferPorDni.then(function() {
  296 + //await sleep(100);
  297 + setTimeout(function() {
  298 + expect(focaModalService.alert).toHaveBeenCalled();
  299 + done();
  300 + });
  301 + });
  302 + });
  303 + });
  304 +});
... ... @@ -0,0 +1,27 @@
  1 +describe('Rutas abm chofer', function() {
  2 +
  3 + var route;
  4 +
  5 + beforeEach(function() {
  6 + module('focaAbmChofer');
  7 + inject(function($route) {
  8 + route = $route;
  9 + });
  10 + });
  11 +
  12 + it('ruta /chofer redirecciona correctamente', function() {
  13 + //assert
  14 + expect(route.routes['/chofer'].controller)
  15 + .toBe('focaAbmChoferesController');
  16 + expect(route.routes['/chofer'].templateUrl)
  17 + .toBe('src/views/foca-abm-choferes-listado.html');
  18 + });
  19 +
  20 + it('ruta /chofer/:id/:idTransportista redirecciona correctamente', function() {
  21 + //assert
  22 + expect(route.routes['/chofer/:id/:idTransportista'].controller)
  23 + .toBe('focaAbmChoferController');
  24 + expect(route.routes['/chofer/:id/:idTransportista'].templateUrl)
  25 + .toBe('src/views/foca-abm-choferes-item.html');
  26 + });
  27 +});
... ... @@ -0,0 +1,175 @@
  1 +describe('Servicios de foca abm chofer', function() {
  2 +
  3 + var httpBackend;
  4 + var servicio;
  5 +
  6 + beforeEach(function() {
  7 + module('focaAbmChofer');
  8 + inject(module(function($provide) {
  9 + $provide.value('API_ENDPOINT', {
  10 + URL: 'localhost'
  11 + });
  12 + }));
  13 + inject(function($httpBackend, _focaAbmChoferService_) {
  14 + servicio = _focaAbmChoferService_;
  15 + httpBackend = $httpBackend;
  16 + });
  17 + });
  18 +
  19 + describe('Servicio focaAbmChoferService', function() {
  20 + it('Existe el servicio', function() {
  21 + //assert
  22 + expect(typeof servicio).toEqual('object');
  23 + });
  24 +
  25 + it('La función getChoferes lleva a la ruta correcta', function() {
  26 + //arrange
  27 + var returnFake = 'test';
  28 + var result;
  29 + httpBackend.expectGET('localhost/chofer').respond(returnFake);
  30 +
  31 + //act
  32 + servicio.getChoferes().then(function(data) {
  33 + result = data.data;
  34 + });
  35 + httpBackend.flush();
  36 +
  37 + expect(result).toEqual(returnFake);
  38 + });
  39 +
  40 + it('La función getChofer lleva a la ruta correcta', function() {
  41 + //arrange
  42 + var returnFake = 'test';
  43 + var paramFake = 1;
  44 + var result;
  45 + httpBackend.expectGET('localhost/chofer/' + paramFake).respond(returnFake);
  46 +
  47 + //act
  48 + servicio.getChofer(paramFake).then(function(data) {
  49 + result = data.data;
  50 + });
  51 + httpBackend.flush();
  52 +
  53 + expect(result).toEqual(returnFake);
  54 + });
  55 +
  56 + it('La función getChoferPorTransportista lleva a la ruta correcta', function() {
  57 + //arrange
  58 + var returnFake = 'test';
  59 + var paramFake = 1;
  60 + var result;
  61 + httpBackend.expectGET('localhost/chofer/transportista/' + paramFake)
  62 + .respond(returnFake);
  63 +
  64 + //act
  65 + servicio.getChoferPorTransportista(paramFake).then(function(data) {
  66 + result = data.data;
  67 + });
  68 + httpBackend.flush();
  69 +
  70 + expect(result).toEqual(returnFake);
  71 + });
  72 +
  73 + it('La función getChoferPorDni lleva a la ruta correcta', function() {
  74 + //arrange
  75 + var returnFake = 'test';
  76 + var paramFake = 1;
  77 + var result;
  78 + httpBackend.expectPOST('localhost/chofer/dni', { dni: paramFake })
  79 + .respond(returnFake);
  80 +
  81 + //act
  82 + servicio.getChoferPorDni(paramFake).then(function(data) {
  83 + result = data.data;
  84 + });
  85 + httpBackend.flush();
  86 +
  87 + //assert
  88 + expect(result).toEqual(returnFake);
  89 + });
  90 +
  91 + it('La función guardarChofer llama a la ruta correcta', function() {
  92 + //arrange
  93 + var returnFake = 'test';
  94 + var paramFake = 1;
  95 + var result;
  96 + httpBackend.expectPOST('localhost/chofer', { chofer: paramFake })
  97 + .respond(returnFake);
  98 +
  99 + //act
  100 + servicio.guardarChofer(paramFake).then(function(data) {
  101 + result = data.data;
  102 + });
  103 + httpBackend.flush();
  104 +
  105 + //assert
  106 + expect(result).toEqual(returnFake);
  107 + });
  108 +
  109 + it('La función getTransportistas lleva a la ruta correcta', function() {
  110 + //arrange
  111 + var returnFake = 'test';
  112 + var result;
  113 + httpBackend.expectGET('localhost/transportista').respond(returnFake);
  114 +
  115 + //act
  116 + servicio.getTransportistas().then(function(data) {
  117 + result = data.data;
  118 + });
  119 + httpBackend.flush();
  120 +
  121 + //assert
  122 + expect(result).toEqual(returnFake);
  123 + });
  124 +
  125 + it('La función getTransportistaPorId lleva a la ruta correcta', function() {
  126 + //arrange
  127 + var returnFake = 'test';
  128 + var paramFake = 1;
  129 + var result;
  130 + httpBackend.expectGET('localhost/transportista/'+ paramFake).respond(returnFake);
  131 +
  132 + //act
  133 + servicio.getTransportistaPorId(paramFake).then(function(data) {
  134 + result = data.data;
  135 + });
  136 + httpBackend.flush();
  137 +
  138 + //assert
  139 + expect(result).toEqual(returnFake);
  140 + });
  141 +
  142 + it('La función deleteChofer lleva a la ruta correcta', function() {
  143 + //arrange
  144 + var returnFake = 'test';
  145 + var paramFake = 1;
  146 + var result;
  147 + httpBackend.expectDELETE('localhost/chofer/'+ paramFake).respond(returnFake);
  148 +
  149 + //act
  150 + servicio.deleteChofer(paramFake).then(function(data) {
  151 + result = data.data;
  152 + });
  153 + httpBackend.flush();
  154 +
  155 + //assert
  156 + expect(result).toEqual(returnFake);
  157 + });
  158 +
  159 + it('La función getTiposDocumento lleva a la ruta correcta', function() {
  160 + //arrange
  161 + var returnFake = 'test';
  162 + var result;
  163 + httpBackend.expectGET('localhost/tipo-documento').respond(returnFake);
  164 +
  165 + //act
  166 + servicio.getTiposDocumento().then(function(data) {
  167 + result = data.data;
  168 + });
  169 + httpBackend.flush();
  170 +
  171 + //assert
  172 + expect(result).toEqual(returnFake);
  173 + });
  174 + });
  175 +});
... ... @@ -0,0 +1,21 @@
  1 +<html>
  2 + <head>
  3 + <link rel="stylesheet" type="text/css" href="node_modules/jasmine-core/lib/jasmine-core/jasmine.css">
  4 + <meta charset="UTF-8" />
  5 + </head>
  6 + <body>
  7 + <script type="text/javascript" src="node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
  8 + <script type="text/javascript" src="node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
  9 + <script type="text/javascript" src="node_modules/jasmine-core/lib/jasmine-core/boot.js"></script>
  10 + <script type="text/javascript" src="node_modules/angular/angular.min.js"></script>
  11 + <script type="text/javascript" src="node_modules/angular-route/angular-route.min.js"></script>
  12 + <script type="text/javascript" src="node_modules/angular-mocks/angular-mocks.js"></script>
  13 + <script type="text/javascript" src="src/js/app.js"></script>
  14 + <script type="text/javascript" src="src/js/controller.js"></script>
  15 + <script type="text/javascript" src="src/js/service.js"></script>
  16 + <script type="text/javascript" src="src/js/route.js"></script>
  17 + <script type="text/javascript" src="spec/controllerSpec.js"></script>
  18 + <script type="text/javascript" src="spec/serviceSpec.js"></script>
  19 + <script type="text/javascript" src="spec/routeSpec.js"></script>
  20 + </body>
  21 +</html>