wait for next sync before inspecting memberlist
before we needed a 10s delay here to make the test work reliable, this should be faster in the best case.
This commit is contained in:
parent
16b2f09915
commit
36708cc5db
3 changed files with 31 additions and 6 deletions
|
@ -102,7 +102,8 @@ async function joinCharliesWhileAliceIsOffline(alice, charly6to10) {
|
|||
await member6.talk("where is charly?");
|
||||
}
|
||||
member6.log.unmute().done();
|
||||
await delay(1000);
|
||||
const catchupPromise = alice.waitForNextSuccessfulSync();
|
||||
await alice.setOffline(false);
|
||||
await delay(1000);
|
||||
await catchupPromise;
|
||||
await delay(2000);
|
||||
}
|
||||
|
|
|
@ -161,6 +161,33 @@ module.exports = class RiotSession {
|
|||
});
|
||||
}
|
||||
|
||||
waitForSyncResponseWith(predicate) {
|
||||
return this.page.waitForResponse(async (response) => {
|
||||
if (response.request().url().indexOf("/sync") === -1) {
|
||||
return false;
|
||||
}
|
||||
return predicate(response);
|
||||
});
|
||||
}
|
||||
|
||||
/** wait for a /sync request started after this call that gets a 200 response */
|
||||
async waitForNextSuccessfulSync() {
|
||||
const syncUrls = [];
|
||||
function onRequest(request) {
|
||||
if (request.url().indexOf("/sync") !== -1) {
|
||||
syncUrls.push(request.url());
|
||||
}
|
||||
}
|
||||
|
||||
this.page.on('request', onRequest);
|
||||
|
||||
await this.page.waitForResponse((response) => {
|
||||
return syncUrls.includes(response.request().url()) && response.status() === 200;
|
||||
});
|
||||
|
||||
this.page.removeListener('request', onRequest);
|
||||
}
|
||||
|
||||
goto(url) {
|
||||
return this.page.goto(url);
|
||||
}
|
||||
|
|
|
@ -64,10 +64,7 @@ module.exports.receiveMessage = async function(session, expectedMessage) {
|
|||
if (isExpectedMessage) {
|
||||
assertMessage(lastMessage, expectedMessage);
|
||||
} else {
|
||||
await session.page.waitForResponse(async (response) => {
|
||||
if (response.request().url().indexOf("/sync") === -1) {
|
||||
return false;
|
||||
}
|
||||
await session.waitForSyncResponseWith(async (response) => {
|
||||
const body = await response.text();
|
||||
if (expectedMessage.encrypted) {
|
||||
return body.indexOf(expectedMessage.sender) !== -1 &&
|
||||
|
|
Loading…
Reference in a new issue