You've already forked matrix-react-sdk
mirror of
https://github.com/matrix-org/matrix-react-sdk.git
synced 2025-11-11 20:22:36 +03:00
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:
@@ -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 &&
|
||||
|
||||
Reference in New Issue
Block a user