Code coverage report for src\components\factory\voyagerListFactory.js

# all files / src/components/factory/ voyagerListFactory.js

26.92% Statements 7/26
0% Branches 0/6
16.67% Functions 1/6
26.92% Lines 7/26

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    591×
    1×

    1×

    1×

    1×

    1×

    1×

     (function component(ng) {
      ng.module('components').factory('voyagerListFactory', voyagerListFactory);

      voyagerListFactory.$inject = ['checkedButton', 'voyagerFactory', '$location'];

      /* Фабрика описывающая логику таблиц Voyager list */
      function voyagerListFactory(checkedButton, voyagerFactory, $location) {
        var selectedVoyages = [];
        return {
            selectVoyager: selectVoyager,
            selectAllVoyager: selectAllVoyager,
            view: view
        };

        /* Функция выделения одного элемента */
        function selectVoyager(voyage, check) {
            var index;

            if (check) {
              if (this.selectedVoyages == null) {
                this.selectedVoyages = [];
              }

              this.selectedVoyages.push(voyage);
            } else {
              index = this.selectedVoyages.indexOf(voyage);

              this.selectedVoyages.splice(index, 1);
            }

            /* отправляем количество выделеных элементов в фабрику checkedButton */
            checkedButton.setMultichecked(this.selectedVoyages.length);
        }

        /* функция выделения всех элементов */
        function selectAllVoyager(check) {
          var index;

          if (check) {
            this.selectedVoyages = [];

            this.testData.data.forEach(function(element) {
              this.selectedVoyages.push(element);
            }, this);
          } else {
            this.selectedVoyages = [];
          }

          /* отправляем количество выделеных элементов в фабрику checkedButton */
          checkedButton.setMultichecked(this.selectedVoyages.length);
        }

        /* функция открытия элемента */
        function view(voyage) {
          voyagerFactory.registr(voyage);
          $location.path('/voyage')
        }
      }
    })(angular);