Я бы хотел, чтобы функция, за которой я следил, не выполнялась до тех пор, пока не выполнится какое-либо условие.Вот пример:
function openInfoDialog(id) {
let scope = $scope.$new(true);
scope.dataLoading = true;
api.getData(id).then(data => {
let processedData = process(data);
scope.columns = processedData.columns;
scope.data = processedData.data;
scope.dataLoading = false;
});
ngDialog.open({
//various dialog params,
scope
});
}
В моем тесте я пытаюсь проверить, как данные возвращаются функцией process
.Единственный способ проверить, как это проверить, - это шпионить за ngDialog.open
и проверять, что вызывается.
Однако в моем тесте ngDialog
вызывается до завершения функции process
, что означает scope.data
не определено.
Можно ли как-нибудь сказать ngDialog
дождаться завершения блока then
в тесте?Или подождите, пока scope.dataLoading не станет true.
Чтобы было ясно, я не хочу менять функциональность моего контроллера, мне нужно протестировать то, что написано выше.
Спасибо за любыепомощь.