Protractor doesn't wait until timeouts will finish after calling clearAll
This changes are related to issue.
I suppose that use $intervsal instead of $timeout is wrong way, because protractor waits for $timeout and should do it here too.
So with these changes, we can write something like this:
browser.ignoreSynchronization = true;
showNotificationButton.click();
// check if notification appears
browser.executeAsyncScript(clearAllNotifications);
browser.ignoreSynchronization = false;
// test runs and go ahead immediately
function clearAllNotifications(callback) {
(function() {
var el = document.querySelector('[ng-app]');
var injector = angular.element(el).injector();
var Notification = injector.get('Notification');
var $timeout = injector.get('$timeout');
Notification.clearAll();
callback();
})();
}
Benefits:
This changes are related to issue. I suppose that use $intervsal instead of $timeout is wrong way, because protractor waits for $timeout and should do it here too.
So with these changes, we can write something like this: