review: fix/clean the route interception

This commit is contained in:
Valere
2026-01-19 15:28:22 +01:00
parent a985281b46
commit ed8cee9f58

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. Please see LICENSE in the repository root for full details.
*/ */
import { expect, test } from "@playwright/test"; import { expect, type Page, test, type Request } from "@playwright/test";
import { SpaHelpers } from "./spa-helpers"; import { SpaHelpers } from "./spa-helpers";
@@ -23,15 +23,10 @@ test("One to One call using matrix rtc 2.0 aka sticky events", async ({
let androlHasSentStickyEvent = false; let androlHasSentStickyEvent = false;
await page.route( await interceptEventSend(page, "org.matrix.msc4143.rtc.member", (req) => {
"**/_matrix/client/v3/rooms/**/send/org.matrix.msc4143.rtc.member/**", androlHasSentStickyEvent =
async (route, req) => { androlHasSentStickyEvent || isStickySend(req.url());
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"); await SpaHelpers.createCall(page, "Androl", "HelloCall", true, "2_0");
@@ -47,13 +42,12 @@ test("One to One call using matrix rtc 2.0 aka sticky events", async ({
let pevaraHasSentStickyEvent = false; let pevaraHasSentStickyEvent = false;
await guestPage.route( await interceptEventSend(
"**/_matrix/client/v3/rooms/**/send/org.matrix.msc4143.rtc.member/**", guestPage,
async (route, req) => { "org.matrix.msc4143.rtc.member",
pevaraHasSentStickyEvent = !!new URL(req.url()).searchParams.get( (req) => {
"org.matrix.msc4354.sticky_duration_ms", pevaraHasSentStickyEvent =
); pevaraHasSentStickyEvent || isStickySend(req.url());
return route.continue();
}, },
); );
@@ -71,3 +65,23 @@ test("One to One call using matrix rtc 2.0 aka sticky events", async ({
expect(androlHasSentStickyEvent).toEqual(true); expect(androlHasSentStickyEvent).toEqual(true);
expect(pevaraHasSentStickyEvent).toEqual(true); expect(pevaraHasSentStickyEvent).toEqual(true);
}); });
function isStickySend(url: string): boolean {
return !!new URL(url).searchParams.get(
"org.matrix.msc4354.sticky_duration_ms",
);
}
async function interceptEventSend(
page: Page,
eventType: string,
callback: (request: Request) => void,
): Promise<void> {
await page.route(
`**/_matrix/client/v3/rooms/**/send/${eventType}/**`,
async (route, req) => {
callback(req);
return route.continue();
},
);
}