тест жасмин с трудом работать с обещанием - PullRequest
0 голосов
/ 24 сентября 2018

Я пишу жасминовый тест, который после нажатия кнопки открывает диалоговое окно ?.в базе кода функция нажатия вызывает функцию openNewDialog.Внутри этой функции есть вызов вспомогательной функции, которая выполняет внутренний вызов для извлечения некоторых данных.эта функция высмеивается, чтобы вернуть массив и избежать реального внутреннего вызова.Как только onPromisHelper.getSomeInfo(). разрешен, он вызывает функцию init для инициализации диалога, а затем открывает диалог.Проблема, с которой я сталкиваюсь, заключается в том, что проверка открытия диалогов в тесте жасмина происходит до того, как вернется результат onPromisHelper.getSomeInfo()..Я не уверен, как справиться с этой ситуацией.Любая идея, как заставить тест жасмина ждать, пока onPromisHelper.getSomeInfo() не будет решен?

var createDialogButton = // some code to retrieve the button
    createDialogButton.firePress(); //fire press eventuall calls openNewDialog. 

> //openNewDialog calls to a helper function that returns a new dialog
>// which being mocked to return a simple dialog  //openNewDialog also
> //makes an API call to get some info which is being spied as following


spyOn(onPromiseHelper, "getSomeInfo").and.returnValue(Promise.resolve([
    {
        displayName: "firstLocation",
        id: "firstLocation"
    },
    {
        displayName: "scondLocation",
        id: "firstLocation"
    }

]));



expect(newDialog.isOpen()).toBeTruthy(); // the problem is this line being executed right after fire press, before all the function inside openNewDialog function gets executed. so this check fails.

код для openNewDialog

openNewDialog: function() {

     var dialog = // some code creates a dialog

     onPromisHelper.getSomeInfo().then((oSuccessResult) => {
        dialog.init(oSuccessResult);
        dialog.openDialog();
    }).catch((oFail) => {
        console.log(oFail);
    });

    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...