diff --git a/src/scenario.js b/src/scenario.js index 3145c9471a..24983d8cbf 100644 --- a/src/scenario.js +++ b/src/scenario.js @@ -28,7 +28,7 @@ const acceptServerNoticesInviteAndConsent = require('./tests/server-notices-cons const {enableLazyLoading, getE2EDeviceFromSettings} = require('./tests/settings'); const verifyDeviceForUser = require("./tests/verify-device"); -module.exports = async function scenario(createSession, createRestSession) { +module.exports = async function scenario(createSession, restCreator) { async function createUser(username) { const session = await createSession(username); await signup(session, session.username, 'testtest', session.hsUrl); @@ -38,9 +38,26 @@ module.exports = async function scenario(createSession, createRestSession) { const alice = await createUser("alice"); const bob = await createUser("bob"); + const charlies = await createRestUsers(restCreator); - await createDirectoryRoomAndTalk(alice, bob); - await createE2ERoomAndTalk(alice, bob); + // await createDirectoryRoomAndTalk(alice, bob); + // await createE2ERoomAndTalk(alice, bob); + await aLazyLoadingTest(alice, bob, charlies); +} + +function range(start, amount, step = 1) { + const r = []; + for (let i = 0; i < amount; ++i) { + r.push(start + (i * step)); + } + return r; +} + +async function createRestUsers(restCreator) { + const usernames = range(1, 10).map((i) => `charly-${i}`); + const charlies = await restCreator.createSessionRange(usernames, 'testtest'); + await charlies.setDisplayName((s) => `Charly #${s.userName().split('-')[1]}`); + return charlies; } async function createDirectoryRoomAndTalk(alice, bob) { @@ -84,7 +101,18 @@ async function createE2ERoomAndTalk(alice, bob) { await receiveMessage(alice, {sender: "bob", body: bobMessage, encrypted: true}); } -async function aLLtest(alice, bob) { +async function aLazyLoadingTest(alice, bob, charlies) { await enableLazyLoading(alice); - + const room = "Lazy Loading Test"; + const alias = "#lltest:localhost"; + await createRoom(bob, room); + await changeRoomSettings(bob, {directory: true, visibility: "public_no_guests", alias}); + // wait for alias to be set by server after clicking "save" + await bob.delay(500); + await charlies.join(alias); + const messageRange = range(1, 20); + for(let i = 20; i >= 1; --i) { + await sendMessage(bob, `I will only say this ${i} time(s)!`); + } + await join(alice, room); }