diff --git a/playwright/spa-call-sticky.spec.ts b/playwright/spa-call-sticky.spec.ts index 58e9c997..8a0acf5a 100644 --- a/playwright/spa-call-sticky.spec.ts +++ b/playwright/spa-call-sticky.spec.ts @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE in the repository root for full details. */ -import { test } from "@playwright/test"; +import { expect, test } from "@playwright/test"; import { SpaHelpers } from "./spa-helpers"; @@ -21,7 +21,19 @@ test("One to One call using matrix rtc 2.0 aka sticky events", async ({ await page.goto("/"); - await SpaHelpers.createCall(page, "John Doe", "HelloCall", true, "2_0"); + let androlHasSentStickyEvent = false; + + await page.route( + "**/_matrix/client/v3/rooms/**/send/org.matrix.msc4143.rtc.member/**", + async (route, req) => { + androlHasSentStickyEvent = !!new URL(req.url()).searchParams.get( + "org.matrix.msc4354.sticky_duration_ms", + ); + return route.continue(); + }, + ); + + await SpaHelpers.createCall(page, "Androl", "HelloCall", true, "2_0"); const inviteLink = await SpaHelpers.getCallInviteLink(page); @@ -33,8 +45,29 @@ test("One to One call using matrix rtc 2.0 aka sticky events", async ({ await guestPage.goto("/"); - await SpaHelpers.joinCallFromInviteLink(guestPage, inviteLink); + let pevaraHasSentStickyEvent = false; + + await guestPage.route( + "**/_matrix/client/v3/rooms/**/send/org.matrix.msc4143.rtc.member/**", + async (route, req) => { + pevaraHasSentStickyEvent = !!new URL(req.url()).searchParams.get( + "org.matrix.msc4354.sticky_duration_ms", + ); + return route.continue(); + }, + ); + + await SpaHelpers.joinCallFromInviteLink( + guestPage, + inviteLink, + "Pevara", + "2_0", + ); await SpaHelpers.expectVideoTilesCount(page, 2); await SpaHelpers.expectVideoTilesCount(guestPage, 2); + + // Assert both sides have sent sticky membership events + expect(androlHasSentStickyEvent).toEqual(true); + expect(pevaraHasSentStickyEvent).toEqual(true); });