diff --git a/cypress/e2e/one-to-one-chat/one-to-one-chat.spec.ts b/cypress/e2e/one-to-one-chat/one-to-one-chat.spec.ts deleted file mode 100644 index bce6bf2a04..0000000000 --- a/cypress/e2e/one-to-one-chat/one-to-one-chat.spec.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2023 Ahmad Kadri -Copyright 2023 Nordeck IT + Consulting GmbH. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/// - -import { HomeserverInstance } from "../../plugins/utils/homeserver"; -import { Credentials } from "../../support/homeserver"; - -describe("1:1 chat room", () => { - let homeserver: HomeserverInstance; - let user2: Credentials; - - const username = "user1234"; - const password = "p4s5W0rD"; - - beforeEach(() => { - cy.startHomeserver("default").then((data) => { - homeserver = data; - - cy.initTestUser(homeserver, "Jeff"); - cy.registerUser(homeserver, username, password).then((credential) => { - user2 = credential; - cy.visit(`/#/user/${user2.userId}?action=chat`); - }); - }); - }); - - afterEach(() => { - cy.stopHomeserver(homeserver); - }); - - it("should open new 1:1 chat room after leaving the old one", () => { - // leave 1:1 chat room - cy.get(".mx_LegacyRoomHeader_nametext").within(() => { - cy.findByText(username).click(); - }); - cy.findByRole("menuitem", { name: "Leave" }).click(); - cy.findByRole("button", { name: "Leave" }).click(); - - // wait till the room was left - cy.findByRole("group", { name: "Historical" }).within(() => { - cy.get(".mx_RoomTile").within(() => { - cy.findByText(username); - }); - }); - - // open new 1:1 chat room - cy.visit(`/#/user/${user2.userId}?action=chat`); - cy.get(".mx_LegacyRoomHeader_nametext").within(() => { - cy.findByText(username); - }); - }); -}); diff --git a/playwright/e2e/one-to-one-chat/one-to-one-chat.spec.ts b/playwright/e2e/one-to-one-chat/one-to-one-chat.spec.ts new file mode 100644 index 0000000000..cfc0cac5e9 --- /dev/null +++ b/playwright/e2e/one-to-one-chat/one-to-one-chat.spec.ts @@ -0,0 +1,53 @@ +/* +Copyright 2023 Ahmad Kadri +Copyright 2023 Nordeck IT + Consulting GmbH. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import { test as base, expect } from "../../element-web-test"; +import { Credentials } from "../../plugins/homeserver"; + +const test = base.extend<{ + user2?: Credentials; +}>({}); + +test.describe("1:1 chat room", () => { + test.use({ + displayName: "Jeff", + user2: async ({ homeserver }, use) => { + const credentials = await homeserver.registerUser("user1234", "p4s5W0rD", "Timmy"); + await use(credentials); + }, + }); + + test.beforeEach(async ({ page, user2, user }) => { + await page.goto(`/#/user/${user2.userId}?action=chat`); + }); + + test("should open new 1:1 chat room after leaving the old one", async ({ page, user2 }) => { + // leave 1:1 chat room + await page.locator(".mx_LegacyRoomHeader_nametext").getByText(user2.displayName).click(); + await page.getByRole("menuitem", { name: "Leave" }).click(); + await page.getByRole("button", { name: "Leave" }).click(); + + // wait till the room was left + await expect( + page.getByRole("group", { name: "Historical" }).locator(".mx_RoomTile").getByText(user2.displayName), + ).toBeVisible(); + + // open new 1:1 chat room + await page.goto(`/#/user/${user2.userId}?action=chat`); + await expect(page.locator(".mx_LegacyRoomHeader_nametext").getByText(user2.displayName)).toBeVisible(); + }); +}); diff --git a/playwright/element-web-test.ts b/playwright/element-web-test.ts index 4b6f838164..f235efc282 100644 --- a/playwright/element-web-test.ts +++ b/playwright/element-web-test.ts @@ -58,9 +58,7 @@ export const test = base.extend< startHomeserverOpts: StartHomeserverOpts | string; homeserver: HomeserverInstance; oAuthServer: { port: number }; - user: Credentials & { - displayName: string; - }; + user: Credentials; displayName?: string; app: ElementAppPage; mailhog?: { api: mailhog.API; instance: Instance }; @@ -144,10 +142,7 @@ export const test = base.extend< await page.waitForSelector(".mx_MatrixChat", { timeout: 30000 }); - await use({ - ...credentials, - displayName, - }); + await use(credentials); }, axe: async ({ page }, use) => { diff --git a/playwright/plugins/homeserver/index.ts b/playwright/plugins/homeserver/index.ts index 1776d32f1b..39a6f639b8 100644 --- a/playwright/plugins/homeserver/index.ts +++ b/playwright/plugins/homeserver/index.ts @@ -55,4 +55,5 @@ export interface Credentials { deviceId: string; homeServer: string; password: string | null; // null for password-less users + displayName?: string; } diff --git a/playwright/plugins/homeserver/synapse/index.ts b/playwright/plugins/homeserver/synapse/index.ts index be362ad32f..fc7eb5fb44 100644 --- a/playwright/plugins/homeserver/synapse/index.ts +++ b/playwright/plugins/homeserver/synapse/index.ts @@ -193,6 +193,7 @@ export class Synapse implements Homeserver, HomeserverInstance { userId: data.user_id, deviceId: data.device_id, password, + displayName, }; } }