Skip to content

Commit a69f402

Browse files
committed
Fixed non-deterministic network test
1 parent 6f0e61f commit a69f402

1 file changed

Lines changed: 28 additions & 14 deletions

File tree

e2e/tests/functional/tree.e2e.spec.js

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -190,26 +190,39 @@ test.describe('Main Tree', () => {
190190
test('Opening and closing an item before the request has been fulfilled will abort the request @couchdb @network', async ({
191191
page
192192
}) => {
193-
let requestWasAborted = false;
194-
195-
page.on('requestfailed', (request) => {
196-
// check if the request was aborted
197-
if (request.failure().errorText === 'net::ERR_ABORTED') {
198-
requestWasAborted = true;
199-
}
200-
});
201-
202193
await createDomainObjectWithDefaults(page, {
203194
type: 'Folder',
204195
name: 'Foo'
205196
});
206197

207198
// Intercept and delay request
208-
const delayInMs = 500;
199+
const ARTIFICIAL_NETWORK_DELAY_MS = 10000;
200+
201+
page.route('**/_all_docs*', async (route) => {
202+
await new Promise((resolve) => {
203+
setTimeout(() => {
204+
resolve(resolve);
205+
}, ARTIFICIAL_NETWORK_DELAY_MS);
206+
});
207+
return route.continue();
208+
});
209209

210-
await page.route('**', async (route, request) => {
211-
await new Promise((resolve) => setTimeout(resolve, delayInMs));
212-
route.continue();
210+
const allDocsRequestAbortedPromise = new Promise((resolve) => {
211+
page.on('requestfailed', (request) => {
212+
// check if the request was aborted
213+
if (request.url().includes('_all_docs')) {
214+
if (request.failure().errorText === 'net::ERR_ABORTED') {
215+
resolve(true);
216+
} else {
217+
resolve(false);
218+
}
219+
}
220+
});
221+
page.on('requestfinished', (request) => {
222+
if (request.url().includes('_all_docs')) {
223+
resolve(false);
224+
}
225+
});
213226
});
214227

215228
// Quickly Expand/close the root folder
@@ -219,7 +232,8 @@ test.describe('Main Tree', () => {
219232
})
220233
.dblclick({ delay: 400 });
221234

222-
expect(requestWasAborted).toBe(true);
235+
const allDocsRequestAborted = await allDocsRequestAbortedPromise;
236+
expect(allDocsRequestAborted).toBe(true);
223237
});
224238

225239
test.describe('Root objects', () => {

0 commit comments

Comments
 (0)