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(); }); }); }); }); });