Skip to content

Commit 3432613

Browse files
langleyddbkr
andauthored
Use the new room list by default (#30640)
* Default to new room list and enforce in config for app and develop * Update jest tests * Update LandmarkNavigation and e2e test * Update viewRoomByName helper * lint * Update Add -> New Room flow Keep legacy viewRoomByName until we delete the olds tests. * Update e2e test to use Add -> Start Chat * Update screenshots * Fix viewRoomByName, can't use option as it contains more that just the room name. Using title which should be exact. * Fix knocking tests * fix layout.spec.ts and pstn.spec * timeline snapshots * Fix spotlight.spec * TAC spaces and media preview settings * Fix more screenshots and mark as unread tests * Fix leftpanel test * Bugfix for knocking use case. We should check EffectiveMembership when remove rooms from the new room list, so that knocking is handled * Fix openCreateRoomDialog to new room list specifics to fix create-knock-room.spec.ts * lint * Fix Landmark navigation from left panel search to the next landmark * lint * Update window-12px-linux.png * Update apps-drawer-linux.png * Update sliding sync e2e tests * Update some screenshots * Revert change to the space create screenshot * Use actual screenshot as focused elements are different when generated locally * Fix test selectors * Morfe test screenshot selector / update * Add test for landmark navigation * Replace screenshots * Fix another test that just got added an hour ago * Not sure why this was changed, doesn't seem necessary * Disambiguate selector * Another screenshot that's now changed in width by 1px * Revert changes to config files It's being turned on by default so these are unnecessary * Convert read.unread assertions to new room list removing support for checking for activity in assertUnread which was unused. * Update room list order tests that feel a bit like they ought to be in room-list rather than read-receipts but whatever * Fix room titles in read receipts test --------- Co-authored-by: David Baker <[email protected]>
1 parent eaa20a2 commit 3432613

File tree

135 files changed

+332
-578
lines changed

Some content is hidden

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

135 files changed

+332
-578
lines changed

playwright/e2e/accessibility/keyboard-navigation.spec.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ test.describe("Landmark navigation tests", () => {
2929

3030
// Pressing Control+F6 again will focus room search
3131
await page.keyboard.press("ControlOrMeta+F6");
32-
await expect(page.locator(".mx_RoomSearch")).toBeFocused();
32+
await expect(page.locator(".mx_RoomListSearch_search")).toBeFocused();
3333

3434
// Pressing Control+F6 again will focus the message composer
3535
await page.keyboard.press("ControlOrMeta+F6");
@@ -44,7 +44,7 @@ test.describe("Landmark navigation tests", () => {
4444
await expect(page.locator(".mx_HomePage")).toBeFocused();
4545

4646
await page.keyboard.press("ControlOrMeta+Shift+F6");
47-
await expect(page.locator(".mx_RoomSearch")).toBeFocused();
47+
await expect(page.locator(".mx_RoomListSearch_search")).toBeFocused();
4848

4949
await page.keyboard.press("ControlOrMeta+Shift+F6");
5050
await expect(page.locator(".mx_SpaceButton_active")).toBeFocused();
@@ -75,11 +75,11 @@ test.describe("Landmark navigation tests", () => {
7575

7676
// Pressing Control+F6 again will focus room search
7777
await page.keyboard.press("ControlOrMeta+F6");
78-
await expect(page.locator(".mx_RoomSearch")).toBeFocused();
78+
await expect(page.locator(".mx_RoomListSearch_search")).toBeFocused();
7979

8080
// Pressing Control+F6 again will focus the room tile in the room list
8181
await page.keyboard.press("ControlOrMeta+F6");
82-
await expect(page.locator(".mx_RoomTile_selected")).toBeFocused();
82+
await expect(page.locator(".mx_RoomListItemView_selected")).toBeFocused();
8383

8484
// Pressing Control+F6 again will focus the message composer
8585
await page.keyboard.press("ControlOrMeta+F6");
@@ -94,10 +94,10 @@ test.describe("Landmark navigation tests", () => {
9494
await expect(page.locator(".mx_BasicMessageComposer_input")).toBeFocused();
9595

9696
await page.keyboard.press("ControlOrMeta+Shift+F6");
97-
await expect(page.locator(".mx_RoomTile_selected")).toBeFocused();
97+
await expect(page.locator(".mx_RoomListItemView_selected")).toBeFocused();
9898

9999
await page.keyboard.press("ControlOrMeta+Shift+F6");
100-
await expect(page.locator(".mx_RoomSearch")).toBeFocused();
100+
await expect(page.locator(".mx_RoomListSearch_search")).toBeFocused();
101101

102102
await page.keyboard.press("ControlOrMeta+Shift+F6");
103103
await expect(page.locator(".mx_SpaceButton_active")).toBeFocused();
@@ -131,11 +131,11 @@ test.describe("Landmark navigation tests", () => {
131131

132132
// Pressing Control+F6 again will focus room search
133133
await page.keyboard.press("ControlOrMeta+F6");
134-
await expect(page.locator(".mx_RoomSearch")).toBeFocused();
134+
await expect(page.locator(".mx_RoomListSearch_search")).toBeFocused();
135135

136136
// Pressing Control+F6 again will focus the room tile in the room list
137137
await page.keyboard.press("ControlOrMeta+F6");
138-
await expect(page.locator(".mx_RoomTile")).toBeFocused();
138+
await expect(page.locator(".mx_RoomListItemView")).toBeFocused();
139139

140140
// Pressing Control+F6 again will focus the home section
141141
await page.keyboard.press("ControlOrMeta+F6");
@@ -150,10 +150,10 @@ test.describe("Landmark navigation tests", () => {
150150
await expect(page.locator(".mx_HomePage")).toBeFocused();
151151

152152
await page.keyboard.press("ControlOrMeta+Shift+F6");
153-
await expect(page.locator(".mx_RoomTile")).toBeFocused();
153+
await expect(page.locator(".mx_RoomListItemView")).toBeFocused();
154154

155155
await page.keyboard.press("ControlOrMeta+Shift+F6");
156-
await expect(page.locator(".mx_RoomSearch")).toBeFocused();
156+
await expect(page.locator(".mx_RoomListSearch_search")).toBeFocused();
157157

158158
await page.keyboard.press("ControlOrMeta+Shift+F6");
159159
await expect(page.locator(".mx_SpaceButton_active")).toBeFocused();

playwright/e2e/composer/CIDER.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,10 @@ test.describe("Composer", () => {
108108

109109
const composer = page.getByRole("textbox", { name: "Send an unencrypted message…" });
110110
await composer.pressSequentially("@bob");
111-
await page.getByRole("option", { name: "Bob" }).click();
111+
112+
// Note that we include the user ID here as the room tile is also an 'option' role
113+
// with text 'Bob'
114+
await page.getByRole("option", { name: `Bob ${bot.credentials.userId}` }).click();
112115
await expect(composer.getByText("Bob")).toBeVisible();
113116
await expect(composer).toMatchScreenshot("mention.png");
114117
await composer.press("Enter");

playwright/e2e/crypto/backups-mas.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ test.describe("Encryption state after registration", () => {
4949
"Pa$sW0rD!",
5050
);
5151

52-
await page.getByRole("button", { name: "Add room" }).click();
52+
await page.getByRole("navigation", { name: "Room list" }).getByRole("button", { name: "Add" }).click();
5353
await page.getByRole("menuitem", { name: "New room" }).click();
5454
await page.getByRole("textbox", { name: "Name" }).fill("test room");
5555
await page.getByRole("button", { name: "Create room" }).click();
@@ -78,7 +78,7 @@ test.describe("Key backup reset from elsewhere", () => {
7878
await page.getByRole("button", { name: "Continue" }).click();
7979
await registerAccountMas(page, mailpitClient, testUsername, `${testUsername}@email.com`, testPassword);
8080

81-
await page.getByRole("button", { name: "Add room" }).click();
81+
await page.getByRole("navigation", { name: "Room list" }).getByRole("button", { name: "Add" }).click();
8282
await page.getByRole("menuitem", { name: "New room" }).click();
8383
await page.getByRole("textbox", { name: "Name" }).fill("test room");
8484
await page.getByRole("button", { name: "Create room" }).click();

playwright/e2e/crypto/crypto.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ const checkDMRoom = async (page: Page) => {
2121
};
2222

2323
const startDMWithBob = async (page: Page, bob: Bot) => {
24-
await page.locator(".mx_LegacyRoomList").getByRole("button", { name: "Start chat" }).click();
24+
await page.getByRole("navigation", { name: "Room list" }).getByRole("button", { name: "Add" }).click();
25+
await page.getByRole("menuitem", { name: "Start chat" }).click();
2526
await page.getByTestId("invite-dialog-input").fill(bob.credentials.userId);
2627
await page.locator(".mx_InviteDialog_tile_nameStack_name").getByText("Bob").click();
2728
await expect(

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

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,7 @@ test.describe("Cryptography", function () {
143143
);
144144

145145
// Alice accepts the invite
146-
await expect(
147-
page.getByRole("group", { name: "Invites" }).locator(".mx_RoomSublist_tiles").getByRole("treeitem"),
148-
).toHaveCount(1);
149-
await page.getByRole("treeitem", { name: "Test room" }).click();
146+
await page.getByRole("option", { name: "Test room" }).click();
150147
await page.locator(".mx_RoomView").getByRole("button", { name: "Accept" }).click();
151148

152149
// Bob sends an encrypted event and an undecryptable event
@@ -280,10 +277,7 @@ test.describe("Cryptography", function () {
280277
);
281278

282279
// Alice accepts the invite
283-
await expect(
284-
page.getByRole("group", { name: "Invites" }).locator(".mx_RoomSublist_tiles").getByRole("treeitem"),
285-
).toHaveCount(1);
286-
await page.getByRole("treeitem", { name: "Test room" }).click();
280+
await page.getByRole("option", { name: "Test room" }).click();
287281
await page.locator(".mx_RoomView").getByRole("button", { name: "Accept" }).click();
288282

289283
// wait until we're joined and see the timeline

playwright/e2e/crypto/toasts.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ test.describe("Key storage out of sync toast", () => {
2323
await deleteCachedSecrets(page);
2424

2525
// We won't be prompted for crypto setup unless we have an e2e room, so make one
26-
await page.getByRole("button", { name: "Add room" }).click();
26+
await page.getByRole("navigation", { name: "Room list" }).getByRole("button", { name: "Add" }).click();
2727
await page.getByRole("menuitem", { name: "New room" }).click();
2828
await page.getByRole("textbox", { name: "Name" }).fill("Test room");
2929
await page.getByRole("button", { name: "Create room" }).click();
@@ -68,7 +68,7 @@ test.describe("'Turn on key storage' toast", () => {
6868
await logIntoElementAndVerify(page, credentials, recoveryKey.encodedPrivateKey);
6969

7070
// We won't be prompted for crypto setup unless we have an e2e room, so make one
71-
await page.getByRole("button", { name: "Add room" }).click();
71+
await page.getByRole("navigation", { name: "Room list" }).getByRole("button", { name: "Add" }).click();
7272
await page.getByRole("menuitem", { name: "New room" }).click();
7373
await page.getByRole("textbox", { name: "Name" }).fill("Test room");
7474
await page.getByRole("button", { name: "Create room" }).click();

playwright/e2e/crypto/utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -438,8 +438,8 @@ export async function sendMessageInCurrentRoom(page: Page, message: string): Pro
438438
* @param isEncrypted - Whether the room should be encrypted
439439
*/
440440
export async function createRoom(page: Page, roomName: string, isEncrypted: boolean): Promise<void> {
441-
await page.getByRole("button", { name: "Add room" }).click();
442-
await page.locator(".mx_IconizedContextMenu").getByRole("menuitem", { name: "New room" }).click();
441+
await page.getByRole("navigation", { name: "Room list" }).getByRole("button", { name: "Add" }).click();
442+
await page.getByRole("menuitem", { name: "New room" }).click();
443443

444444
const dialog = page.locator(".mx_Dialog");
445445

playwright/e2e/invite/invite-dialog.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ test.describe("Invite dialog", function () {
7777
"should support inviting a user to Direct Messages",
7878
{ tag: "@screenshot" },
7979
async ({ page, app, user, bot }) => {
80-
await page.locator(".mx_LegacyRoomList").getByRole("button", { name: "Start chat" }).click();
80+
await page.getByRole("navigation", { name: "Room list" }).getByRole("button", { name: "Add" }).click();
81+
await page.getByRole("menuitem", { name: "Start chat" }).click();
8182

8283
const other = page.locator(".mx_InviteDialog_other");
8384
// Assert that the header is rendered

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

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ test.describe("Knock Into Room", () => {
5959

6060
// Knocked room should appear in Rooms
6161
await expect(
62-
page.getByRole("group", { name: "Rooms" }).getByRole("treeitem", { name: "Cybersecurity" }),
62+
page.getByTestId("room-list").getByRole("option", { name: "Open room Cybersecurity" }),
6363
).toBeVisible();
6464

6565
// bot waits for knock request from Alice
@@ -77,15 +77,15 @@ test.describe("Knock Into Room", () => {
7777
await bot.inviteUser(room.roomId, user.userId);
7878

7979
await expect(
80-
page.getByRole("group", { name: "Invites" }).getByRole("treeitem", { name: "Cybersecurity" }),
80+
page.getByTestId("room-list").getByRole("option", { name: "Open room Cybersecurity" }),
8181
).toBeVisible();
8282

8383
// Alice have to accept invitation in order to join the room.
8484
// It will be not needed when homeserver implements auto accept knock requests.
8585
await page.locator(".mx_RoomView").getByRole("button", { name: "Accept" }).click();
8686

8787
await expect(
88-
page.getByRole("group", { name: "Rooms" }).getByRole("treeitem", { name: "Cybersecurity" }),
88+
page.getByTestId("room-list").getByRole("option", { name: "Open room Cybersecurity" }),
8989
).toBeVisible();
9090

9191
await expect(page.getByText("Alice joined the room")).toBeVisible();
@@ -136,7 +136,7 @@ test.describe("Knock Into Room", () => {
136136

137137
// Knocked room should appear in Rooms
138138
await expect(
139-
page.getByRole("group", { name: "Rooms" }).getByRole("treeitem", { name: "Cybersecurity" }),
139+
page.getByTestId("room-list").getByRole("option", { name: "Open room Cybersecurity" }),
140140
).toBeVisible();
141141

142142
// bot waits for knock request from Alice
@@ -154,15 +154,15 @@ test.describe("Knock Into Room", () => {
154154
await bot.inviteUser(room.roomId, user.userId);
155155

156156
await expect(
157-
page.getByRole("group", { name: "Invites" }).getByRole("treeitem", { name: "Cybersecurity" }),
157+
page.getByTestId("room-list").getByRole("option", { name: "Open room Cybersecurity" }),
158158
).toBeVisible();
159159

160160
// Alice have to accept invitation in order to join the room.
161161
// It will be not needed when homeserver implements auto accept knock requests.
162162
await page.locator(".mx_RoomView").getByRole("button", { name: "Accept" }).click();
163163

164164
await expect(
165-
page.getByRole("group", { name: "Rooms" }).getByRole("treeitem", { name: "Cybersecurity" }),
165+
page.getByTestId("room-list").getByRole("option", { name: "Open room Cybersecurity" }),
166166
).toBeVisible();
167167

168168
await expect(page.getByText("Alice joined the room")).toBeVisible();
@@ -215,14 +215,14 @@ test.describe("Knock Into Room", () => {
215215
await expect(roomPreviewBar.getByRole("heading", { name: "Request to join sent" })).toBeVisible();
216216

217217
// Knocked room should appear in Rooms
218-
page.getByRole("group", { name: "Rooms" }).getByRole("treeitem", { name: "Cybersecurity" });
218+
page.getByTestId("room-list").getByRole("option", { name: "Open room Cybersecurity" });
219219

220220
await roomPreviewBar.getByRole("button", { name: "Cancel request" }).click();
221221
await expect(roomPreviewBar.getByRole("heading", { name: "Ask to join Cybersecurity?" })).toBeVisible();
222222
await expect(roomPreviewBar.getByRole("button", { name: "Request access" })).toBeVisible();
223223

224224
await expect(
225-
page.getByRole("group", { name: "Rooms" }).getByRole("treeitem", { name: "Cybersecurity" }),
225+
page.getByTestId("room-list").getByRole("option", { name: "Open room Cybersecurity" }),
226226
).not.toBeVisible();
227227
});
228228

@@ -244,7 +244,7 @@ test.describe("Knock Into Room", () => {
244244

245245
// Knocked room should appear in Rooms
246246
await expect(
247-
page.getByRole("group", { name: "Rooms" }).getByRole("treeitem", { name: "Cybersecurity" }),
247+
page.getByTestId("room-list").getByRole("option", { name: "Open room Cybersecurity" }),
248248
).toBeVisible();
249249

250250
// bot waits for knock request from Alice
@@ -262,13 +262,10 @@ test.describe("Knock Into Room", () => {
262262
await bot.kick(room.roomId, user.userId);
263263

264264
// Room should stay in Rooms and have red badge when knock is denied
265-
await expect(
266-
page.getByRole("group", { name: "Rooms" }).getByRole("treeitem", { name: "Cybersecurity", exact: true }),
267-
).not.toBeVisible();
268265
await expect(
269266
page
270-
.getByRole("group", { name: "Rooms" })
271-
.getByRole("treeitem", { name: "Cybersecurity 1 unread mention." }),
267+
.getByTestId("room-list")
268+
.getByRole("option", { name: "Open room Cybersecurity with 1 unread mention." }),
272269
).toBeVisible();
273270

274271
await expect(roomPreviewBar.getByRole("heading", { name: "You have been denied access" })).toBeVisible();

playwright/e2e/left-panel/left-panel.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ test.describe("LeftPanel", () => {
1717
// create rooms and check room names are correct
1818
for (const name of ["Apple", "Pineapple", "Orange"]) {
1919
await app.client.createRoom({ name });
20-
await expect(page.getByRole("treeitem", { name })).toBeVisible();
20+
await expect(page.getByRole("option", { name: `Open room ${name}` })).toBeVisible();
2121
}
2222
});
2323
});

0 commit comments

Comments
 (0)