From c6922c912e0b86e7df0a9d35e581caeb91b14447 Mon Sep 17 00:00:00 2001 From: Florian Duros Date: Wed, 28 Aug 2024 11:45:07 +0200 Subject: [PATCH] Fix reply message truncation on 2 lines (#12929) * Fix reply message truncation on 2 lines * Add e2e tests for reply --- playwright/e2e/messages/messages.spec.ts | 61 +++++++++++++++++- ...reply-message-ltr-ltrdisplayname-linux.png | Bin 0 -> 6508 bytes ...reply-message-ltr-rtldisplayname-linux.png | Bin 0 -> 6548 bytes ...reply-message-trl-ltrdisplayname-linux.png | Bin 0 -> 6005 bytes ...reply-message-trl-rtldisplayname-linux.png | Bin 0 -> 6036 bytes res/css/views/elements/_ReplyChain.pcss | 2 +- res/css/views/rooms/_EventTile.pcss | 5 +- res/css/views/rooms/_ReplyTile.pcss | 5 ++ 8 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 playwright/snapshots/messages/messages.spec.ts/reply-message-ltr-ltrdisplayname-linux.png create mode 100644 playwright/snapshots/messages/messages.spec.ts/reply-message-ltr-rtldisplayname-linux.png create mode 100644 playwright/snapshots/messages/messages.spec.ts/reply-message-trl-ltrdisplayname-linux.png create mode 100644 playwright/snapshots/messages/messages.spec.ts/reply-message-trl-rtldisplayname-linux.png diff --git a/playwright/e2e/messages/messages.spec.ts b/playwright/e2e/messages/messages.spec.ts index f34fa15e82..569d295b9e 100644 --- a/playwright/e2e/messages/messages.spec.ts +++ b/playwright/e2e/messages/messages.spec.ts @@ -24,7 +24,34 @@ async function sendMessage(page: Page, message: string): Promise { await page.getByRole("textbox", { name: "Send a message…" }).fill(message); await page.getByRole("button", { name: "Send message" }).click(); - const msgTile = await page.locator(".mx_EventTile_last"); + const msgTile = page.locator(".mx_EventTile_last"); + await msgTile.locator(".mx_EventTile_receiptSent").waitFor(); + return msgTile; +} + +async function sendMultilineMessages(page: Page, messages: string[]) { + await page.getByRole("textbox", { name: "Send a message…" }).focus(); + for (let i = 0; i < messages.length; i++) { + await page.keyboard.type(messages[i]); + if (i < messages.length - 1) await page.keyboard.press("Shift+Enter"); + } + + await page.getByRole("button", { name: "Send message" }).click(); + + const msgTile = page.locator(".mx_EventTile_last"); + await msgTile.locator(".mx_EventTile_receiptSent").waitFor(); + return msgTile; +} + +async function replyMessage(page: Page, message: Locator, replyMessage: string): Promise { + const line = message.locator(".mx_EventTile_line"); + await line.hover(); + await line.getByRole("button", { name: "Reply", exact: true }).click(); + + await page.getByRole("textbox", { name: "Send a reply…" }).fill(replyMessage); + await page.getByRole("button", { name: "Send message" }).click(); + + const msgTile = page.locator(".mx_EventTile_last"); await msgTile.locator(".mx_EventTile_receiptSent").waitFor(); return msgTile; } @@ -88,6 +115,22 @@ test.describe("Message rendering", () => { }); }); + test("should render a reply of a LTR message", async ({ page, user, app, room }) => { + await page.goto(`#/room/${room.roomId}`); + + const msgTile = await sendMultilineMessages(page, [ + "Fist line", + "Second line", + "Third line", + "Fourth line", + ]); + + await replyMessage(page, msgTile, "response to multiline message"); + await expect(msgTile).toMatchScreenshot(`reply-message-ltr-${direction}displayname.png`, { + mask: [page.locator(".mx_MessageTimestamp")], + }); + }); + test("should render a basic RTL text message", async ({ page, user, app, room }) => { await page.goto(`#/room/${room.roomId}`); @@ -122,6 +165,22 @@ test.describe("Message rendering", () => { mask: [page.locator(".mx_MessageTimestamp")], }); }); + + test("should render a reply of a RTL message", async ({ page, user, app, room }) => { + await page.goto(`#/room/${room.roomId}`); + + const msgTile = await sendMultilineMessages(page, [ + "مرحبا بالعالم!", + "مرحبا بالعالم!", + "مرحبا بالعالم!", + "مرحبا بالعالم!", + ]); + + await replyMessage(page, msgTile, "مرحبا بالعالم!"); + await expect(msgTile).toMatchScreenshot(`reply-message-trl-${direction}displayname.png`, { + mask: [page.locator(".mx_MessageTimestamp")], + }); + }); }); }); }); diff --git a/playwright/snapshots/messages/messages.spec.ts/reply-message-ltr-ltrdisplayname-linux.png b/playwright/snapshots/messages/messages.spec.ts/reply-message-ltr-ltrdisplayname-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..eebd5330793f8e7e77913472ccd918d3f4533451 GIT binary patch literal 6508 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/messages/messages.spec.ts/reply-message-ltr-rtldisplayname-linux.png b/playwright/snapshots/messages/messages.spec.ts/reply-message-ltr-rtldisplayname-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..ed0c69fb8dd2e77adf030982d105f436eed10ea9 GIT binary patch literal 6548 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 PHw9Bw)KsW|y!!B8-c+DY literal 0 HcmV?d00001 diff --git a/playwright/snapshots/messages/messages.spec.ts/reply-message-trl-ltrdisplayname-linux.png b/playwright/snapshots/messages/messages.spec.ts/reply-message-trl-ltrdisplayname-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..1a0f5577b68f8e7079b9c1164fbc6fd867c9229c GIT binary patch literal 6005 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 literal 0 HcmV?d00001 diff --git a/playwright/snapshots/messages/messages.spec.ts/reply-message-trl-rtldisplayname-linux.png b/playwright/snapshots/messages/messages.spec.ts/reply-message-trl-rtldisplayname-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..587170ee1cef02cacd74eef12b2634442714b3c5 GIT binary patch literal 6036 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