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.pull/21833/head
							parent
							
								
									16b2f09915
								
							
						
					
					
						commit
						36708cc5db
					
				|  | @ -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 New Issue
	
	 Bruno Windels
						Bruno Windels