Add tests about room list order (#12088)
This commit is contained in:
parent
b3fec2a0d9
commit
f6fc91196f
2 changed files with 68 additions and 1 deletions
|
@ -415,7 +415,43 @@ test.describe("Read receipts", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test.describe("Room list order", () => {
|
test.describe("Room list order", () => {
|
||||||
test.fixme("Rooms with unread threads appear at the top of room list if 'unread first' is selected", () => {});
|
test("Rooms with unread messages appear at the top of room list if 'unread first' is selected", async ({
|
||||||
|
roomAlpha: room1,
|
||||||
|
roomBeta: room2,
|
||||||
|
util,
|
||||||
|
msg,
|
||||||
|
page,
|
||||||
|
}) => {
|
||||||
|
await util.goTo(room2);
|
||||||
|
|
||||||
|
// Display the unread first room
|
||||||
|
await util.toggleRoomUnreadOrder();
|
||||||
|
await util.receiveMessages(room1, ["Msg1"]);
|
||||||
|
await page.reload();
|
||||||
|
|
||||||
|
// Room 1 has an unread message and should be displayed first
|
||||||
|
await util.assertRoomListOrder([room1, room2]);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("Rooms with unread threads appear at the top of room list if 'unread first' is selected", async ({
|
||||||
|
roomAlpha: room1,
|
||||||
|
roomBeta: room2,
|
||||||
|
util,
|
||||||
|
msg,
|
||||||
|
}) => {
|
||||||
|
await util.goTo(room2);
|
||||||
|
await util.receiveMessages(room1, ["Msg1"]);
|
||||||
|
await util.markAsRead(room1);
|
||||||
|
await util.assertRead(room1);
|
||||||
|
|
||||||
|
// Display the unread first room
|
||||||
|
await util.toggleRoomUnreadOrder();
|
||||||
|
await util.receiveMessages(room1, [msg.threadedOff("Msg1", "Resp1")]);
|
||||||
|
await util.saveAndReload();
|
||||||
|
|
||||||
|
// Room 1 has an unread message and should be displayed first
|
||||||
|
await util.assertRoomListOrder([room1, room2]);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test.describe("Notifications", () => {
|
test.describe("Notifications", () => {
|
||||||
|
|
|
@ -590,6 +590,37 @@ class Helpers {
|
||||||
async receiveMessages(room: string | { name: string }, messages: Message[]) {
|
async receiveMessages(room: string | { name: string }, messages: Message[]) {
|
||||||
await this.sendMessageAsClient(this.bot, room, messages);
|
await this.sendMessageAsClient(this.bot, room, messages);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open the room list menu
|
||||||
|
*/
|
||||||
|
async toggleRoomListMenu() {
|
||||||
|
const tile = this.getRoomListTile("Rooms");
|
||||||
|
await tile.hover();
|
||||||
|
const button = tile.getByLabel("List options");
|
||||||
|
await button.click();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle the `Show rooms with unread messages first` option for the room list
|
||||||
|
*/
|
||||||
|
async toggleRoomUnreadOrder() {
|
||||||
|
await this.toggleRoomListMenu();
|
||||||
|
await this.page.getByText("Show rooms with unread messages first").click();
|
||||||
|
// Close contextual menu
|
||||||
|
await this.page.locator(".mx_ContextualMenu_background").click();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Assert that the room list is ordered as expected
|
||||||
|
* @param rooms
|
||||||
|
*/
|
||||||
|
async assertRoomListOrder(rooms: Array<{ name: string }>) {
|
||||||
|
const roomList = this.page.locator(".mx_RoomTile_title");
|
||||||
|
for (const [i, room] of rooms.entries()) {
|
||||||
|
await expect(roomList.nth(i)).toHaveText(room.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue