@ -58,5 +58,35 @@ describe('async', () => {
|
||||
expect(timeout.$('.val').getText()).toEqual('10');
|
||||
});
|
||||
|
||||
it('should wait via frameworkStabilizer', () => {
|
||||
var whenAllStable = function() {
|
||||
return browser.executeAsyncScript('window.frameworkStabilizers[0](arguments[0]);');
|
||||
};
|
||||
|
||||
// This disables protractor's wait mechanism
|
||||
browser.ignoreSynchronization = true;
|
||||
|
||||
var timeout = $('#multiDelayedIncrements');
|
||||
|
||||
// At this point, the async action is still pending, so the count should
|
||||
// still be 0.
|
||||
expect(timeout.$('.val').getText()).toEqual('0');
|
||||
|
||||
timeout.$('.action').click();
|
||||
|
||||
whenAllStable().then((didWork) => {
|
||||
// whenAllStable should only be called when all the async actions
|
||||
// finished, so the count should be 10 at this point.
|
||||
expect(timeout.$('.val').getText()).toEqual('10');
|
||||
expect(didWork).toBeTruthy(); // Work was done.
|
||||
});
|
||||
|
||||
whenAllStable().then((didWork) => {
|
||||
// whenAllStable should be called immediately since nothing is pending.
|
||||
expect(didWork).toBeFalsy(); // No work was done.
|
||||
browser.ignoreSynchronization = false;
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(verifyNoBrowserErrors);
|
||||
});
|
||||
|
Reference in New Issue
Block a user