diff --git a/build/element-call/config.json b/build/element-call/config.json new file mode 100644 index 000000000..9ad2fe004 --- /dev/null +++ b/build/element-call/config.json @@ -0,0 +1,5 @@ +{ + "matrix_rtc_session": { + "delayed_leave": { "delay_ms": 60000, "restart_ms": 15000 } + } +} diff --git a/e2e/local-homeserver.spec.ts b/e2e/local-homeserver.spec.ts index bae50395d..5dda97090 100644 --- a/e2e/local-homeserver.spec.ts +++ b/e2e/local-homeserver.spec.ts @@ -109,9 +109,17 @@ test.describe('local homeserver regression', () => { ); await loginUI(page, alice); await openRoom(page, room); + // Wait for the timeline to settle at the newest message first: a wheel + // during the initial jump-to-bottom gets snapped back (test race, seen + // ~1 in 5 runs once matrix-js-sdk 44 changed the load timing). + await expect(page.getByText('filler 39')).toBeInViewport(); await page.mouse.move(600, 350); - await page.mouse.wheel(0, -600); - await expect(page.getByRole('button', { name: /Jump to Latest/ })).toBeVisible(); + await expect(async () => { + await page.mouse.wheel(0, -600); + await expect(page.getByRole('button', { name: /Jump to Latest/ })).toBeVisible({ + timeout: 2000, + }); + }).toPass({ timeout: 20_000 }); await page.locator('[data-slate-editor]').first().click(); await page.keyboard.type('sent while scrolled up'); await page.keyboard.press('Enter'); diff --git a/package-lock.json b/package-lock.json index 166ae2d33..cc9868e39 100644 --- a/package-lock.json +++ b/package-lock.json @@ -81,7 +81,7 @@ }, "devDependencies": { "@axe-core/playwright": "4.13.0", - "@lotusguild/element-call-embedded": "0.25.0-lotus.29", + "@lotusguild/element-call-embedded": "0.28.0-lotus.1", "@playwright/test": "1.63.0", "@rollup/plugin-inject": "5.0.5", "@rollup/plugin-wasm": "6.2.2", @@ -2695,9 +2695,9 @@ "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" }, "node_modules/@lotusguild/element-call-embedded": { - "version": "0.25.0-lotus.29", - "resolved": "https://code.lotusguild.org/api/packages/LotusGuild/npm/%40lotusguild%2Felement-call-embedded/-/0.25.0-lotus.29/element-call-embedded-0.25.0-lotus.29.tgz", - "integrity": "sha512-IAIEyiOFfkfb1k2JfBNOkX4LOVaGF8LzeKVQYCqKoyKDVao6rYEYA71LON8ntTaxkredXOK4CeLFsnkCiJHuGg==", + "version": "0.28.0-lotus.1", + "resolved": "https://code.lotusguild.org/api/packages/LotusGuild/npm/%40lotusguild%2Felement-call-embedded/-/0.28.0-lotus.1/element-call-embedded-0.28.0-lotus.1.tgz", + "integrity": "sha512-MRbrDv4D36q0a37WfPxuTxszcLDflx+ciMJM3W0UTxLApYK0mbMrFfAUo5yNhoQVUbVrcxI43N3M47zU4/ktAQ==", "dev": true }, "node_modules/@matrix-org/matrix-sdk-crypto-wasm": { diff --git a/package.json b/package.json index 1072386f6..4c6514661 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ }, "devDependencies": { "@axe-core/playwright": "4.13.0", - "@lotusguild/element-call-embedded": "0.25.0-lotus.29", + "@lotusguild/element-call-embedded": "0.28.0-lotus.1", "@playwright/test": "1.63.0", "@rollup/plugin-inject": "5.0.5", "@rollup/plugin-wasm": "6.2.2", diff --git a/vite.config.js b/vite.config.js index 9557eb18e..209d095b4 100644 --- a/vite.config.js +++ b/vite.config.js @@ -29,6 +29,17 @@ const copyFiles = { dest: 'public/element-call', rename: { stripBase: 4 }, }, + { + // [Gitea #201] Element Call's config. Since v0.28 the embedded package + // ships none (its defaults are an 18 s delayed leave), so ship the Lotus + // values: keep the call membership 60 s through a homeserver stall + // (element-call lotus #46). On the web the deploy never overwrites the + // server's own public/element-call/config.json (rsync excludes it); this + // copy is what the desktop app and fresh installs get. + src: 'build/element-call/config.json', + dest: 'public/element-call', + rename: { stripBase: 2 }, + }, { src: 'config.json', dest: '',