MCPcopy Create free account
hub / github.com/angular/angular / waitForAngular

Function waitForAngular

packages/examples/test-utils/index.ts:71–121  ·  view source on GitHub ↗
(driver: webdriver.WebDriver)

Source from the content-addressed store, hash-verified

69}
70
71export async function waitForAngular(driver: webdriver.WebDriver): Promise<void> {
72 try {
73 await driver.executeAsyncScript(`
74 var done = arguments[arguments.length - 1];
75 setTimeout(function() {
76 var testabilities = [];
77 if (window.getAllAngularTestabilities) {
78 try {
79 testabilities = testabilities.concat(window.getAllAngularTestabilities());
80 } catch (e) {}
81 }
82 if (window.angular) {
83 try {
84 var ng1Roots = document.querySelectorAll('[ng-app], [ng\\\\:app], [x-ng-app], body');
85 for (var i = 0; i < ng1Roots.length; i++) {
86 var el = window.angular.element(ng1Roots[i]);
87 if (el && el.injector && el.injector()) {
88 var $browser = el.injector().get('$browser');
89 if ($browser && $browser.notifyWhenNoOutstandingRequests) {
90 testabilities.push({
91 whenStable: function(cb) { $browser.notifyWhenNoOutstandingRequests(cb); }
92 });
93 break;
94 }
95 }
96 }
97 } catch (e) {}
98 }
99 if (testabilities.length > 0) {
100 var count = testabilities.length;
101 var decrement = function() {
102 if (--count === 0) {
103 done();
104 }
105 };
106 testabilities.forEach(function(t) {
107 try {
108 t.whenStable(decrement);
109 } catch (e) {
110 decrement();
111 }
112 });
113 return;
114 }
115 done();
116 }, 50);
117 `);
118 } catch {
119 // Ignore errors if testability is not present
120 }
121}
122
123export async function openBrowser(
124 driver: webdriver.WebDriver,

Calls 1

executeAsyncScriptMethod · 0.80

Tested by

no test coverage detected