playwright: intercept send request to ensure sticky event are sent

This commit is contained in:
Valere
2026-01-19 13:58:36 +01:00
parent 36a1aa3c59
commit a985281b46

View File

@@ -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);
});