MOBILE-4420 behat: Support sync network requests

main
Dani Palou 2023-09-15 12:34:54 +02:00
parent 1f05729cb0
commit a4ea36399f
1 changed files with 16 additions and 4 deletions

View File

@ -236,15 +236,27 @@ export class TestingBehatBlockingService {
NgZone.run(() => { NgZone.run(() => {
const index = requestIndex++; const index = requestIndex++;
const key = 'httprequest-' + index; const key = 'httprequest-' + index;
const isAsync = args[2] !== false;
try { try {
// Add to the list of pending requests. // Add to the list of pending requests.
TestingBehatBlocking.block(key); TestingBehatBlocking.block(key);
// Detect when it finishes and remove it from the list. // Detect when it finishes and remove it from the list.
this.addEventListener('loadend', () => { if (isAsync) {
TestingBehatBlocking.unblock(key); this.addEventListener('loadend', () => {
}); TestingBehatBlocking.unblock(key);
});
} else {
const realSend = this.send;
this.send = (...args) => {
try {
return realSend.apply(this, args);
} finally {
TestingBehatBlocking.unblock(key);
}
};
}
return realOpen.apply(this, args); return realOpen.apply(this, args);
} catch (error) { } catch (error) {