Commit 192accea0606a8ac4149663935e544b56220e2f1

Authored by Eric
1 parent b24e934250
Exists in master

controller unit test

... ... @@ -13,6 +13,7 @@ const connect = require('gulp-connect');
13 13 var paths = {
14 14 srcJS: 'src/js/*.js',
15 15 srcViews: 'src/views/*.html',
  16 + specs: 'spec/*.js',
16 17 tmp: 'tmp',
17 18 dist: 'dist/'
18 19 };
... ... @@ -56,7 +57,7 @@ gulp.task('clean', function() {
56 57 gulp.task('pre-commit', function() {
57 58 return pump(
58 59 [
59   - gulp.src(paths.srcJS),
  60 + gulp.src([paths.srcJS, paths.specs]),
60 61 jshint('.jshintrc'),
61 62 jshint.reporter('default'),
62 63 jshint.reporter('fail')
spec/controllerSpec.js
... ... @@ -0,0 +1,1522 @@
  1 +describe('Controlador modulo crear remito', function() {
  2 +
  3 + var $controller;
  4 +
  5 + beforeEach(function() {
  6 +
  7 + module('focaCrearRemito');
  8 +
  9 + inject(function(_$controller_) {
  10 + $controller = _$controller_;
  11 + });
  12 + });
  13 +
  14 + describe('Controlador remitoController', function() {
  15 +
  16 + var timeout;
  17 +
  18 + beforeEach(function() {
  19 +
  20 + inject(function($timeout) {
  21 + timeout = $timeout;
  22 + });
  23 + });
  24 +
  25 + it('Existe el controlador remitoController', function() {
  26 +
  27 + //act
  28 + var controlador = $controller('remitoController', {
  29 + $scope: {
  30 + $broadcast: function() { },
  31 + $watch: function() { }
  32 + },
  33 + $uibModal: {},
  34 + $location: {},
  35 + $filter: {},
  36 + crearRemitoService: {
  37 + getBotonera: function() { },
  38 + getCotizacionByIdMoneda: function() {
  39 + return {
  40 + then: function() { }
  41 + };
  42 + },
  43 + getNumeroRemito: function() {
  44 + return {
  45 + then: function() { }
  46 + };
  47 + }
  48 + },
  49 + $timeout: timeout,
  50 + focaModalService: {},
  51 + remitoBusinessService: {},
  52 + $rootScope: {
  53 + $on: function() { }
  54 + },
  55 + focaBotoneraLateralService: {},
  56 + $localStorage: {}
  57 + });
  58 +
  59 + //assert
  60 + expect(typeof controlador).toEqual('object');
  61 +
  62 + });
  63 +
  64 + it('seleccionarNotaPedido levanta modal', function() {
  65 +
  66 + //arrange
  67 + var scope = {
  68 + $broadcast: function() { },
  69 + $watch: function() { }
  70 + };
  71 + var uibModal = {
  72 + open: function() { }
  73 + };
  74 +
  75 + $controller('remitoController', {
  76 + $scope: scope,
  77 + $uibModal: uibModal,
  78 + $location: {},
  79 + $filter: {},
  80 + crearRemitoService: {
  81 + getBotonera: function() { },
  82 + getCotizacionByIdMoneda: function() {
  83 + return {
  84 + then: function() { }
  85 + };
  86 + },
  87 + getNumeroRemito: function() {
  88 + return {
  89 + then: function() { }
  90 + };
  91 + }
  92 + },
  93 + $timeout: timeout,
  94 + focaModalService: {},
  95 + remitoBusinessService: {},
  96 + $rootScope: {
  97 + $on: function() { }
  98 + },
  99 + focaBotoneraLateralService: {},
  100 + $localStorage: {}
  101 + });
  102 +
  103 + //act
  104 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  105 + spyOn(scope, 'seleccionarNotaPedido');
  106 + scope.seleccionarNotaPedido();
  107 +
  108 + //assert
  109 + expect(scope.seleccionarNotaPedido).toHaveBeenCalled();
  110 +
  111 + });
  112 +
  113 + it('seleccionarRemito levanta modal', function() {
  114 +
  115 + //arrange
  116 + var scope = {
  117 + $broadcast: function() { },
  118 + $watch: function() { }
  119 + };
  120 + var uibModal = {
  121 + open: function() { }
  122 + };
  123 +
  124 + $controller('remitoController', {
  125 + $scope: scope,
  126 + $uibModal: uibModal,
  127 + $location: {},
  128 + $filter: {},
  129 + crearRemitoService: {
  130 + getBotonera: function() { },
  131 + getCotizacionByIdMoneda: function() {
  132 + return {
  133 + then: function() { }
  134 + };
  135 + },
  136 + getNumeroRemito: function() {
  137 + return {
  138 + then: function() { }
  139 + };
  140 + }
  141 + },
  142 + $timeout: timeout,
  143 + focaModalService: {},
  144 + remitoBusinessService: {},
  145 + $rootScope: {
  146 + $on: function() { }
  147 + },
  148 + focaBotoneraLateralService: {},
  149 + $localStorage: {}
  150 + });
  151 +
  152 + //act
  153 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  154 + spyOn(scope, 'seleccionarRemito');
  155 + scope.seleccionarRemito();
  156 +
  157 + //assert
  158 + expect(scope.seleccionarRemito).toHaveBeenCalled();
  159 +
  160 + });
  161 +
  162 + it('crearRemito muestra alerta cuando no se eligió vendedor', function() {
  163 +
  164 + //arrange
  165 + var scope = {
  166 + $broadcast: function() { },
  167 + $watch: function() { }
  168 + };
  169 + var focaModalService = {
  170 + alert: function() { }
  171 + };
  172 +
  173 + $controller('remitoController', {
  174 + $scope: scope,
  175 + $uibModal: {},
  176 + $location: {},
  177 + $filter: {},
  178 + crearRemitoService: {
  179 + getBotonera: function() { },
  180 + getCotizacionByIdMoneda: function() {
  181 + return {
  182 + then: function() { }
  183 + };
  184 + },
  185 + getNumeroRemito: function() {
  186 + return {
  187 + then: function() { }
  188 + };
  189 + }
  190 + },
  191 + $timeout: timeout,
  192 + focaModalService: focaModalService,
  193 + remitoBusinessService: {},
  194 + $rootScope: {
  195 + $on: function() { }
  196 + },
  197 + focaBotoneraLateralService: {},
  198 + $localStorage: {}
  199 + });
  200 +
  201 + //act
  202 + spyOn(focaModalService, 'alert');
  203 + scope.crearRemito();
  204 +
  205 + //assert
  206 + expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Vendedor');
  207 +
  208 + });
  209 +
  210 + it('crearRemito muestra alerta cuando no se eligió cliente', function() {
  211 +
  212 + //arrange
  213 + var scope = {
  214 + $broadcast: function() { },
  215 + $watch: function() { }
  216 + };
  217 + var focaModalService = {
  218 + alert: function() { }
  219 + };
  220 +
  221 + $controller('remitoController', {
  222 + $scope: scope,
  223 + $uibModal: {},
  224 + $location: {},
  225 + $filter: {},
  226 + crearRemitoService: {
  227 + getBotonera: function() { },
  228 + getCotizacionByIdMoneda: function() {
  229 + return {
  230 + then: function() { }
  231 + };
  232 + },
  233 + getNumeroRemito: function() {
  234 + return {
  235 + then: function() { }
  236 + };
  237 + }
  238 + },
  239 + $timeout: timeout,
  240 + focaModalService: focaModalService,
  241 + remitoBusinessService: {},
  242 + $rootScope: {
  243 + $on: function() { }
  244 + },
  245 + focaBotoneraLateralService: {},
  246 + $localStorage: {}
  247 + });
  248 +
  249 + scope.remito = {
  250 + vendedor: { NUM: true },
  251 + cliente: {}
  252 + };
  253 +
  254 + //act
  255 + spyOn(focaModalService, 'alert');
  256 + scope.crearRemito();
  257 +
  258 + //assert
  259 + expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Cliente');
  260 +
  261 + });
  262 +
  263 + it('crearRemito muestra alerta cuando no se eligió Proveedor', function() {
  264 +
  265 + //arrange
  266 + var scope = {
  267 + $broadcast: function() { },
  268 + $watch: function() { }
  269 + };
  270 + var focaModalService = {
  271 + alert: function() { }
  272 + };
  273 +
  274 + $controller('remitoController', {
  275 + $scope: scope,
  276 + $uibModal: {},
  277 + $location: {},
  278 + $filter: {},
  279 + crearRemitoService: {
  280 + getBotonera: function() { },
  281 + getCotizacionByIdMoneda: function() {
  282 + return {
  283 + then: function() { }
  284 + };
  285 + },
  286 + getNumeroRemito: function() {
  287 + return {
  288 + then: function() { }
  289 + };
  290 + }
  291 + },
  292 + $timeout: timeout,
  293 + focaModalService: focaModalService,
  294 + remitoBusinessService: {},
  295 + $rootScope: {
  296 + $on: function() { }
  297 + },
  298 + focaBotoneraLateralService: {},
  299 + $localStorage: {}
  300 + });
  301 +
  302 + scope.remito = {
  303 + vendedor: { NUM: true },
  304 + cliente: { COD: true }
  305 + };
  306 +
  307 + //act
  308 + spyOn(focaModalService, 'alert');
  309 + scope.crearRemito();
  310 +
  311 + //assert
  312 + expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Proveedor');
  313 +
  314 + });
  315 +
  316 + it('crearRemito muestra alerta cuando no se eligió moneda', function() {
  317 +
  318 + //arrange
  319 + var scope = {
  320 + $broadcast: function() { },
  321 + $watch: function() { }
  322 + };
  323 + var focaModalService = {
  324 + alert: function() { }
  325 + };
  326 +
  327 + $controller('remitoController', {
  328 + $scope: scope,
  329 + $uibModal: {},
  330 + $location: {},
  331 + $filter: {},
  332 + crearRemitoService: {
  333 + getBotonera: function() { },
  334 + getCotizacionByIdMoneda: function() {
  335 + return {
  336 + then: function() { }
  337 + };
  338 + },
  339 + getNumeroRemito: function() {
  340 + return {
  341 + then: function() { }
  342 + };
  343 + }
  344 + },
  345 + $timeout: timeout,
  346 + focaModalService: focaModalService,
  347 + remitoBusinessService: {},
  348 + $rootScope: {
  349 + $on: function() { }
  350 + },
  351 + focaBotoneraLateralService: {},
  352 + $localStorage: {}
  353 + });
  354 +
  355 + scope.remito = {
  356 + vendedor: { NUM: true },
  357 + cliente: { COD: true },
  358 + proveedor: {},
  359 + cotizacion: { moneda: {} }
  360 + };
  361 +
  362 + //act
  363 + spyOn(focaModalService, 'alert');
  364 + scope.crearRemito();
  365 +
  366 + //assert
  367 + expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Moneda');
  368 +
  369 + });
  370 +
  371 + it('crearRemito muestra alerta cuando no se eligió Cotización', function() {
  372 +
  373 + //arrange
  374 + var scope = {
  375 + $broadcast: function() { },
  376 + $watch: function() { }
  377 + };
  378 + var focaModalService = {
  379 + alert: function() { }
  380 + };
  381 +
  382 + $controller('remitoController', {
  383 + $scope: scope,
  384 + $uibModal: {},
  385 + $location: {},
  386 + $filter: {},
  387 + crearRemitoService: {
  388 + getBotonera: function() { },
  389 + getCotizacionByIdMoneda: function() {
  390 + return {
  391 + then: function() { }
  392 + };
  393 + },
  394 + getNumeroRemito: function() {
  395 + return {
  396 + then: function() { }
  397 + };
  398 + }
  399 + },
  400 + $timeout: timeout,
  401 + focaModalService: focaModalService,
  402 + remitoBusinessService: {},
  403 + $rootScope: {
  404 + $on: function() { }
  405 + },
  406 + focaBotoneraLateralService: {},
  407 + $localStorage: {}
  408 + });
  409 +
  410 + scope.remito = {
  411 + vendedor: { NUM: true },
  412 + cliente: { COD: true },
  413 + proveedor: {},
  414 + cotizacion: { moneda: { id: true } }
  415 + };
  416 +
  417 + //act
  418 + spyOn(focaModalService, 'alert');
  419 + scope.crearRemito();
  420 +
  421 + //assert
  422 + expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Cotización');
  423 +
  424 + });
  425 +
  426 + it('crearRemito muestra alerta cuando no se eligió flete', function() {
  427 +
  428 + //arrange
  429 + var scope = {
  430 + $broadcast: function() { },
  431 + $watch: function() { }
  432 + };
  433 + var focaModalService = {
  434 + alert: function() { }
  435 + };
  436 +
  437 + $controller('remitoController', {
  438 + $scope: scope,
  439 + $uibModal: {},
  440 + $location: {},
  441 + $filter: {},
  442 + crearRemitoService: {
  443 + getBotonera: function() { },
  444 + getCotizacionByIdMoneda: function() {
  445 + return {
  446 + then: function() { }
  447 + };
  448 + },
  449 + getNumeroRemito: function() {
  450 + return {
  451 + then: function() { }
  452 + };
  453 + }
  454 + },
  455 + $timeout: timeout,
  456 + focaModalService: focaModalService,
  457 + remitoBusinessService: {},
  458 + $rootScope: {
  459 + $on: function() { }
  460 + },
  461 + focaBotoneraLateralService: {},
  462 + $localStorage: {}
  463 + });
  464 +
  465 + scope.remito = {
  466 + vendedor: { NUM: true },
  467 + cliente: { COD: true },
  468 + proveedor: {},
  469 + cotizacion: {
  470 + moneda: { id: true },
  471 + ID: true
  472 + }
  473 + };
  474 +
  475 + //act
  476 + spyOn(focaModalService, 'alert');
  477 + scope.crearRemito();
  478 +
  479 + //assert
  480 + expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Flete');
  481 +
  482 + });
  483 +
  484 + it('crearRemito muestra alerta cuando no se eligió articulos', function() {
  485 +
  486 + //arrange
  487 + var scope = {
  488 + $broadcast: function() { },
  489 + $watch: function() { }
  490 + };
  491 + var focaModalService = {
  492 + alert: function() { }
  493 + };
  494 +
  495 + $controller('remitoController', {
  496 + $scope: scope,
  497 + $uibModal: {},
  498 + $location: {},
  499 + $filter: {},
  500 + crearRemitoService: {
  501 + getBotonera: function() { },
  502 + getCotizacionByIdMoneda: function() {
  503 + return {
  504 + then: function() { }
  505 + };
  506 + },
  507 + getNumeroRemito: function() {
  508 + return {
  509 + then: function() { }
  510 + };
  511 + }
  512 + },
  513 + $timeout: timeout,
  514 + focaModalService: focaModalService,
  515 + remitoBusinessService: {},
  516 + $rootScope: {
  517 + $on: function() { }
  518 + },
  519 + focaBotoneraLateralService: {},
  520 + $localStorage: {}
  521 + });
  522 +
  523 + scope.remito = {
  524 + vendedor: { NUM: true },
  525 + cliente: { COD: true },
  526 + proveedor: {},
  527 + cotizacion: {
  528 + moneda: { id: true },
  529 + ID: true
  530 + },
  531 + flete: true,
  532 + articulosRemito: []
  533 + };
  534 +
  535 + //act
  536 + spyOn(focaModalService, 'alert');
  537 + scope.crearRemito();
  538 +
  539 + //assert
  540 + expect(focaModalService.alert).toHaveBeenCalledWith('Debe cargar al menos un articulo');
  541 +
  542 + });
  543 +
  544 + it('crearRemito llama a startGuardar', function() {
  545 +
  546 + //arrange
  547 + var scope = {
  548 + $broadcast: function() { },
  549 + $watch: function() { }
  550 + };
  551 + var focaBotoneraLateralService = {
  552 + startGuardar: function() { }
  553 + };
  554 +
  555 + $controller('remitoController', {
  556 + $scope: scope,
  557 + $uibModal: {},
  558 + $location: {},
  559 + $filter: {},
  560 + crearRemitoService: {
  561 + getBotonera: function() { },
  562 + getCotizacionByIdMoneda: function() {
  563 + return {
  564 + then: function() { }
  565 + };
  566 + },
  567 + getNumeroRemito: function() {
  568 + return {
  569 + then: function() { }
  570 + };
  571 + },
  572 + crearRemito: function() {
  573 + return {
  574 + then: function() { }
  575 + };
  576 + }
  577 + },
  578 + $timeout: timeout,
  579 + focaModalService: {},
  580 + remitoBusinessService: {},
  581 + $rootScope: {
  582 + $on: function() { }
  583 + },
  584 + focaBotoneraLateralService: focaBotoneraLateralService,
  585 + $localStorage: {}
  586 + });
  587 +
  588 + scope.remito = {
  589 + vendedor: { NUM: true },
  590 + cliente: { COD: true },
  591 + proveedor: {},
  592 + cotizacion: {
  593 + moneda: { id: true },
  594 + ID: true
  595 + },
  596 + flete: true,
  597 + articulosRemito: [ 1 ]
  598 + };
  599 +
  600 + //act
  601 + spyOn(focaBotoneraLateralService, 'startGuardar');
  602 + scope.crearRemito();
  603 +
  604 + //assert
  605 + expect(focaBotoneraLateralService.startGuardar).toHaveBeenCalled();
  606 +
  607 + });
  608 +
  609 + it('crearRemito llama a endGuardar y abre modal', function(done) {
  610 +
  611 + //arrange
  612 + var scope = {
  613 + $broadcast: function() { },
  614 + $watch: function() { }
  615 + };
  616 + var focaBotoneraLateralService = {
  617 + startGuardar: function() { },
  618 + endGuardar: function() { }
  619 + };
  620 + var uibModal = {
  621 + open: function() { }
  622 + };
  623 + var crearRemitoService = {
  624 + getBotonera: function() { },
  625 + getCotizacionByIdMoneda: function() {
  626 + return {
  627 + then: function() { }
  628 + };
  629 + },
  630 + getNumeroRemito: function() {
  631 + return {
  632 + then: function() { }
  633 + };
  634 + },
  635 + crearRemito: function() { }
  636 + };
  637 +
  638 + $controller('remitoController', {
  639 + $scope: scope,
  640 + $uibModal: uibModal,
  641 + $location: {},
  642 + $filter: {},
  643 + crearRemitoService: crearRemitoService,
  644 + $timeout: timeout,
  645 + focaModalService: {},
  646 + remitoBusinessService: {
  647 + addArticulos: function() { }
  648 + },
  649 + $rootScope: {
  650 + $on: function() { }
  651 + },
  652 + focaBotoneraLateralService: focaBotoneraLateralService,
  653 + $localStorage: {}
  654 + });
  655 +
  656 + scope.remito = {
  657 + vendedor: { NUM: true },
  658 + cliente: { COD: true },
  659 + proveedor: {},
  660 + cotizacion: {
  661 + moneda: { id: true },
  662 + ID: true
  663 + },
  664 + flete: true,
  665 + articulosRemito: [1]
  666 + };
  667 + var promiseRespond = Promise.resolve({ data: {} });
  668 +
  669 + //act
  670 + spyOn(crearRemitoService, 'crearRemito').and.returnValue(promiseRespond);
  671 + spyOn(focaBotoneraLateralService, 'endGuardar');
  672 + spyOn(uibModal, 'open');
  673 + scope.crearRemito();
  674 +
  675 + //assert
  676 + promiseRespond.then(function() {
  677 +
  678 + expect(focaBotoneraLateralService.endGuardar).toHaveBeenCalled();
  679 + done();
  680 + });
  681 + });
  682 +
  683 + it('seleccionarProductos abre modal', function() {
  684 +
  685 + //arrange
  686 + var scope = {
  687 + $broadcast: function() { },
  688 + $watch: function() { }
  689 + };
  690 + var uibModal = {
  691 + open: function() { }
  692 + };
  693 +
  694 + $controller('remitoController', {
  695 + $scope: scope,
  696 + $uibModal: uibModal,
  697 + $location: {},
  698 + $filter: {},
  699 + crearRemitoService: {
  700 + getBotonera: function() {},
  701 + getCotizacionByIdMoneda: function() {
  702 + return {
  703 + then: function() {}
  704 + };
  705 + },
  706 + getNumeroRemito: function() {
  707 + return {
  708 + then: function() {}
  709 + };
  710 + }
  711 + },
  712 + $timeout: timeout,
  713 + focaModalService: {},
  714 + remitoBusinessService: {
  715 + addArticulos: function() { }
  716 + },
  717 + $rootScope: {
  718 + $on: function() { }
  719 + },
  720 + focaBotoneraLateralService: {},
  721 + $localStorage: {}
  722 + });
  723 +
  724 + scope.remito = {
  725 + cotizacion: {
  726 + moneda: { },
  727 + },
  728 + };
  729 + scope.idLista = true;
  730 +
  731 + //act
  732 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() {} } });
  733 + scope.seleccionarProductos();
  734 +
  735 + //assert
  736 + expect(uibModal.open).toHaveBeenCalled();
  737 + });
  738 +
  739 + it('seleccionarProductos abre alerta si no se eligió lista', function() {
  740 +
  741 + //arrange
  742 + var scope = {
  743 + $broadcast: function() { },
  744 + $watch: function() { }
  745 + };
  746 + var focaModalService = {
  747 + alert: function() { }
  748 + };
  749 +
  750 + $controller('remitoController', {
  751 + $scope: scope,
  752 + $uibModal: {},
  753 + $location: {},
  754 + $filter: {},
  755 + crearRemitoService: {
  756 + getBotonera: function() {},
  757 + getCotizacionByIdMoneda: function() {
  758 + return {
  759 + then: function() {}
  760 + };
  761 + },
  762 + getNumeroRemito: function() {
  763 + return {
  764 + then: function() {}
  765 + };
  766 + }
  767 + },
  768 + $timeout: timeout,
  769 + focaModalService: focaModalService,
  770 + remitoBusinessService: {
  771 + addArticulos: function() { }
  772 + },
  773 + $rootScope: {
  774 + $on: function() { }
  775 + },
  776 + focaBotoneraLateralService: {},
  777 + $localStorage: {}
  778 + });
  779 +
  780 + //act
  781 + spyOn(focaModalService, 'alert');
  782 + scope.seleccionarProductos();
  783 +
  784 + //assert
  785 + expect(focaModalService.alert)
  786 + .toHaveBeenCalledWith('Primero seleccione una lista de precio y condicion');
  787 + });
  788 +
  789 + it('seleccionarPuntosDeDescarga abre modal', function() {
  790 +
  791 + //arrange
  792 + var scope = {
  793 + $broadcast: function() { },
  794 + $watch: function() { }
  795 + };
  796 + var uibModal = {
  797 + open: function() { }
  798 + };
  799 +
  800 + $controller('remitoController', {
  801 + $scope: scope,
  802 + $uibModal: uibModal,
  803 + $location: {},
  804 + $filter: {},
  805 + crearRemitoService: {
  806 + getBotonera: function() {},
  807 + getCotizacionByIdMoneda: function() {
  808 + return {
  809 + then: function() {}
  810 + };
  811 + },
  812 + getNumeroRemito: function() {
  813 + return {
  814 + then: function() {}
  815 + };
  816 + }
  817 + },
  818 + $timeout: timeout,
  819 + focaModalService: {},
  820 + remitoBusinessService: {
  821 + addArticulos: function() { }
  822 + },
  823 + $rootScope: {
  824 + $on: function() { }
  825 + },
  826 + focaBotoneraLateralService: {},
  827 + $localStorage: {}
  828 + });
  829 + scope.remito = {
  830 + cliente: { COD: true },
  831 + domicilio: { id: true }
  832 + };
  833 +
  834 + //act
  835 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  836 + scope.seleccionarPuntosDeDescarga();
  837 +
  838 + //assert
  839 + expect(uibModal.open).toHaveBeenCalled();
  840 + });
  841 +
  842 + it('seleccionarVendedor abre modal', function() {
  843 +
  844 + //arrange
  845 + var scope = {
  846 + $broadcast: function() { },
  847 + $watch: function() { }
  848 + };
  849 + var focaModalService = {
  850 + modal: function() { }
  851 + };
  852 +
  853 + $controller('remitoController', {
  854 + $scope: scope,
  855 + $uibModal: {},
  856 + $location: {},
  857 + $filter: {},
  858 + crearRemitoService: {
  859 + getBotonera: function() {},
  860 + getCotizacionByIdMoneda: function() {
  861 + return {
  862 + then: function() {}
  863 + };
  864 + },
  865 + getNumeroRemito: function() {
  866 + return {
  867 + then: function() {}
  868 + };
  869 + }
  870 + },
  871 + $timeout: timeout,
  872 + focaModalService: focaModalService,
  873 + remitoBusinessService: {
  874 + addArticulos: function() { }
  875 + },
  876 + $rootScope: {
  877 + $on: function() { }
  878 + },
  879 + focaBotoneraLateralService: {},
  880 + $localStorage: {}
  881 + });
  882 +
  883 + //act
  884 + spyOn(focaModalService, 'modal').and.returnValue({ then: function() { } });
  885 + scope.seleccionarVendedor();
  886 +
  887 + //assert
  888 + expect(focaModalService.modal).toHaveBeenCalled();
  889 + });
  890 +
  891 + it('seleccionarCliente abre modal', function() {
  892 +
  893 + //arrange
  894 + var scope = {
  895 + $broadcast: function() { },
  896 + $watch: function() { }
  897 + };
  898 + var uibModal = {
  899 + open: function() { }
  900 + };
  901 +
  902 + $controller('remitoController', {
  903 + $scope: scope,
  904 + $uibModal: uibModal,
  905 + $location: {},
  906 + $filter: {},
  907 + crearRemitoService: {
  908 + getBotonera: function() {},
  909 + getCotizacionByIdMoneda: function() {
  910 + return {
  911 + then: function() {}
  912 + };
  913 + },
  914 + getNumeroRemito: function() {
  915 + return {
  916 + then: function() {}
  917 + };
  918 + }
  919 + },
  920 + $timeout: timeout,
  921 + focaModalService: {},
  922 + remitoBusinessService: {
  923 + addArticulos: function() { }
  924 + },
  925 + $rootScope: {
  926 + $on: function() { }
  927 + },
  928 + focaBotoneraLateralService: {},
  929 + $localStorage: {}
  930 + });
  931 +
  932 + //act
  933 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  934 + scope.seleccionarCliente(true);
  935 +
  936 + //assert
  937 + expect(uibModal.open).toHaveBeenCalled();
  938 + });
  939 +
  940 + it('seleccionarCliente setea cliente y llama a abrirModalDomicilios', function(done) {
  941 +
  942 + //arrange
  943 + var scope = {
  944 + $broadcast: function() { },
  945 + $watch: function() { }
  946 + };
  947 + var uibModal = {
  948 + open: function() { }
  949 + };
  950 +
  951 + $controller('remitoController', {
  952 + $scope: scope,
  953 + $uibModal: uibModal,
  954 + $location: {},
  955 + $filter: {},
  956 + crearRemitoService: {
  957 + getBotonera: function() {},
  958 + getCotizacionByIdMoneda: function() {
  959 + return {
  960 + then: function() {}
  961 + };
  962 + },
  963 + getNumeroRemito: function() {
  964 + return {
  965 + then: function() {}
  966 + };
  967 + }
  968 + },
  969 + $timeout: timeout,
  970 + focaModalService: {},
  971 + remitoBusinessService: {
  972 + addArticulos: function() { }
  973 + },
  974 + $rootScope: {
  975 + $on: function() { }
  976 + },
  977 + focaBotoneraLateralService: {},
  978 + $localStorage: {}
  979 + });
  980 + var response = 'test';
  981 + var promesa = { result: Promise.resolve(response) };
  982 +
  983 + //act
  984 + spyOn(uibModal, 'open').and.returnValue(promesa);
  985 + spyOn(scope, 'abrirModalDomicilios');
  986 + scope.seleccionarCliente(true);
  987 +
  988 + //assert
  989 + promesa.result.then(function() {
  990 + expect(scope.abrirModalDomicilios).toHaveBeenCalledWith(response);
  991 + expect(scope.cliente).toEqual(response);
  992 + done();
  993 + });
  994 + });
  995 +
  996 + it('seleccionarProveedor abre modal', function() {
  997 +
  998 + //arrange
  999 + var scope = {
  1000 + $broadcast: function() { },
  1001 + $watch: function() { }
  1002 + };
  1003 + var focaModalService = {
  1004 + modal: function() { }
  1005 + };
  1006 +
  1007 + $controller('remitoController', {
  1008 + $scope: scope,
  1009 + $uibModal: {},
  1010 + $location: {},
  1011 + $filter: {},
  1012 + crearRemitoService: {
  1013 + getBotonera: function() {},
  1014 + getCotizacionByIdMoneda: function() {
  1015 + return {
  1016 + then: function() {}
  1017 + };
  1018 + },
  1019 + getNumeroRemito: function() {
  1020 + return {
  1021 + then: function() {}
  1022 + };
  1023 + }
  1024 + },
  1025 + $timeout: timeout,
  1026 + focaModalService: focaModalService,
  1027 + remitoBusinessService: {
  1028 + addArticulos: function() { }
  1029 + },
  1030 + $rootScope: {
  1031 + $on: function() { }
  1032 + },
  1033 + focaBotoneraLateralService: {},
  1034 + $localStorage: {}
  1035 + });
  1036 +
  1037 + //act
  1038 + spyOn(focaModalService, 'modal').and.returnValue({ then: function() { } });
  1039 + scope.seleccionarProveedor();
  1040 +
  1041 + //assert
  1042 + expect(focaModalService.modal).toHaveBeenCalled();
  1043 + });
  1044 +
  1045 + it('seleccionarProveedor setea provedor y llama a callback', function(done) {
  1046 +
  1047 + //arrange
  1048 + var scope = {
  1049 + $broadcast: function() { },
  1050 + $watch: function() { }
  1051 + };
  1052 + var focaModalService = {
  1053 + modal: function() { }
  1054 + };
  1055 +
  1056 + $controller('remitoController', {
  1057 + $scope: scope,
  1058 + $uibModal: {},
  1059 + $location: {},
  1060 + $filter: function() {
  1061 + return function() { };
  1062 + },
  1063 + crearRemitoService: {
  1064 + getBotonera: function() {},
  1065 + getCotizacionByIdMoneda: function() {
  1066 + return {
  1067 + then: function() {}
  1068 + };
  1069 + },
  1070 + getNumeroRemito: function() {
  1071 + return {
  1072 + then: function() {}
  1073 + };
  1074 + }
  1075 + },
  1076 + $timeout: timeout,
  1077 + focaModalService: focaModalService,
  1078 + remitoBusinessService: {
  1079 + addArticulos: function() { }
  1080 + },
  1081 + $rootScope: {
  1082 + $on: function() { }
  1083 + },
  1084 + focaBotoneraLateralService: {},
  1085 + $localStorage: {}
  1086 + });
  1087 + var response = { COD: 1 };
  1088 + var promesa = Promise.resolve(response);
  1089 + window.callback = function() { };
  1090 +
  1091 + //act
  1092 + spyOn(focaModalService, 'modal').and.returnValue(promesa);
  1093 + spyOn(window, 'callback');
  1094 + scope.seleccionarProveedor(window.callback);
  1095 +
  1096 + //assert
  1097 + promesa.then(function() {
  1098 + expect(window.callback).toHaveBeenCalled();
  1099 + expect(scope.remito.proveedor).toBe(response);
  1100 + expect(scope.remito.idProveedor).toBe(response.COD);
  1101 + done();
  1102 + });
  1103 + });
  1104 +
  1105 + it('abrirModalDomicilios abre modal', function() {
  1106 +
  1107 + //arrange
  1108 + var scope = {
  1109 + $broadcast: function() { },
  1110 + $watch: function() { }
  1111 + };
  1112 + var uibModal = {
  1113 + open: function() { }
  1114 + };
  1115 +
  1116 + $controller('remitoController', {
  1117 + $scope: scope,
  1118 + $uibModal: uibModal,
  1119 + $location: {},
  1120 + $filter: {},
  1121 + crearRemitoService: {
  1122 + getBotonera: function() {},
  1123 + getCotizacionByIdMoneda: function() {
  1124 + return {
  1125 + then: function() {}
  1126 + };
  1127 + },
  1128 + getNumeroRemito: function() {
  1129 + return {
  1130 + then: function() {}
  1131 + };
  1132 + }
  1133 + },
  1134 + $timeout: timeout,
  1135 + focaModalService: {},
  1136 + remitoBusinessService: {
  1137 + addArticulos: function() { }
  1138 + },
  1139 + $rootScope: {
  1140 + $on: function() { }
  1141 + },
  1142 + focaBotoneraLateralService: {},
  1143 + $localStorage: {}
  1144 + });
  1145 +
  1146 + //act
  1147 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  1148 + scope.abrirModalDomicilios();
  1149 +
  1150 + //assert
  1151 + expect(uibModal.open).toHaveBeenCalled();
  1152 +
  1153 + });
  1154 +
  1155 + it('getTotal devuelve correctamente', function() {
  1156 +
  1157 + //arrange
  1158 + var scope = {
  1159 + $broadcast: function() { },
  1160 + $watch: function() { }
  1161 + };
  1162 +
  1163 + $controller('remitoController', {
  1164 + $scope: scope,
  1165 + $uibModal: {},
  1166 + $location: {},
  1167 + $filter: {},
  1168 + crearRemitoService: {
  1169 + getBotonera: function() {},
  1170 + getCotizacionByIdMoneda: function() {
  1171 + return {
  1172 + then: function() {}
  1173 + };
  1174 + },
  1175 + getNumeroRemito: function() {
  1176 + return {
  1177 + then: function() {}
  1178 + };
  1179 + }
  1180 + },
  1181 + $timeout: timeout,
  1182 + focaModalService: {},
  1183 + remitoBusinessService: {
  1184 + addArticulos: function() { }
  1185 + },
  1186 + $rootScope: {
  1187 + $on: function() { }
  1188 + },
  1189 + focaBotoneraLateralService: {},
  1190 + $localStorage: {}
  1191 + });
  1192 + scope.remito = {
  1193 + articulosRemito: [
  1194 + {
  1195 + precio: 100,
  1196 + cantidad: 3
  1197 + }
  1198 + ]
  1199 + };
  1200 +
  1201 + //act
  1202 + var result = scope.getTotal();
  1203 +
  1204 + //assert
  1205 + expect(result).toEqual(300);
  1206 +
  1207 + });
  1208 +
  1209 + it('getSubTotal devuelve correctamente', function() {
  1210 +
  1211 + //arrange
  1212 + var scope = {
  1213 + $broadcast: function() { },
  1214 + $watch: function() { }
  1215 + };
  1216 +
  1217 + $controller('remitoController', {
  1218 + $scope: scope,
  1219 + $uibModal: {},
  1220 + $location: {},
  1221 + $filter: {},
  1222 + crearRemitoService: {
  1223 + getBotonera: function() {},
  1224 + getCotizacionByIdMoneda: function() {
  1225 + return {
  1226 + then: function() {}
  1227 + };
  1228 + },
  1229 + getNumeroRemito: function() {
  1230 + return {
  1231 + then: function() {}
  1232 + };
  1233 + }
  1234 + },
  1235 + $timeout: timeout,
  1236 + focaModalService: {},
  1237 + remitoBusinessService: {
  1238 + addArticulos: function() { }
  1239 + },
  1240 + $rootScope: {
  1241 + $on: function() { }
  1242 + },
  1243 + focaBotoneraLateralService: {},
  1244 + $localStorage: {}
  1245 + });
  1246 + scope.articuloACargar = {
  1247 + precio: 200,
  1248 + cantidad: 4
  1249 + };
  1250 +
  1251 + //act
  1252 + var result = scope.getSubTotal();
  1253 +
  1254 + //assert
  1255 + expect(result).toEqual(800);
  1256 +
  1257 + });
  1258 +
  1259 + it('seleccionarPreciosYCondiciones muestra alerta sino se eligió cliente', function() {
  1260 +
  1261 + //arrange
  1262 + var scope = {
  1263 + $broadcast: function() { },
  1264 + $watch: function() { }
  1265 + };
  1266 + var focaModalService = {
  1267 + alert: function() {}
  1268 + };
  1269 +
  1270 + $controller('remitoController', {
  1271 + $scope: scope,
  1272 + $uibModal: {},
  1273 + $location: {},
  1274 + $filter: {},
  1275 + crearRemitoService: {
  1276 + getBotonera: function() {},
  1277 + getCotizacionByIdMoneda: function() {
  1278 + return {
  1279 + then: function() {}
  1280 + };
  1281 + },
  1282 + getNumeroRemito: function() {
  1283 + return {
  1284 + then: function() {}
  1285 + };
  1286 + }
  1287 + },
  1288 + $timeout: timeout,
  1289 + focaModalService: focaModalService,
  1290 + remitoBusinessService: {
  1291 + addArticulos: function() { }
  1292 + },
  1293 + $rootScope: {
  1294 + $on: function() { }
  1295 + },
  1296 + focaBotoneraLateralService: {},
  1297 + $localStorage: {}
  1298 + });
  1299 +
  1300 + //act
  1301 + spyOn(focaModalService, 'alert');
  1302 + scope.seleccionarPreciosYCondiciones();
  1303 +
  1304 + //assert
  1305 + expect(focaModalService.alert).toHaveBeenCalledWith('Primero seleccione un cliente');
  1306 +
  1307 + });
  1308 +
  1309 + it('seleccionarPreciosYCondiciones abre modal', function() {
  1310 +
  1311 + //arrange
  1312 + var scope = {
  1313 + $broadcast: function() { },
  1314 + $watch: function() { }
  1315 + };
  1316 + var uibModal = {
  1317 + open: function() {}
  1318 + };
  1319 +
  1320 + $controller('remitoController', {
  1321 + $scope: scope,
  1322 + $uibModal: uibModal,
  1323 + $location: {},
  1324 + $filter: {},
  1325 + crearRemitoService: {
  1326 + getBotonera: function() {},
  1327 + getCotizacionByIdMoneda: function() {
  1328 + return {
  1329 + then: function() {}
  1330 + };
  1331 + },
  1332 + getNumeroRemito: function() {
  1333 + return {
  1334 + then: function() {}
  1335 + };
  1336 + }
  1337 + },
  1338 + $timeout: timeout,
  1339 + focaModalService: {},
  1340 + remitoBusinessService: {
  1341 + addArticulos: function() { }
  1342 + },
  1343 + $rootScope: {
  1344 + $on: function() { }
  1345 + },
  1346 + focaBotoneraLateralService: {},
  1347 + $localStorage: {}
  1348 + });
  1349 + scope.remito = {
  1350 + cliente: { COD: true }
  1351 + };
  1352 +
  1353 + //act
  1354 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  1355 + scope.seleccionarPreciosYCondiciones();
  1356 +
  1357 + //assert
  1358 + expect(uibModal.open).toHaveBeenCalled();
  1359 +
  1360 + });
  1361 +
  1362 + it('seleccionarMoneda abre modal y llama a cotizacion', function(done) {
  1363 +
  1364 + //arrange
  1365 + var scope = {
  1366 + $broadcast: function() { },
  1367 + $watch: function() { }
  1368 + };
  1369 + var focaModalService = {
  1370 + modal: function() {}
  1371 + };
  1372 + var uibModal = {
  1373 + open: function() {
  1374 + return {
  1375 + result: {
  1376 + then: function() {}
  1377 + }
  1378 + };
  1379 + }
  1380 + };
  1381 +
  1382 + $controller('remitoController', {
  1383 + $scope: scope,
  1384 + $uibModal: uibModal,
  1385 + $location: {},
  1386 + $filter: {},
  1387 + crearRemitoService: {
  1388 + getBotonera: function() {},
  1389 + getCotizacionByIdMoneda: function() {
  1390 + return {
  1391 + then: function() {}
  1392 + };
  1393 + },
  1394 + getNumeroRemito: function() {
  1395 + return {
  1396 + then: function() {}
  1397 + };
  1398 + }
  1399 + },
  1400 + $timeout: timeout,
  1401 + focaModalService: focaModalService,
  1402 + remitoBusinessService: {
  1403 + addArticulos: function() { }
  1404 + },
  1405 + $rootScope: {
  1406 + $on: function() { }
  1407 + },
  1408 + focaBotoneraLateralService: {},
  1409 + $localStorage: {}
  1410 + });
  1411 + var promesa = Promise.resolve('test');
  1412 +
  1413 + //act
  1414 + spyOn(focaModalService, 'modal').and.returnValue(promesa);
  1415 + scope.seleccionarMoneda();
  1416 +
  1417 + //assert
  1418 + promesa.then(function() {
  1419 + expect(focaModalService.modal).toHaveBeenCalled();
  1420 + done();
  1421 + });
  1422 + });
  1423 +
  1424 + it('seleccionarObservaciones levanta prompt', function() {
  1425 +
  1426 + //arrange
  1427 + var scope = {
  1428 + $broadcast: function() { },
  1429 + $watch: function() { }
  1430 + };
  1431 + var focaModalService = {
  1432 + prompt: function() {}
  1433 + };
  1434 +
  1435 + $controller('remitoController', {
  1436 + $scope: scope,
  1437 + $uibModal: {},
  1438 + $location: {},
  1439 + $filter: {},
  1440 + crearRemitoService: {
  1441 + getBotonera: function() {},
  1442 + getCotizacionByIdMoneda: function() {
  1443 + return {
  1444 + then: function() {}
  1445 + };
  1446 + },
  1447 + getNumeroRemito: function() {
  1448 + return {
  1449 + then: function() {}
  1450 + };
  1451 + }
  1452 + },
  1453 + $timeout: timeout,
  1454 + focaModalService: focaModalService,
  1455 + remitoBusinessService: {
  1456 + addArticulos: function() { }
  1457 + },
  1458 + $rootScope: {
  1459 + $on: function() { }
  1460 + },
  1461 + focaBotoneraLateralService: {},
  1462 + $localStorage: {}
  1463 + });
  1464 +
  1465 + //act
  1466 + spyOn(focaModalService, 'prompt').and.returnValue({ then: function() { } });
  1467 + scope.seleccionarObservaciones();
  1468 +
  1469 + //assert
  1470 + expect(focaModalService.prompt).toHaveBeenCalled();
  1471 + });
  1472 +
  1473 + it('abrirModalCotizacion abre modal', function() {
  1474 +
  1475 + //arrange
  1476 + var scope = {
  1477 + $broadcast: function() { },
  1478 + $watch: function() { }
  1479 + };
  1480 + var uibModal = {
  1481 + open: function() {}
  1482 + };
  1483 +
  1484 + $controller('remitoController', {
  1485 + $scope: scope,
  1486 + $uibModal: uibModal,
  1487 + $location: {},
  1488 + $filter: {},
  1489 + crearRemitoService: {
  1490 + getBotonera: function() {},
  1491 + getCotizacionByIdMoneda: function() {
  1492 + return {
  1493 + then: function() {}
  1494 + };
  1495 + },
  1496 + getNumeroRemito: function() {
  1497 + return {
  1498 + then: function() {}
  1499 + };
  1500 + }
  1501 + },
  1502 + $timeout: timeout,
  1503 + focaModalService: {},
  1504 + remitoBusinessService: {
  1505 + addArticulos: function() { }
  1506 + },
  1507 + $rootScope: {
  1508 + $on: function() { }
  1509 + },
  1510 + focaBotoneraLateralService: {},
  1511 + $localStorage: {}
  1512 + });
  1513 +
  1514 + //act
  1515 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  1516 + scope.abrirModalCotizacion();
  1517 +
  1518 + //assert
  1519 + expect(uibModal.open).toHaveBeenCalled();
  1520 + });
  1521 + });
  1522 +});
... ... @@ -18,7 +18,7 @@ describe('Servicios modulo crear remito', function() {
18 18 servicio = _crearRemitoService_;
19 19 httpBackend = $httpBackend;
20 20 });
21   - })
  21 + });
22 22  
23 23 it('existe el servicio crearRemitoService', function() {
24 24  
... ... @@ -83,7 +83,6 @@ describe('Servicios modulo crear remito', function() {
83 83 it('función setRemito setea correctamente', function() {
84 84  
85 85 //arrange
86   - var result;
87 86 var fakeParam = 1;
88 87  
89 88 //act