alexcrack / angular-ui-notification

Angular.js service providing simple notifications using Bootstrap 3 styles with css transitions for animating
MIT License
536 stars 169 forks source link

FIX: cancel $timeout promises when calling clearAll (related to #78) #98

Open gkniazkov opened 7 years ago

gkniazkov commented 7 years ago

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:

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();
    })();
}