Я пишу жасминовый тест, который после нажатия кнопки открывает диалоговое окно ?.в базе кода функция нажатия вызывает функцию 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);
});
},