Skip to content

Commit dbce48b

Browse files
authored
Run Playwright tests against Dendrite & Pinecone periodically (#28888)
* Switch to TestContainers for manging services in Playwright Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Flip fixture dependency order Signed-off-by: Michael Telatynski <[email protected]> * Remove mas dep Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Update matrix-authentication-service in Playwright tests Signed-off-by: Michael Telatynski <[email protected]> * delint Signed-off-by: Michael Telatynski <[email protected]> * Fix SMTP port Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Comments Signed-off-by: Michael Telatynski <[email protected]> * Strip ansi from playwright logs to make them more readable Signed-off-by: Michael Telatynski <[email protected]> * Actually do the update Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Remove access to homeserver.config.baseUrl field in favour of homeserver.baseUrl Signed-off-by: Michael Telatynski <[email protected]> * Use sane default_server_config and specify server.invalid in the specific tests which demand it Signed-off-by: Michael Telatynski <[email protected]> * Fix mas run Signed-off-by: Michael Telatynski <[email protected]> * break cycle Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * typo Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * prettier Signed-off-by: Michael Telatynski <[email protected]> * Wire up basics of dendriteHomeserver Signed-off-by: Michael Telatynski <[email protected]> * Run Playwright tests against Dendrite & Pinecone periodically Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Fix playwright-image-updates.yaml workflow Signed-off-by: Michael Telatynski <[email protected]> * Add `X-Run-All-Tests` label for running all tests Signed-off-by: Michael Telatynski <[email protected]> * Ignore failing tests in stale-screenshot-reporter.ts to avoid confusing errors Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Specify Synapse ui_auth.session_timeout only on tests which require it As Dendrite lacks this configuration option Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * React to MatrixEvent sender/target sentinels being updated for rendering state events Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Remove test code Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * React to sentinel changes in EventListSummary Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Docs Signed-off-by: Michael Telatynski <[email protected]> * Avoid reusing user1234 Signed-off-by: Michael Telatynski <[email protected]> * Fix stale-screenshot-reporter.ts Signed-off-by: Michael Telatynski <[email protected]> * Clean up public rooms between tests on reused homeserver Signed-off-by: Michael Telatynski <[email protected]> * Deflake spotlight when homeserver is reused Signed-off-by: Michael Telatynski <[email protected]> * Deflake more tests using existing username Signed-off-by: Michael Telatynski <[email protected]> * Clean mailhog between tests Signed-off-by: Michael Telatynski <[email protected]> * Fix more flakes Signed-off-by: Michael Telatynski <[email protected]> * Fix missing _request Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Fix playwright flaky tests Signed-off-by: Michael Telatynski <[email protected]> * Wipe mailhog between test runs Signed-off-by: Michael Telatynski <[email protected]> * Delint Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * delint Signed-off-by: Michael Telatynski <[email protected]> * Deflake more tests Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Fix flaky tests Signed-off-by: Michael Telatynski <[email protected]> * Fix flaky tests Signed-off-by: Michael Telatynski <[email protected]> * Fix mas config Signed-off-by: Michael Telatynski <[email protected]> * Fix another flaky test Signed-off-by: Michael Telatynski <[email protected]> * Fix playwright flakes due to floating promises Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Fix flaky playwright tests Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Iterate Signed-off-by: Michael Telatynski <[email protected]> * Update services.ts --------- Signed-off-by: Michael Telatynski <[email protected]>
1 parent bb41616 commit dbce48b

File tree

55 files changed

+264
-100
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+264
-100
lines changed

.github/workflows/end-to-end-tests.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ jobs:
114114
- Chrome
115115
- Firefox
116116
- WebKit
117+
- Dendrite
118+
- Pinecone
117119
runAllTests:
118120
- ${{ github.event_name == 'schedule' || contains(github.event.pull_request.labels.*.name, 'X-Run-All-Tests') }}
119121
# Skip the Firefox & Safari runs unless this was a cron trigger or PR has X-Run-All-Tests label
@@ -122,6 +124,10 @@ jobs:
122124
project: Firefox
123125
- runAllTests: false
124126
project: WebKit
127+
- runAllTests: false
128+
project: Dendrite
129+
- runAllTests: false
130+
project: Pinecone
125131
steps:
126132
- uses: actions/checkout@v4
127133
with:

docs/playwright.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,11 @@ as is typical for Playwright tests. Likewise, tests live in `playwright/e2e`.
6666
of Synapse/Dendrite. These servers are what Element-web runs against in the tests.
6767

6868
Synapse can be launched with different configurations in order to test element
69-
in different configurations. You can specify `synapseConfigOptions` as such:
69+
in different configurations. You can specify `synapseConfig` as such:
7070

7171
```typescript
7272
test.use({
73-
synapseConfigOptions: {
73+
synapseConfig: {
7474
// The config options to pass to the Synapse instance
7575
},
7676
});

playwright.config.ts

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,25 @@ Please see LICENSE files in the repository root for full details.
88

99
import { defineConfig, devices } from "@playwright/test";
1010

11+
import { Options } from "./playwright/services";
12+
1113
const baseURL = process.env["BASE_URL"] ?? "http://localhost:8080";
1214

13-
export default defineConfig({
15+
const chromeProject = {
16+
...devices["Desktop Chrome"],
17+
channel: "chromium",
18+
permissions: ["clipboard-write", "clipboard-read", "microphone"],
19+
launchOptions: {
20+
args: ["--use-fake-ui-for-media-stream", "--use-fake-device-for-media-stream", "--mute-audio"],
21+
},
22+
};
23+
24+
export default defineConfig<Options>({
1425
projects: [
1526
{
1627
name: "Chrome",
1728
use: {
18-
...devices["Desktop Chrome"],
19-
channel: "chromium",
20-
permissions: ["clipboard-write", "clipboard-read", "microphone"],
21-
launchOptions: {
22-
args: ["--use-fake-ui-for-media-stream", "--use-fake-device-for-media-stream", "--mute-audio"],
23-
},
29+
...chromeProject,
2430
},
2531
},
2632
{
@@ -48,6 +54,22 @@ export default defineConfig({
4854
},
4955
ignoreSnapshots: true,
5056
},
57+
{
58+
name: "Dendrite",
59+
use: {
60+
...chromeProject,
61+
homeserverType: "dendrite",
62+
},
63+
ignoreSnapshots: true,
64+
},
65+
{
66+
name: "Pinecone",
67+
use: {
68+
...chromeProject,
69+
homeserverType: "pinecone",
70+
},
71+
ignoreSnapshots: true,
72+
},
5173
],
5274
use: {
5375
viewport: { width: 1280, height: 720 },

playwright/e2e/create-room/create-room.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ test.describe("Create Room", () => {
2727
// Submit
2828
await dialog.getByRole("button", { name: "Create room" }).click();
2929

30-
await expect(page).toHaveURL(/\/#\/room\/#test-room-1:localhost/);
30+
await expect(page).toHaveURL(new RegExp(`/#/room/#test-room-1:${user.homeServer}`));
3131
const header = page.locator(".mx_RoomHeader");
3232
await expect(header).toContainText(name);
3333
});

