Область действия первого модального окна не отображается в модульном тесте, когда в контроллере определены два модальных режима. - PullRequest
0 голосов
/ 10 мая 2019

В контроллере в моем коде определены два модальных режима. Модал и его область создаются во время инициализации. Модальный модал в файле модульного теста всегда хранит только область действия второго модального объекта, который инициализирован, и его область всегда отображается, когда я смотрю в отладчике.

Как это можно решить?

Контроллер:


init();

function init() {
      --some code--
      createItemEntryModal();
      createItemBGModal(); 
      }

function createItemEntryModal() {
      itemEntryModalScope = $rootScope.$new();
      itemEntryModalScope.testValue = true
      $ionicModal.fromTemplateUrl('/item-entry-modal.html', {
        scope: itemEntryModalScope,
        animation: 'slide-in-up'
      }).then((modal) => {
        itemEntryModal = modal;
      });
    }

function createItemBGModal() {
      itemBGModalScope = $rootScope.$new();
      itemBGModalScope.testValue = false
      $ionicModal.fromTemplateUrl('/item-bg-modal.html', {
        scope: itemBGModalScope,
        animation: 'slide-in-up'
      }).then((modal) => {
        itemBGModal = modal;
      });
    }

Файл модульного теста:

 mockModal = sinon.stub({
                show: function () {
                },
                hide: function () {
                },
                remove: function () {
                }
            });

            modalStub = sinon.stub($ionicModal, "fromTemplateUrl", function (url, _config) {
                modalScope = _config.scope;
                return $q.when(mockModal);
            });

describe('some statement here', function () {
      beforeEach(function () {
                createController(testData().default);
            });

it('should show createItemEntryModal', function () {
                expect(modalScope.testValue).to.be.equal(true)

            });
        });

Я ожидаю, что значение будет истинным, потому что это тестовый пример для модального ввода элемента. Но при отладке я вижу, что testValue отображается как false, поскольку он принимает второй модал в списке инициализации.

...