describe('Controladores abm vehículo', function() { var $controller; beforeEach(function() { module('focaAbmVehiculo'); inject(function(_$controller_) { $controller = _$controller_; }); }); describe('Controlador focaAbmVehiculosController', function() { it('Existe el controller focaAbmVehiculosController', function() { //arrange var controller = $controller('focaAbmVehiculosController', { $scope: {}, focaAbmVehiculoService: { cleanCisternas: function() { return;}, transportistaSeleccionado: {} }, $location: {}, focaModalService: {}, $uibModal: {}, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $localStorage: {}, $timeout: {} }); //assert expect(typeof controller).toEqual('object'); }); it('Crea fecha nueva', function() { //arrange var scope = { $watch: function() {} }; var controller = $controller('focaAbmVehiculosController', { $scope: scope, focaAbmVehiculoService: { cleanCisternas: function() { return;}, transportistaSeleccionado: {} }, $location: {}, focaModalService: {}, $uibModal: {}, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $localStorage: {}, $timeout: {} }); //act var date = scope.now; //assert expect(angular.isDate(date)).toBe(true); }); it('$scope setea botonera lateral', function() { //arrange var scope = { $watch: function() {} }; var controller = $controller('focaAbmVehiculosController', { $scope: scope, focaAbmVehiculoService: { cleanCisternas: function() { return;}, transportistaSeleccionado: {} }, $location: {}, focaModalService: {}, $uibModal: {}, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $timeout: {}, $localStorage: {} }); //act var botonera = scope.botonera; //assert expect(angular.isArray(botonera)).toBe(true); }); it('$scope.editar lleva a la ruta correcta', function() { inject(function($location) { //arrange var scope = { $watch: function() {} }; var controller = $controller('focaAbmVehiculosController', { $scope: scope, focaAbmVehiculoService: { cleanCisternas: function() { return;}, transportistaSeleccionado: {} }, $location: $location, focaModalService: {}, $uibModal: {}, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $timeout: {}, $localStorage: {} }); //act scope.editar(1); var esperado = '/vehiculo/' + 1 + '/' + scope.idTransportista; //assert expect($location.url()).toEqual(esperado); }); }); it('Solicita confirmacion', function() { //arrange var scope = { $watch: function() {} }; var focaModalService = { confirm: function() {} }; var controller = $controller('focaAbmVehiculosController', { $scope: scope, focaAbmVehiculoService: { cleanCisternas: function() { return;}, transportistaSeleccionado: {} }, $location: {}, focaModalService: focaModalService, $uibModal: {}, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $timeout: {}, $localStorage: {} }); //act spyOn(focaModalService, 'confirm').and.returnValue({then: function() {}}); scope.solicitarConfirmacion({id: 1, tractor: 'abc'}); //assert expect(focaModalService.confirm).toHaveBeenCalled(); }); it('Elimina vehículo al confirmar', function(done) { //arrange var scope = { vehiculos: [] }; var focaModalService = { confirm: function() { return; } }; var focaAbmVehiculoService = { cleanCisternas: function() { return;}, transportistaSeleccionado: {}, deleteVehiculo: function() { return; } }; var controller = $controller('focaAbmVehiculosController', { $scope: scope, focaAbmVehiculoService: focaAbmVehiculoService, $location: {}, focaModalService: focaModalService, $uibModal: {}, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $timeout: {}, $localStorage: {} }); var promesa = Promise.resolve(true); //act spyOn(focaModalService, 'confirm').and.returnValue(promesa); spyOn(focaAbmVehiculoService, 'deleteVehiculo'); scope.solicitarConfirmacion({id: 1, tractor: 'abc'}); //assert promesa.then( function() { expect(focaAbmVehiculoService.deleteVehiculo).toHaveBeenCalled(); done(); } ); }); it('Se selecciona transportista', function() { //arrange var scope = { $watch: function() {} }; var focaModalService = { modal: function() {} }; var controller = $controller('focaAbmVehiculosController', { $scope: scope, focaAbmVehiculoService: { cleanCisternas: function() { return;}, transportistaSeleccionado: {} }, $location: {}, focaModalService: focaModalService, $uibModal: {}, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $timeout: {}, $localStorage: {} }); //act spyOn(focaModalService, 'modal').and.returnValue({then: function() {}}); scope.seleccionarTransportista(); //assert expect(focaModalService.modal).toHaveBeenCalled(); }); it('Se setea el transportista seleccionado al service', function(done) { inject(function($timeout) { //arrange var scope = { $watch: function() {} }; var focaModalService = { modal: function() { return; } }; var focaAbmVehiculoService = { cleanCisternas: function() { return;}, transportistaSeleccionado: {}, deleteVehiculo: function() { return; }, getVehiculosPorTransportista: function() { return { then: function() { return; } }; } }; var controller = $controller('focaAbmVehiculosController', { $scope: scope, focaAbmVehiculoService: focaAbmVehiculoService, $location: {}, focaModalService: focaModalService, $uibModal: {}, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $localStorage: {}, $timeout: $timeout }); var promesa = Promise.resolve({COD: '', NOM: ''}); //act spyOn(focaModalService, 'modal').and.returnValue(promesa); scope.seleccionarTransportista(); //assert promesa.then( function() { expect(focaAbmVehiculoService.transportistaSeleccionado) .toEqual(jasmine.objectContaining({ COD: '', NOM: '' })); done(); } ); }); }); }); describe('Controlador focaAbmVehiculoController', function() { var $timeout; beforeEach(inject(function(_$timeout_) { $timeout = _$timeout_; })); it('Existe el controller focaAbmVehiculoController', function() { //arrange var controller = $controller('focaAbmVehiculoController', { $scope: { $watch: function() {} }, focaAbmVehiculoService: { getVehiculo: function() { return { then: function() { return; } }; } }, $routeParams: {}, $location: {}, $uibModal: {}, focaModalService: {}, $timeout: $timeout, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $localStorage: {}, $window: {} }); //assert expect(typeof controller).toEqual('object'); }); it('Se busca el transportista cuando es nuevo', function() { //arrange var scope = { $watch: function() {} }; var focaAbmVehiculoService = { getVehiculo: function() { return { then: function() { return; } }; }, getTransportistaPorId: function() { return; } }; spyOn(focaAbmVehiculoService, 'getTransportistaPorId') .and.returnValue({then: function() { return; }}); //act var controller = $controller('focaAbmVehiculoController', { $scope: scope, focaAbmVehiculoService: focaAbmVehiculoService, $routeParams: { idVehiculo: '0' }, $location: {}, $uibModal: {}, focaModalService: {}, $timeout: $timeout, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $localStorage: {}, $window: {} }); //assert expect(focaAbmVehiculoService.getTransportistaPorId).toHaveBeenCalled(); }); it('No se busca el transportista cuando es nuevo', function() { //arrange var scope = { $watch: function() {} }; var focaAbmVehiculoService = { getVehiculo: function() { return { then: function() { return; } }; }, getTransportistaPorId: function() { return; } }; spyOn(focaAbmVehiculoService, 'getTransportistaPorId') .and.returnValue({then: function() { return; }}); //act var controller = $controller('focaAbmVehiculoController', { $scope: scope, focaAbmVehiculoService: focaAbmVehiculoService, $routeParams: {}, $location: {}, $uibModal: {}, focaModalService: {}, $timeout: $timeout, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $localStorage: {}, $window: {} }); //assert expect(focaAbmVehiculoService.getTransportistaPorId).not.toHaveBeenCalled(); }); it('Cancelar lleva a la ruta /vehiculo', function() { inject(function($location) { //arrange var scope = { $watch: function() {}, cancelar: function() {}, formVehiculo: { $pristine: true } }; var controller = $controller('focaAbmVehiculoController', { $scope: scope, focaAbmVehiculoService: { getVehiculo: function() { return { then: function() { return; } }; } }, $routeParams: {}, $location: $location, $uibModal: {}, focaModalService: {}, $timeout: $timeout, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $localStorage: {}, $window: {}, }); //act scope.salir(); //assert expect($location.url()).toEqual('/vehiculo'); }); }); it('Editar lleva a la ruta correcta cuando recibe variable key', function() { inject(function($location) { //arrange var scope = { $watch: function() {} }; var controller = $controller('focaAbmVehiculoController', { $scope: scope, focaAbmVehiculoService: { getVehiculo: function() { return { then: function() { return; } }; } }, $routeParams: { idVehiculo: 1 }, $location: $location, $uibModal: {}, focaModalService: {}, $timeout: $timeout, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $localStorage: {}, $window: {} }); //act scope.editar('testing'); var esperado = '/vehiculo/1/cisterna/testing'; //assert expect($location.url()).toEqual(esperado); }); }); it('Editar lleva a la ruta correcta cuando no recibe variable key', function() { inject(function($location) { //arrange var scope = { $watch: function() {} }; var controller = $controller('focaAbmVehiculoController', { $scope: scope, focaAbmVehiculoService: { getVehiculo: function() { return { then: function() { return; } }; } }, $routeParams: { idVehiculo: 1 }, $location: $location, $uibModal: {}, focaModalService: {}, $timeout: $timeout, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $localStorage: {}, $window: {} }); //act scope.editar(); var esperado = '/vehiculo/1/cisterna/0/'; //assert expect($location.url()).toEqual(esperado); }); }); it('$scope.solicitarConfirmacionCisterna ejecuta modal de confirmación', function() { //arrange var focaModalService = { confirm: function() {} }; var scope = { $watch: function() {} }; var controller = $controller('focaAbmVehiculoController', { $scope: scope, focaAbmVehiculoService: { getVehiculo: function() { return { then: function() { return; } }; } }, $routeParams: { idVehiculo: 1 }, $location: {}, $uibModal: {}, focaModalService: focaModalService, $timeout: $timeout, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $localStorage: {}, $window: {} }); //act spyOn(focaModalService, 'confirm').and.returnValue({then: function() {}}); scope.solicitarConfirmacionCisterna({id: 1, codigo: 'abc'}); //assert expect(focaModalService.confirm).toHaveBeenCalled(); }); it('Elimina y obtiene cisternas al dar confirmar', function(done) { //arrange var scope = { $watch: function() {} }; var focaModalService = { confirm: function() {} }; var focaAbmVehiculoService = { getVehiculo: function() { return { then: function() { return; } }; }, getCisternas: function() { return; }, deleteCisterna: function() { return; } }; var controller = $controller('focaAbmVehiculoController', { $scope: scope, focaAbmVehiculoService: focaAbmVehiculoService, $routeParams: {}, $location: {}, $uibModal: {}, focaModalService: focaModalService, $timeout: $timeout, focaBotoneraLateralService: { showSalir: function() { return; }, showPausar: function() { return; }, showCancelar: function() { return; }, showGuardar: function() { return; }, addCustomButton: function() { return; } }, $localStorage: {}, $window: {} }); var promesa = Promise.resolve(true); //act spyOn(focaModalService, 'confirm').and.returnValue(promesa); spyOn(focaAbmVehiculoService, 'deleteCisterna'); spyOn(focaAbmVehiculoService, 'getCisternas').and.returnValue({ then: function() {} }); scope.solicitarConfirmacionCisterna({id: 1, codigo: 'abc'}); //assert promesa.then( function() { expect(focaAbmVehiculoService.deleteCisterna).toHaveBeenCalled(); expect(focaAbmVehiculoService.getCisternas).toHaveBeenCalled(); done(); } ); }); }); });