playwright/e2e/crypto/backups.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Please see LICENSE files in the repository root for full details.
99
import { type Page } from "@playwright/test";
1010

1111
import { test, expect } from "../../element-web-test";
12+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1213

1314
async function expectBackupVersionToBe(page: Page, version: string) {
1415
await expect(page.locator(".mx_SecureBackupPanel_statusList tr:nth-child(5) td")).toHaveText(
@@ -19,6 +20,7 @@ async function expectBackupVersionToBe(page: Page, version: string) {
1920
}
2021

2122
test.describe("Backups", () => {
23+
test.skip(isDendrite, "Dendrite lacks support for MSC3967 so requires additional auth here");
2224
test.use({
2325
displayName: "Hanako",
2426
});

playwright/e2e/crypto/complete-security.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ Please see LICENSE files in the repository root for full details.
88

99
import { test, expect } from "../../element-web-test";
1010
import { logIntoElement } from "./utils";
11+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1112

1213
test.describe("Complete security", () => {
14+
test.skip(isDendrite, "Dendrite lacks support for MSC3967 so requires additional auth here");
1315
test.use({
1416
displayName: "Jeff",
1517
});

playwright/e2e/crypto/crypto.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { expect, test } from "../../element-web-test";
1111
import { autoJoin, copyAndContinue, createSharedRoomWithUser, enableKeyBackup, verify } from "./utils";
1212
import { Bot } from "../../pages/bot";
1313
import { ElementAppPage } from "../../pages/ElementAppPage";
14+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1415

1516
const checkDMRoom = async (page: Page) => {
1617
const body = page.locator(".mx_RoomView_body");
@@ -67,6 +68,7 @@ const bobJoin = async (page: Page, bob: Bot) => {
6768
};
6869

6970
test.describe("Cryptography", function () {
71+
test.skip(isDendrite, "Dendrite lacks support for MSC3967 so requires additional auth here");
7072
test.use({
7173
displayName: "Alice",
7274
botCreateOpts: {

playwright/e2e/crypto/decryption-failure-messages.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ test.describe("Cryptography", function () {
2828
});
2929

3030
test.describe("decryption failure messages", () => {
31+
test.skip(isDendrite, "Dendrite lacks support for MSC3967 so requires additional auth here");
32+
3133
test("should handle device-relative historical messages", async ({
3234
homeserver,
3335
page,

playwright/e2e/crypto/device-verification.spec.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,10 @@ test.describe("Device verification", { tag: "@no-webkit" }, () => {
219219
/* And we're all done! */
220220
const infoDialog = page.locator(".mx_InfoDialog");
221221
await infoDialog.getByRole("button", { name: "They match" }).click();
222-
await expect(
223-
infoDialog.getByText(`You've successfully verified (${aliceBotClient.credentials.deviceId})!`),
224-
).toBeVisible();
222+
// We don't assert the full string as the device name is unset on Synapse but set to the user ID on Dendrite
223+
await expect(infoDialog.getByText(`You've successfully verified`)).toContainText(
224+
`(${aliceBotClient.credentials.deviceId})`,
225+
);
225226
await infoDialog.getByRole("button", { name: "Got it" }).click();
226227
});
227228
});

playwright/e2e/crypto/logout.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ Please see LICENSE files in the repository root for full details.
88

99
import { test, expect } from "../../element-web-test";
1010
import { createRoom, enableKeyBackup, logIntoElement, sendMessageInCurrentRoom } from "./utils";
11+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1112

1213
test.describe("Logout tests", () => {
14+
test.skip(isDendrite, "Dendrite lacks support for MSC3967 so requires additional auth here");
1315
test.beforeEach(async ({ page, homeserver, credentials }) => {
1416
await logIntoElement(page, credentials);
1517
});

playwright/e2e/editing/editing.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import type { EventType, IContent, ISendEventResponse, MsgType, Visibility } fro
1212
import { expect, test } from "../../element-web-test";
1313
import { ElementAppPage } from "../../pages/ElementAppPage";
1414
import { SettingLevel } from "../../../src/settings/SettingLevel";
15+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1516

1617
async function sendEvent(app: ElementAppPage, roomId: string): Promise<ISendEventResponse> {
1718
return app.client.sendEvent(roomId, null, "m.room.message" as EventType, {
@@ -31,6 +32,8 @@ function mkPadding(n: number): IContent {
3132
}
3233

3334
test.describe("Editing", () => {
35+
test.skip(isDendrite, "due to a Dendrite bug https://github.com/element-hq/dendrite/issues/3488");
36+
3437
// Edit "Message"
3538
const editLastMessage = async (page: Page, edit: string) => {
3639
const eventTile = page.locator(".mx_RoomView_MessageList .mx_EventTile_last");

playwright/e2e/knock/create-knock-room.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ Please see LICENSE files in the repository root for full details.
99
import { test, expect } from "../../element-web-test";
1010
import { waitForRoom } from "../utils";
1111
import { Filter } from "../../pages/Spotlight";
12+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1213

1314
test.describe("Create Knock Room", () => {
15+
test.skip(isDendrite, "Dendrite does not have support for knocking");
1416
test.use({
1517
displayName: "Alice",
1618
labsFlags: ["feature_ask_to_join"],

playwright/e2e/knock/knock-into-room.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ import { type Visibility } from "matrix-js-sdk/src/matrix";
1313
import { test, expect } from "../../element-web-test";
1414
import { waitForRoom } from "../utils";
1515
import { Filter } from "../../pages/Spotlight";
16+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1617

1718
test.describe("Knock Into Room", () => {
19+
test.skip(isDendrite, "Dendrite does not have support for knocking");
1820
test.use({
1921
displayName: "Alice",
2022
labsFlags: ["feature_ask_to_join"],

playwright/e2e/knock/manage-knocks.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ Please see LICENSE files in the repository root for full details.
1010

1111
import { test, expect } from "../../element-web-test";
1212
import { waitForRoom } from "../utils";
13+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1314

1415
test.describe("Manage Knocks", () => {
16+
test.skip(isDendrite, "Dendrite does not have support for knocking");
1517
test.use({
1618
displayName: "Alice",
1719
labsFlags: ["feature_ask_to_join"],

playwright/e2e/lazy-loading/lazy-loading.spec.ts

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,12 @@ import { Bot } from "../../pages/bot";
1010
import type { Locator, Page } from "@playwright/test";
1111
import type { ElementAppPage } from "../../pages/ElementAppPage";
1212
import { test, expect } from "../../element-web-test";
13+
import { Credentials } from "../../plugins/homeserver";
14+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1315

1416
test.describe("Lazy Loading", () => {
17+
test.skip(isDendrite, "due to a Dendrite bug https://github.com/element-hq/dendrite/issues/3488");
18+
1519
const charlies: Bot[] = [];
1620

1721
test.use({
@@ -35,12 +39,18 @@ test.describe("Lazy Loading", () => {
3539
});
3640

3741
const name = "Lazy Loading Test";
38-
const alias = "#lltest:localhost";
3942
const charlyMsg1 = "hi bob!";
4043
const charlyMsg2 = "how's it going??";
4144
let roomId: string;
4245

43-
async function setupRoomWithBobAliceAndCharlies(page: Page, app: ElementAppPage, bob: Bot, charlies: Bot[]) {
46+
async function setupRoomWithBobAliceAndCharlies(
47+
page: Page,
48+
app: ElementAppPage,
49+
user: Credentials,
50+
bob: Bot,
51+
charlies: Bot[],
52+
) {
53+
const alias = `#lltest:${user.homeServer}`;
4454
const visibility = await page.evaluate(() => (window as any).matrixcs.Visibility.Public);
4555
roomId = await bob.createRoom({
4656
name,
@@ -95,7 +105,13 @@ test.describe("Lazy Loading", () => {
95105
}
96106
}
97107

98-
async function joinCharliesWhileAliceIsOffline(page: Page, app: ElementAppPage, charlies: Bot[]) {
108+
async function joinCharliesWhileAliceIsOffline(
109+
page: Page,
110+
app: ElementAppPage,
111+
user: Credentials,
112+
charlies: Bot[],
113+
) {
114+
const alias = `#lltest:${user.homeServer}`;
99115
await app.client.network.goOffline();
100116
for (const charly of charlies) {
101117
await charly.joinRoom(alias);
@@ -107,19 +123,19 @@ test.describe("Lazy Loading", () => {
107123
await app.client.waitForNextSync();
108124
}
109125

110-
test("should handle lazy loading properly even when offline", async ({ page, app, bot }) => {
126+
test("should handle lazy loading properly even when offline", async ({ page, app, bot, user }) => {
111127
test.slow();
112128
const charly1to5 = charlies.slice(0, 5);
113129
const charly6to10 = charlies.slice(5);
114130

115131
// Set up room with alice, bob & charlies 1-5
116-
await setupRoomWithBobAliceAndCharlies(page, app, bot, charly1to5);
132+
await setupRoomWithBobAliceAndCharlies(page, app, user, bot, charly1to5);
117133
// Alice should see 2 messages from every charly with the correct display name
118134
await checkPaginatedDisplayNames(app, charly1to5);
119135

120136
await openMemberlist(app);
121137
await checkMemberList(page, charly1to5);
122-
await joinCharliesWhileAliceIsOffline(page, app, charly6to10);
138+
await joinCharliesWhileAliceIsOffline(page, app, user, charly6to10);
123139
await checkMemberList(page, charly6to10);
124140

125141
for (const charly of charlies) {

playwright/e2e/login/login-consent.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { expect, test } from "../../element-web-test";
1212
import { selectHomeserver } from "../utils";
1313
import { Credentials, HomeserverInstance } from "../../plugins/homeserver";
1414
import { consentHomeserver } from "../../plugins/homeserver/synapse/consentHomeserver.ts";
15+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1516

1617
// This test requires fixed credentials for the device signing keys below to work
1718
const username = "user1234";
@@ -113,6 +114,8 @@ test.use({
113114

114115
test.describe("Login", () => {
115116
test.describe("Password login", () => {
117+
test.skip(isDendrite, "Dendrite lacks support for MSC3967 so requires additional auth here");
118+
116119
test("Loads the welcome page by default; then logs in with an existing account and lands on the home screen", async ({
117120
credentials,
118121
page,

playwright/e2e/oidc/oidc-native.spec.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@ Please see LICENSE files in the repository root for full details.
99
import { test, expect } from "../../element-web-test.ts";
1010
import { registerAccountMas } from ".";
1111
import { ElementAppPage } from "../../pages/ElementAppPage.ts";
12-
import { isDendrite } from "../../plugins/homeserver/dendrite";
1312
import { masHomeserver } from "../../plugins/homeserver/synapse/masHomeserver.ts";
1413

1514
test.use(masHomeserver);
1615
test.describe("OIDC Native", { tag: ["@no-firefox", "@no-webkit"] }, () => {
17-
test.skip(isDendrite, "does not yet support MAS");
1816
test.slow(); // trace recording takes a while here
1917

2018
test("can register the oauth2 client and an account", async ({

playwright/e2e/one-to-one-chat/one-to-one-chat.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,15 @@ Please see LICENSE files in the repository root for full details.
99

1010
import { test as base, expect } from "../../element-web-test";
1111
import { Credentials } from "../../plugins/homeserver";
12+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1213

1314
const test = base.extend<{
1415
user2?: Credentials;
1516
}>({});
1617

1718
test.describe("1:1 chat room", () => {
19+
test.skip(isDendrite, "due to a Dendrite bug https://github.com/element-hq/dendrite/issues/3492");
20+
1821
test.use({
1922
displayName: "Jeff",
2023
user2: async ({ homeserver }, use, testInfo) => {

playwright/e2e/permalinks/permalinks.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ test.describe("permalinks", () => {
3131
await charlotte.prepareClient();
3232

3333
// We don't use a bot for danielle as we want a stable MXID.
34-
const danielleId = "@danielle:localhost";
34+
const danielleId = `@danielle:${user.homeServer}`;
3535

3636
const room1Id = await app.client.createRoom({ name: room1Name });
3737
const room2Id = await app.client.createRoom({ name: room2Name });

playwright/e2e/polls/polls.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,11 @@ import { Bot } from "../../pages/bot";
1111
import { SettingLevel } from "../../../src/settings/SettingLevel";
1212
import { Layout } from "../../../src/settings/enums/Layout";
1313
import type { Locator, Page } from "@playwright/test";
14+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1415

1516
test.describe("Polls", () => {
17+
test.skip(isDendrite, "due to a Dendrite bug https://github.com/element-hq/dendrite/issues/3492");
18+
1619
type CreatePollOptions = {
1720
title: string;
1821
options: string[];

playwright/e2e/read-receipts/editing-messages-in-threads.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,11 @@ Please see LICENSE files in the repository root for full details.
99
/* See readme.md for tips on writing these tests. */
1010

1111
import { test } from ".";
12+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1213

1314
test.describe("Read receipts", { tag: "@mergequeue" }, () => {
15+
test.skip(isDendrite, "due to Dendrite bug https://github.com/element-hq/dendrite/issues/2970");
16+
1417
test.describe("editing messages", () => {
1518
test.describe("in threads", () => {
1619
test("An edit of a threaded message makes the room unread", async ({

playwright/e2e/read-receipts/editing-messages-main-timeline.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,11 @@ Please see LICENSE files in the repository root for full details.
99
/* See readme.md for tips on writing these tests. */
1010

1111
import { test } from ".";
12+
import { isDendrite } from "../../plugins/homeserver/dendrite";
1213

1314
test.describe("Read receipts", { tag: "@mergequeue" }, () => {
15+
test.skip(isDendrite, "due to Dendrite bug https://github.com/element-hq/dendrite/issues/2970");
16+
1417
test.describe("editing messages", () => {
1518
test.describe("in the main timeline", () => {
1619
test("Editing a message leaves a room read", async ({ roomAlpha: room1, roomBeta: room2, util, msg }) => {

0 commit comments

Comments
 (0)