From f9cff5c8d683560dc9b065711109dee4f8b0111d Mon Sep 17 00:00:00 2001 From: Harshil Sharma <18575143+harshilsharma63@users.noreply.github.com> Date: Wed, 29 Jan 2025 22:45:49 +0530 Subject: [PATCH] Edit file attachment e2e tests (#29797) --- .../playwright/support/asset/archive.zip | Bin 0 -> 76933 bytes .../playwright/support/asset/mattermost.png | Bin 0 -> 76766 bytes .../support/asset/sample_text_file.txt | 19 + .../support/server/default_config.ts | 1 + e2e-tests/playwright/support/test_action.ts | 4 + .../ui/components/channels/center_view.ts | 28 +- .../delete_post_confirmation_dialog.ts | 40 ++ .../ui/components/channels/post_create.ts | 15 +- .../ui/components/channels/post_edit.ts | 94 +++++ .../ui/components/channels/post_menu.ts | 7 + .../restore_post_confirmation_dialog.ts | 34 ++ .../channels/scheduled_draft_modal.ts | 2 +- .../ui/components/channels/sidebar_left.ts | 4 + .../ui/components/channels/sidebar_right.ts | 31 +- .../playwright/support/ui/components/index.ts | 8 + .../edit_file_attachment.spec.ts | 351 ++++++++++++++++++ .../create_scheduled_draft.spec.ts | 87 ++--- 17 files changed, 663 insertions(+), 62 deletions(-) create mode 100644 e2e-tests/playwright/support/asset/archive.zip create mode 100644 e2e-tests/playwright/support/asset/mattermost.png create mode 100644 e2e-tests/playwright/support/asset/sample_text_file.txt create mode 100644 e2e-tests/playwright/support/ui/components/channels/delete_post_confirmation_dialog.ts create mode 100644 e2e-tests/playwright/support/ui/components/channels/post_edit.ts create mode 100644 e2e-tests/playwright/support/ui/components/channels/restore_post_confirmation_dialog.ts create mode 100644 e2e-tests/playwright/tests/functional/channels/edit_file_attachments/edit_file_attachment.spec.ts diff --git a/e2e-tests/playwright/support/asset/archive.zip b/e2e-tests/playwright/support/asset/archive.zip new file mode 100644 index 0000000000000000000000000000000000000000..e677dfad40af3c089b7480f54f6cd566a5142837 GIT binary patch literal 76933 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 G*na`%E~Fj+ literal 0 HcmV?d00001 diff --git a/e2e-tests/playwright/support/asset/mattermost.png b/e2e-tests/playwright/support/asset/mattermost.png new file mode 100644 index 0000000000000000000000000000000000000000..553bc47f8fe5bd61a2619389552267609bfefe2d GIT binary patch literal 76766 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 c#V>ZG*lV9+ => { EnableOnboardingFlow: false, EnableSecurityFixAlert: false, GiphySdkKey: 's0glxvzVg9azvPipKxcPLpXV0q1x1fVP', + EnableTesting: true, }, TeamSettings: { EnableOpenServer: true, diff --git a/e2e-tests/playwright/support/test_action.ts b/e2e-tests/playwright/support/test_action.ts index 95a0aada57..2df488c18a 100644 --- a/e2e-tests/playwright/support/test_action.ts +++ b/e2e-tests/playwright/support/test_action.ts @@ -19,3 +19,7 @@ export async function waitForAnimationEnd(locator: Locator) { Promise.all(element.getAnimations({subtree: true}).map((animation) => animation.finished)), ); } + +export async function moveMouseToCenter(page: Page) { + await page.mouse.move(0, 0); +} diff --git a/e2e-tests/playwright/support/ui/components/channels/center_view.ts b/e2e-tests/playwright/support/ui/components/channels/center_view.ts index fd343037f8..6d811f1e59 100644 --- a/e2e-tests/playwright/support/ui/components/channels/center_view.ts +++ b/e2e-tests/playwright/support/ui/components/channels/center_view.ts @@ -16,22 +16,27 @@ export default class ChannelsCenterView { readonly postBoxIndicator; readonly scheduledDraftChannelIcon; readonly scheduledDraftChannelInfoMessage; + readonly scheduledDraftChannelInfoMessageLocator; readonly scheduledDraftChannelInfoMessageText; readonly scheduledDraftSeeAllLink; + readonly postEdit; + readonly editedPostIcon; constructor(container: Locator) { this.container = container; - + this.scheduledDraftChannelInfoMessageLocator = 'span:has-text("Message scheduled for")'; this.header = new components.ChannelsHeader(this.container.locator('.channel-header')); this.postCreate = new components.ChannelsPostCreate(container.getByTestId('post-create')); this.scheduledDraftOptions = new components.ChannelsPostCreate( container.locator('#dropdown_send_post_options'), ); + this.postEdit = new components.ChannelsPostEdit(container.locator('.post-edit__container')); this.postBoxIndicator = container.locator('div.postBoxIndicator'); this.scheduledDraftChannelIcon = container.locator('#create_post i.icon-draft-indicator'); this.scheduledDraftChannelInfoMessage = container.locator('div.ScheduledPostIndicator span'); - this.scheduledDraftChannelInfoMessageText = container.locator('span:has-text("Message scheduled for")'); - this.scheduledDraftSeeAllLink = container.locator('a:has-text("See all scheduled messages")'); + this.scheduledDraftChannelInfoMessageText = container.locator(this.scheduledDraftChannelInfoMessageLocator); + this.scheduledDraftSeeAllLink = container.locator('a:has-text("See all")'); + this.editedPostIcon = (postID: string) => container.locator(`#postEdited_${postID}`); } async toBeVisible() { @@ -65,6 +70,17 @@ export default class ChannelsCenterView { return new components.ChannelsPost(lastPost); } + /** + * Return the ID of the last post in the Center + */ + async getLastPostID() { + return this.container + .getByTestId('postView') + .last() + .getAttribute('id') + .then((id) => (id ? id.split('_')[1] : null)); + } + /** * Return the Nth post in the Center from the top * @param index @@ -115,6 +131,12 @@ export default class ChannelsCenterView { const messageLocator = this.scheduledDraftChannelInfoMessage.first(); await expect(messageLocator).toContainText('Message scheduled for'); } + + async clickOnLastEditedPost(postID: string | null) { + if (postID) { + await this.editedPostIcon(postID).click(); + } + } } export {ChannelsCenterView}; diff --git a/e2e-tests/playwright/support/ui/components/channels/delete_post_confirmation_dialog.ts b/e2e-tests/playwright/support/ui/components/channels/delete_post_confirmation_dialog.ts new file mode 100644 index 0000000000..7c5984e3b7 --- /dev/null +++ b/e2e-tests/playwright/support/ui/components/channels/delete_post_confirmation_dialog.ts @@ -0,0 +1,40 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import {expect, Locator} from '@playwright/test'; + +export default class DeletePostConfirmationDialog { + readonly container: Locator; + + readonly cancelButton; + readonly confirmButton; + + constructor(container: Locator) { + this.container = container; + + this.cancelButton = container.locator('button.btn.btn-tertiary'); + this.confirmButton = container.locator('button#deletePostModalButton'); + } + + async toBeVisible() { + await expect(this.container).toBeVisible(); + await expect(this.cancelButton).toBeVisible(); + await expect(this.confirmButton).toBeVisible(); + } + + async notToBeVisible() { + await expect(this.container).not.toBeVisible(); + await expect(this.cancelButton).not.toBeVisible(); + await expect(this.confirmButton).not.toBeVisible(); + } + + async cancelDeletion() { + await this.cancelButton.click(); + } + + async confirmDeletion() { + await this.confirmButton.click(); + } +} + +export {DeletePostConfirmationDialog}; diff --git a/e2e-tests/playwright/support/ui/components/channels/post_create.ts b/e2e-tests/playwright/support/ui/components/channels/post_create.ts index 009494feea..fa0fbba615 100644 --- a/e2e-tests/playwright/support/ui/components/channels/post_create.ts +++ b/e2e-tests/playwright/support/ui/components/channels/post_create.ts @@ -2,6 +2,7 @@ // See LICENSE.txt for license information. import {expect, Locator} from '@playwright/test'; +import path from 'node:path'; export default class ChannelsPostCreate { readonly container: Locator; @@ -23,7 +24,7 @@ export default class ChannelsPostCreate { this.input = container.getByTestId('reply_textbox'); } - this.attachmentButton = container.getByLabel('attachment'); + this.attachmentButton = container.locator('#fileUploadButton'); this.emojiButton = container.getByLabel('select an emoji'); this.sendMessageButton = container.getByTestId('SendMessageButton'); this.scheduleDraftMessageButton = container.getByLabel('Schedule message'); @@ -95,8 +96,18 @@ export default class ChannelsPostCreate { /** * Composes and sends a message */ - async postMessage(message: string) { + async postMessage(message: string, files?: string[]) { await this.writeMessage(message); + + if (files) { + const filePaths = files.map((file) => path.join(path.resolve(__dirname), '../../../asset', file)); + this.container.page().once('filechooser', async (fileChooser) => { + await fileChooser.setFiles(filePaths); + }); + + await this.attachmentButton.click(); + } + await this.sendMessage(); } diff --git a/e2e-tests/playwright/support/ui/components/channels/post_edit.ts b/e2e-tests/playwright/support/ui/components/channels/post_edit.ts new file mode 100644 index 0000000000..aa5477f8e9 --- /dev/null +++ b/e2e-tests/playwright/support/ui/components/channels/post_edit.ts @@ -0,0 +1,94 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import {expect, Locator} from '@playwright/test'; +import path from 'node:path'; +import {components} from '@e2e-support/ui/components'; + +export default class ChannelsPostEdit { + readonly container: Locator; + readonly input; + + readonly attachmentButton; + readonly emojiButton; + readonly sendMessageButton; + readonly deleteConfirmationDialog; + readonly restorePostConfirmationDialog; + + constructor(container: Locator) { + this.container = container; + + this.input = container.getByTestId('edit_textbox'); + + this.attachmentButton = container.locator('#fileUploadButton'); + this.emojiButton = container.getByLabel('select an emoji'); + this.sendMessageButton = container.locator('.save'); + this.deleteConfirmationDialog = new components.DeletePostConfirmationDialog( + container.page().locator('#deletePostModal'), + ); + this.restorePostConfirmationDialog = new components.RestorePostConfirmationDialog( + container.page().locator('#restorePostModal'), + ); + } + + async toBeVisible() { + await expect(this.container).toBeVisible(); + + await this.input.waitFor(); + await expect(this.input).toBeVisible(); + } + + async toNotBeVisible() { + await expect(this.input).not.toBeVisible(); + } + + async writeMessage(message: string) { + await this.input.waitFor(); + await expect(this.input).toBeVisible(); + + await this.input.clear(); + await this.input.fill(message); + } + + async addFiles(files: string[]) { + const filePaths = files.map((file) => path.join(path.resolve(__dirname), '../../../asset', file)); + this.container.page().once('filechooser', async (fileChooser) => { + await fileChooser.setFiles(filePaths); + }); + + await this.attachmentButton.click(); + } + + async removeFile(fileName: string) { + const files = await this.container.locator(`.file-preview`).all(); + + for (let i = 0; i < files.length; i++) { + const textContent = await files[i].textContent(); + if (textContent?.includes(fileName)) { + const removeButton = files[i].locator('.icon-close'); + await removeButton.click(); + break; + } + } + } + + async sendMessage() { + await this.input.scrollIntoViewIfNeeded(); + + await expect(this.sendMessageButton).toBeVisible(); + await expect(this.sendMessageButton).toBeEnabled(); + + await this.sendMessageButton.click(); + } + + async postMessage(message: string) { + await this.writeMessage(message); + await this.sendMessage(); + } + + async toContainText(text: string) { + await expect(this.container).toContainText(text); + } +} + +export {ChannelsPostEdit}; diff --git a/e2e-tests/playwright/support/ui/components/channels/post_menu.ts b/e2e-tests/playwright/support/ui/components/channels/post_menu.ts index 6e28058308..f3c9c44173 100644 --- a/e2e-tests/playwright/support/ui/components/channels/post_menu.ts +++ b/e2e-tests/playwright/support/ui/components/channels/post_menu.ts @@ -47,6 +47,13 @@ export default class PostMenu { await this.dotMenuButton.waitFor(); await this.dotMenuButton.click(); } + + /** + * Clicks on dot menu button. + */ + async clickOnDotMenu() { + await this.dotMenuButton.click(); + } } export {PostMenu}; diff --git a/e2e-tests/playwright/support/ui/components/channels/restore_post_confirmation_dialog.ts b/e2e-tests/playwright/support/ui/components/channels/restore_post_confirmation_dialog.ts new file mode 100644 index 0000000000..8d8f411bfc --- /dev/null +++ b/e2e-tests/playwright/support/ui/components/channels/restore_post_confirmation_dialog.ts @@ -0,0 +1,34 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import {expect, Locator} from '@playwright/test'; + +export default class RestorePostConfirmationDialog { + readonly container: Locator; + + readonly cancelButton; + readonly confirmButton; + + constructor(container: Locator) { + this.container = container; + + this.cancelButton = container.locator('button.btn.btn-tertiary'); + this.confirmButton = container.locator('button.GenericModal__button.btn.btn-primary.confirm'); + } + + async toBeVisible() { + await expect(this.container).toBeVisible(); + await expect(this.cancelButton).toBeVisible(); + await expect(this.confirmButton).toBeVisible(); + } + + async notToBeVisible() { + await expect(this.container).not.toBeVisible(); + } + + async confirmRestore() { + await this.confirmButton.click(); + } +} + +export {RestorePostConfirmationDialog}; diff --git a/e2e-tests/playwright/support/ui/components/channels/scheduled_draft_modal.ts b/e2e-tests/playwright/support/ui/components/channels/scheduled_draft_modal.ts index 0b8d6a6899..0c05051929 100644 --- a/e2e-tests/playwright/support/ui/components/channels/scheduled_draft_modal.ts +++ b/e2e-tests/playwright/support/ui/components/channels/scheduled_draft_modal.ts @@ -71,7 +71,7 @@ export default class ScheduledDraftModal { */ async selectTime() { await this.timeLocator.click(); - const timeButton = this.timeDropdownOptions.first(); + const timeButton = this.timeDropdownOptions.nth(1); await expect(timeButton).toBeVisible(); await timeButton.click(); } diff --git a/e2e-tests/playwright/support/ui/components/channels/sidebar_left.ts b/e2e-tests/playwright/support/ui/components/channels/sidebar_left.ts index 9c75aa8dfc..c4f0fa12aa 100644 --- a/e2e-tests/playwright/support/ui/components/channels/sidebar_left.ts +++ b/e2e-tests/playwright/support/ui/components/channels/sidebar_left.ts @@ -19,6 +19,10 @@ export default class ChannelsSidebarLeft { await expect(this.container).toBeVisible(); } + async assertNoPendingScheduledDraft() { + await expect(this.scheduledDraftCountonLHS).not.toBeVisible(); + } + async assertscheduledDraftCountLHS(count: string) { await expect(this.scheduledDraftCountonLHS).toBeVisible(); await expect(this.scheduledDraftCountonLHS).toHaveText(count); diff --git a/e2e-tests/playwright/support/ui/components/channels/sidebar_right.ts b/e2e-tests/playwright/support/ui/components/channels/sidebar_right.ts index d7391e85a0..bece0305e6 100644 --- a/e2e-tests/playwright/support/ui/components/channels/sidebar_right.ts +++ b/e2e-tests/playwright/support/ui/components/channels/sidebar_right.ts @@ -15,17 +15,27 @@ export default class ChannelsSidebarRight { readonly scheduledDraftChannelInfoMessage; readonly scheduledDraftSeeAllLink; readonly scheduledDraftChannelInfoMessageText; + readonly editTextbox; + readonly postEdit; + readonly currentVersionEditedPosttext; + readonly restorePreviousPostVersionIcon; constructor(container: Locator) { this.container = container; this.postBoxIndicator = container.locator('div.postBoxIndicator'); this.scheduledDraftChannelInfoMessage = container.locator('div.ScheduledPostIndicator span'); - this.scheduledDraftSeeAllLink = container.locator('a:has-text("See all scheduled messages")'); + this.scheduledDraftSeeAllLink = container.locator('a:has-text("See all")'); this.scheduledDraftChannelInfoMessageText = container.locator('span:has-text("Message scheduled for")'); this.rhsPostBody = container.locator('.post-message__text'); this.postCreate = new components.ChannelsPostCreate(container.getByTestId('comment-create'), true); this.closeButton = container.locator('#rhsCloseButton'); + this.editTextbox = container.locator('#edit_textbox'); + this.postEdit = new components.ChannelsPostEdit(container.locator('.post-edit__container')); + this.currentVersionEditedPosttext = (postID: any) => container.locator(`#rhsPostMessageText_${postID} p`); + this.restorePreviousPostVersionIcon = container.locator( + 'button[aria-label="Select to restore an old message."]', + ); } async toBeVisible() { @@ -51,6 +61,12 @@ export default class ChannelsSidebarRight { return new components.ChannelsPost(post); } + async getFirstPost() { + const post = this.container.getByTestId('rhsPostView').first(); + await post.waitFor(); + return new components.ChannelsPost(post); + } + /** * Closes the RHS */ @@ -65,6 +81,19 @@ export default class ChannelsSidebarRight { await this.scheduledDraftSeeAllLink.isVisible(); await this.scheduledDraftSeeAllLink.click(); } + + async toContainText(text: string) { + await expect(this.container).toContainText(text); + } + + async verifyCurrentVersionPostMessage(postID: string | null, postMessageContent: string) { + expect(await this.currentVersionEditedPosttext(postID).textContent()).toBe(postMessageContent); + } + + async restorePreviousPostVersion() { + await this.restorePreviousPostVersionIcon.isVisible(); + await this.restorePreviousPostVersionIcon.click(); + } } export {ChannelsSidebarRight}; diff --git a/e2e-tests/playwright/support/ui/components/index.ts b/e2e-tests/playwright/support/ui/components/index.ts index 1f7c2375a5..18ec9adce2 100644 --- a/e2e-tests/playwright/support/ui/components/index.ts +++ b/e2e-tests/playwright/support/ui/components/index.ts @@ -33,6 +33,9 @@ import {SystemUsers} from './system_console/sections/system_users/system_users'; import {SystemUsersFilterPopover} from './system_console/sections/system_users/filter_popover'; import {SystemUsersFilterMenu} from './system_console/sections/system_users/filter_menu'; import {SystemUsersColumnToggleMenu} from './system_console/sections/system_users/column_toggle_menu'; +import ChannelsPostEdit from '@e2e-support/ui/components/channels/post_edit'; +import DeletePostConfirmationDialog from '@e2e-support/ui/components/channels/delete_post_confirmation_dialog'; +import RestorePostConfirmationDialog from '@e2e-support/ui/components/channels/restore_post_confirmation_dialog'; const components = { GlobalHeader, @@ -43,6 +46,7 @@ const components = { ChannelsAppBar, ChannelsHeader, ChannelsPostCreate, + ChannelsPostEdit, ChannelsPost, FindChannelsModal, DeletePostModal, @@ -65,6 +69,8 @@ const components = { SystemUsersColumnToggleMenu, MessagePriority, UserProfilePopover, + DeletePostConfirmationDialog, + RestorePostConfirmationDialog, }; export { @@ -76,6 +82,7 @@ export { ChannelsAppBar, ChannelsHeader, ChannelsPostCreate, + ChannelsPostEdit, ChannelsPost, FindChannelsModal, DeletePostModal, @@ -83,4 +90,5 @@ export { PostMenu, ThreadFooter, MessagePriority, + DeletePostConfirmationDialog, }; diff --git a/e2e-tests/playwright/tests/functional/channels/edit_file_attachments/edit_file_attachment.spec.ts b/e2e-tests/playwright/tests/functional/channels/edit_file_attachments/edit_file_attachment.spec.ts new file mode 100644 index 0000000000..fe4b5f6f8e --- /dev/null +++ b/e2e-tests/playwright/tests/functional/channels/edit_file_attachments/edit_file_attachment.spec.ts @@ -0,0 +1,351 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import {test} from '@e2e-support/test_fixture'; +import {expect} from '@playwright/test'; +import {duration, wait} from '@e2e-support/util'; +import {moveMouseToCenter} from '@e2e-support/test_action'; + +test('MM-T5654_1 should be able to add attachments while editing a post', async ({pw}) => { + const originalMessage = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'; + + const {user} = await pw.initSetup(); + const {channelsPage} = await pw.testBrowser.login(user); + + await channelsPage.goto(); + await channelsPage.toBeVisible(); + await channelsPage.centerView.postCreate.postMessage(originalMessage); + + const post = await channelsPage.centerView.getLastPost(); + await post.toBeVisible(); + await post.hover(); + await post.postMenu.toBeVisible(); + + // open the dot menu + await post.postMenu.dotMenuButton.click(); + await channelsPage.postDotMenu.toBeVisible(); + await channelsPage.postDotMenu.editMenuItem.click(); + await channelsPage.centerView.postEdit.toBeVisible(); + await channelsPage.centerView.postEdit.writeMessage('Edited message'); + await channelsPage.centerView.postEdit.sendMessage(); + + const updatedPost = await channelsPage.centerView.getLastPost(); + await updatedPost.toBeVisible(); + await updatedPost.toContainText('Edited message'); +}); + +test('MM-T5654_2 should be able to add attachments while editing a threaded post', async ({pw}) => { + const originalMessage = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'; + + const {user} = await pw.initSetup(); + const {channelsPage, page} = await pw.testBrowser.login(user); + + await channelsPage.goto(); + await channelsPage.toBeVisible(); + await channelsPage.centerView.postCreate.postMessage(originalMessage); + + const post = await channelsPage.centerView.getLastPost(); + await post.toBeVisible(); + await post.hover(); + await post.postMenu.toBeVisible(); + + // open the dot menu + await post.postMenu.dotMenuButton.click(); + await channelsPage.postDotMenu.toBeVisible(); + await channelsPage.postDotMenu.replyMenuItem.click(); + await channelsPage.sidebarRight.toBeVisible(); + await channelsPage.sidebarRight.postCreate.toBeVisible(); + await channelsPage.sidebarRight.postCreate.postMessage('Replying to the post'); + await channelsPage.sidebarRight.toContainText('Replying to the post'); + + const replyPost = await channelsPage.sidebarRight.getLastPost(); + await replyPost.toBeVisible(); + await replyPost.hover(); + await replyPost.postMenu.toBeVisible(); + await replyPost.postMenu.dotMenuButton.click(); + await channelsPage.postDotMenu.toBeVisible(); + await channelsPage.postDotMenu.editMenuItem.click(); + await channelsPage.sidebarRight.postEdit.toBeVisible(); + await channelsPage.sidebarRight.postEdit.writeMessage('Edited reply message'); + await channelsPage.sidebarRight.postEdit.sendMessage(); + + let updatedReplyPost = await channelsPage.sidebarRight.getLastPost(); + await updatedReplyPost.toBeVisible(); + await updatedReplyPost.toContainText('Edited reply message'); + + // now we'll edit the reply post and files to it + await updatedReplyPost.hover(); + await updatedReplyPost.postMenu.toBeVisible(); + await updatedReplyPost.postMenu.dotMenuButton.click(); + await channelsPage.postDotMenu.toBeVisible(); + await channelsPage.postDotMenu.editMenuItem.click(); + await channelsPage.sidebarRight.postEdit.toBeVisible(); + await channelsPage.sidebarRight.postEdit.writeMessage('Edited reply message with files'); + await channelsPage.sidebarRight.postEdit.addFiles(['sample_text_file.txt', 'mattermost.png']); + await wait(duration.half_sec); + await channelsPage.sidebarRight.postEdit.sendMessage(); + await wait(duration.half_sec); + await channelsPage.sidebarRight.postEdit.toNotBeVisible(); + await updatedReplyPost.toBeVisible(); + await updatedReplyPost.toContainText('Edited reply message with files'); + await updatedReplyPost.toContainText('sample_text_file.txt'); + await updatedReplyPost.toContainText('mattermost.png'); + + // now we'll remove the files + await updatedReplyPost.hover(); + await updatedReplyPost.postMenu.toBeVisible(); + await updatedReplyPost.postMenu.clickOnDotMenu(); + await moveMouseToCenter(page); + await channelsPage.postDotMenu.toBeVisible(); + await channelsPage.postDotMenu.editMenuItem.click(); + await channelsPage.sidebarRight.postEdit.toBeVisible(); + await channelsPage.sidebarRight.postEdit.removeFile('sample_text_file.txt'); + await wait(duration.half_sec); + await channelsPage.sidebarRight.postEdit.removeFile('mattermost.png'); + await wait(duration.half_sec); + await channelsPage.sidebarRight.postEdit.sendMessage(); + + updatedReplyPost = await channelsPage.sidebarRight.getLastPost(); + await updatedReplyPost.toBeVisible(); + await updatedReplyPost.toContainText('Edited reply message with files'); + expect(updatedReplyPost).not.toContain('sample_text_file.txt'); + expect(updatedReplyPost).not.toContain('mattermost.png'); +}); + +test('MM-T5654_3 should be able to edit post message originally containing files', async ({pw}) => { + const originalMessage = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'; + + const {user} = await pw.initSetup(); + const {channelsPage} = await pw.testBrowser.login(user); + + await channelsPage.goto(); + await channelsPage.toBeVisible(); + await channelsPage.centerView.postCreate.postMessage(originalMessage, ['sample_text_file.txt']); + + const post = await channelsPage.centerView.getLastPost(); + await post.toBeVisible(); + await post.hover(); + await post.postMenu.toBeVisible(); + + // open the dot menu + await post.postMenu.dotMenuButton.click(); + await channelsPage.postDotMenu.toBeVisible(); + await channelsPage.postDotMenu.editMenuItem.click(); + await channelsPage.centerView.postEdit.toBeVisible(); + await channelsPage.centerView.postEdit.writeMessage('Edited message'); + await channelsPage.centerView.postEdit.sendMessage(); + + const updatedPost = await channelsPage.centerView.getLastPost(); + await updatedPost.toBeVisible(); + await updatedPost.toContainText('Edited message'); +}); + +test('MM-T5654_4 should be able to add files when editing a post', async ({pw}) => { + const originalMessage = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'; + + const {user} = await pw.initSetup(); + const {channelsPage} = await pw.testBrowser.login(user); + + await channelsPage.goto(); + await channelsPage.toBeVisible(); + await channelsPage.centerView.postCreate.postMessage(originalMessage); + + const post = await channelsPage.centerView.getLastPost(); + await post.toBeVisible(); + await post.hover(); + await post.postMenu.toBeVisible(); + + // open the dot menu + await post.postMenu.dotMenuButton.click(); + await channelsPage.postDotMenu.toBeVisible(); + await channelsPage.postDotMenu.editMenuItem.click(); + await channelsPage.centerView.postEdit.toBeVisible(); + await channelsPage.centerView.postEdit.writeMessage('Edited message'); + await channelsPage.centerView.postEdit.addFiles(['sample_text_file.txt']); + await channelsPage.centerView.postEdit.sendMessage(); + + const updatedPost = await channelsPage.centerView.getLastPost(); + await updatedPost.toBeVisible(); + await updatedPost.toContainText('Edited message'); + await updatedPost.toContainText('sample_text_file.txt'); + + // now we'll add multiple files + await post.postMenu.dotMenuButton.click(); + await channelsPage.postDotMenu.toBeVisible(); + await channelsPage.postDotMenu.editMenuItem.click(); + await channelsPage.centerView.postEdit.toBeVisible(); + await channelsPage.centerView.postEdit.addFiles(['mattermost.png', 'archive.zip']); + await channelsPage.centerView.postEdit.sendMessage(); + + const secondUpdatedPost = await channelsPage.centerView.getLastPost(); + await secondUpdatedPost.toBeVisible(); + await secondUpdatedPost.toContainText('Edited message'); + await secondUpdatedPost.toContainText('sample_text_file.txt'); + await secondUpdatedPost.toContainText('mattermost.png'); + await secondUpdatedPost.toContainText('archive.zip'); +}); + +test('MM-5654_5 should be able to remove attachments while editing a post', async ({pw}) => { + const originalMessage = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'; + + const {user} = await pw.initSetup(); + const {channelsPage, page} = await pw.testBrowser.login(user); + + await channelsPage.goto(); + await channelsPage.toBeVisible(); + await channelsPage.centerView.postCreate.postMessage(originalMessage, [ + 'sample_text_file.txt', + 'mattermost.png', + 'archive.zip', + ]); + + const post = await channelsPage.centerView.getLastPost(); + await post.toBeVisible(); + await post.toContainText(originalMessage); + await post.toContainText('sample_text_file.txt'); + await post.toContainText('mattermost.png'); + await post.toContainText('archive.zip'); + + await post.hover(); + await post.postMenu.toBeVisible(); + await post.postMenu.clickOnDotMenu(); + await moveMouseToCenter(page); + + await channelsPage.postDotMenu.toBeVisible(); + await channelsPage.postDotMenu.editMenuItem.click(); + await channelsPage.centerView.postEdit.toBeVisible(); + await channelsPage.centerView.postEdit.removeFile('sample_text_file.txt'); + await channelsPage.centerView.postEdit.sendMessage(); + + const updatedPost = await channelsPage.centerView.getLastPost(); + await updatedPost.toBeVisible(); + await updatedPost.toContainText(originalMessage); + await updatedPost.toContainText('mattermost.png'); + await updatedPost.toContainText('archive.zip'); + expect(updatedPost).not.toContain('archive.zip'); +}); + +test('MM-T5655_1 removing message content and files should delete the post', async ({pw}) => { + const originalMessage = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'; + + const {user} = await pw.initSetup(); + const {channelsPage} = await pw.testBrowser.login(user); + + await channelsPage.goto(); + await channelsPage.toBeVisible(); + await channelsPage.centerView.postCreate.postMessage(originalMessage, ['sample_text_file.txt']); + + const post = await channelsPage.centerView.getLastPost(); + await post.toBeVisible(); + await post.toContainText(originalMessage); + await post.toContainText('sample_text_file.txt'); + + await post.hover(); + await post.postMenu.toBeVisible(); + await post.postMenu.dotMenuButton.click(); + + await channelsPage.postDotMenu.toBeVisible(); + await channelsPage.postDotMenu.editMenuItem.click(); + await channelsPage.centerView.postEdit.toBeVisible(); + await channelsPage.centerView.postEdit.removeFile('sample_text_file.txt'); + await channelsPage.centerView.postEdit.writeMessage(''); + await channelsPage.centerView.postEdit.sendMessage(); + + await channelsPage.centerView.postEdit.deleteConfirmationDialog.toBeVisible(); + await channelsPage.centerView.postEdit.deleteConfirmationDialog.confirmDeletion(); + await channelsPage.centerView.postEdit.deleteConfirmationDialog.notToBeVisible(); + + expect(channelsPage).not.toContain(originalMessage); + expect(channelsPage).not.toContain('sample_text_file.txt'); +}); + +test('MM-T5655_2 should be able to remove all files when editing a post', async ({pw}) => { + const originalMessage = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'; + + const {user} = await pw.initSetup(); + const {channelsPage, page} = await pw.testBrowser.login(user); + + await channelsPage.goto(); + await channelsPage.toBeVisible(); + await channelsPage.centerView.postCreate.postMessage(originalMessage, [ + 'sample_text_file.txt', + 'mattermost.png', + 'archive.zip', + ]); + + const post = await channelsPage.centerView.getLastPost(); + await post.toBeVisible(); + await post.toContainText(originalMessage); + await post.toContainText('sample_text_file.txt'); + await post.toContainText('mattermost.png'); + await post.toContainText('archive.zip'); + + await post.hover(); + await post.postMenu.toBeVisible(); + await post.postMenu.clickOnDotMenu(); + await moveMouseToCenter(page); + + await channelsPage.postDotMenu.toBeVisible(); + await channelsPage.postDotMenu.editMenuItem.click(); + await channelsPage.centerView.postEdit.toBeVisible(); + await channelsPage.centerView.postEdit.removeFile('sample_text_file.txt'); + await channelsPage.centerView.postEdit.removeFile('mattermost.png'); + await channelsPage.centerView.postEdit.removeFile('archive.zip'); + await channelsPage.centerView.postEdit.sendMessage(); + + const updatedPost = await channelsPage.centerView.getLastPost(); + await updatedPost.toBeVisible(); + await updatedPost.toContainText(originalMessage); + expect(updatedPost).not.toContain('archive.zip'); + expect(updatedPost).not.toContain('mattermost.png'); + expect(updatedPost).not.toContain('sample_text_file.txt'); +}); + +test('MM-T5656_1 should be able to restore previously edited post version that contains attachments', async ({pw}) => { + const originalMessage = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'; + const newMessage = 'New Message'; + + const {user} = await pw.initSetup(); + const {channelsPage} = await pw.testBrowser.login(user); + + await channelsPage.goto(); + await channelsPage.toBeVisible(); + await channelsPage.centerView.postCreate.postMessage(originalMessage, ['sample_text_file.txt']); + + const post = await channelsPage.centerView.getLastPost(); + await post.toBeVisible(); + await post.toContainText(originalMessage); + await post.toContainText('sample_text_file.txt'); + + await post.hover(); + await post.postMenu.toBeVisible(); + await post.postMenu.dotMenuButton.click(); + + await channelsPage.postDotMenu.toBeVisible(); + await channelsPage.postDotMenu.editMenuItem.click(); + await channelsPage.centerView.postEdit.toBeVisible(); + await channelsPage.centerView.postEdit.removeFile('sample_text_file.txt'); + await channelsPage.centerView.postEdit.writeMessage(newMessage); + await channelsPage.centerView.postEdit.sendMessage(); + + const updatedPost = await channelsPage.centerView.getLastPost(); + await updatedPost.toBeVisible(); + await updatedPost.toContainText(newMessage); + expect(updatedPost).not.toContain('sample_text_file.txt'); + + const postID = await channelsPage.centerView.getLastPostID(); + await channelsPage.centerView.clickOnLastEditedPost(postID); + + await channelsPage.sidebarRight.toBeVisible(); + await channelsPage.sidebarRight.verifyCurrentVersionPostMessage(postID, newMessage); + + await channelsPage.sidebarRight.restorePreviousPostVersion(); + + await channelsPage.centerView.postEdit.restorePostConfirmationDialog.toBeVisible(); + await channelsPage.centerView.postEdit.restorePostConfirmationDialog.confirmRestore(); + await channelsPage.centerView.postEdit.restorePostConfirmationDialog.notToBeVisible(); + + const restoredPost = await channelsPage.centerView.getLastPost(); + await restoredPost.toBeVisible(); + expect(restoredPost.toContainText('sample_text_file.txt')); +}); diff --git a/e2e-tests/playwright/tests/functional/channels/scheduled_drafts/create_scheduled_draft.spec.ts b/e2e-tests/playwright/tests/functional/channels/scheduled_drafts/create_scheduled_draft.spec.ts index 1b0b8cb5c1..3543a59fd2 100644 --- a/e2e-tests/playwright/tests/functional/channels/scheduled_drafts/create_scheduled_draft.spec.ts +++ b/e2e-tests/playwright/tests/functional/channels/scheduled_drafts/create_scheduled_draft.spec.ts @@ -1,16 +1,19 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + import {expect, Page} from '@playwright/test'; import {test} from '@e2e-support/test_fixture'; import {ChannelsPage, ScheduledDraftPage} from '@e2e-support/ui/pages'; import {duration, wait} from '@e2e-support/util'; -test.fixme('MM-T5643_1 should create a scheduled message from a channel', async ({pw}) => { - test.setTimeout(120000); +test('MM-T5643_1 should create a scheduled message from a channel', async ({pw}) => { + test.setTimeout(duration.four_min); const draftMessage = 'Scheduled Draft'; // # Skip test if no license await pw.skipIfNoLicense(); - const {user, team} = await pw.initSetup(); + const {user} = await pw.initSetup(); const {page, channelsPage, scheduledDraftPage} = await pw.testBrowser.login(user); await setupChannelPage(channelsPage, draftMessage); @@ -32,21 +35,18 @@ test.fixme('MM-T5643_1 should create a scheduled message from a channel', async await expect(channelsPage.centerView.scheduledDraftChannelInfoMessage).not.toBeVisible(); await expect(channelsPage.sidebarLeft.scheduledDraftCountonLHS).not.toBeVisible(); await expect(await channelsPage.getLastPost()).toHaveText(draftMessage); - - await verifyNoscheduledDraftsPending(channelsPage, team, scheduledDraftPage, draftMessage); + await channelsPage.sidebarLeft.assertNoPendingScheduledDraft(); }); -test.fixme('MM-T5643_6 should create a scheduled message under a thread post ', async ({pw}) => { - test.setTimeout(120000); - +test('MM-T5643_6 should create a scheduled message under a thread post ', async ({pw}) => { const draftMessage = 'Scheduled Threaded Message'; // # Skip test if no license await pw.skipIfNoLicense(); - const {user, team} = await pw.initSetup(); + const {user} = await pw.initSetup(); // # Log in as a user in new browser context - const {page, channelsPage, scheduledDraftPage} = await pw.testBrowser.login(user); + const {channelsPage, scheduledDraftPage} = await pw.testBrowser.login(user); // # Visit default channel page await channelsPage.goto(); @@ -94,22 +94,17 @@ test.fixme('MM-T5643_6 should create a scheduled message under a thread post ', // # Hover and verify options await scheduledDraftPage.verifyOnHoverActionItems(draftMessage); - await goBackToChannelAndWaitForMessageToArrive(page); + await scheduledDraftPage.sendScheduledMessage(draftMessage); - await replyToLastPost(post); + await sidebarRight.toBeVisible(); + (await sidebarRight.getLastPost()).toContainText(draftMessage); - // * Verify the message has been sent and there's no more scheduled messages await expect(channelsPage.sidebarRight.scheduledDraftChannelInfoMessage).not.toBeVisible(); await expect(channelsPage.sidebarLeft.scheduledDraftCountonLHS).not.toBeVisible(); - - const lastPost = channelsPage.sidebarRight.rhsPostBody.last(); - await expect(lastPost).toHaveText(draftMessage); - await expect(scheduledDraftPage.scheduledDraftPanel(draftMessage)).not.toBeVisible(); - - await verifyNoscheduledDraftsPending(channelsPage, team, scheduledDraftPage, draftMessage); + await channelsPage.sidebarLeft.assertNoPendingScheduledDraft(); }); -test.fixme('MM-T5644 should reschedule a scheduled message', async ({pw}) => { +test('MM-T5644 should reschedule a scheduled message', async ({pw}) => { const draftMessage = 'Scheduled Draft'; await pw.skipIfNoLicense(); @@ -141,7 +136,7 @@ test.fixme('MM-T5644 should reschedule a scheduled message', async ({pw}) => { await compareMessageTimestamps(rescheduledDraftChannelInfo, scheduledDraftPageInfo, scheduledDraftPage); }); -test.fixme('MM-T5645 should delete a scheduled message', async ({pw}) => { +test('MM-T5645 should delete a scheduled message', async ({pw}) => { const draftMessage = 'Scheduled Draft'; await pw.skipIfNoLicense(); @@ -160,7 +155,7 @@ test.fixme('MM-T5645 should delete a scheduled message', async ({pw}) => { await expect(scheduledDraftPage.noscheduledDraftIcon).toBeVisible(); }); -test.fixme('MM-T5643_9 should send a scheduled message immediately', async ({pw}) => { +test('MM-T5643_9 should send a scheduled message immediately', async ({pw}) => { const draftMessage = 'Scheduled Draft'; await pw.skipIfNoLicense(); @@ -174,6 +169,7 @@ test.fixme('MM-T5643_9 should send a scheduled message immediately', async ({pw} await verifyScheduledDraft(channelsPage, scheduledDraftPage, draftMessage, postBoxIndicator); await scheduledDraftPage.sendScheduledMessage(draftMessage); + await wait(duration.two_sec); await expect(scheduledDraftPage.scheduledDraftPanel(draftMessage)).not.toBeVisible(); @@ -183,9 +179,7 @@ test.fixme('MM-T5643_9 should send a scheduled message immediately', async ({pw} await expect(await channelsPage.getLastPost()).toHaveText(draftMessage); }); -test.fixme('MM-T5643_3 should create a scheduled message from a DM', async ({pw}) => { - test.setTimeout(120000); - +test('MM-T5643_3 should create a scheduled message from a DM', async ({pw}) => { const draftMessage = 'Scheduled Draft'; // # Skip test if no license await pw.skipIfNoLicense(); @@ -207,20 +201,18 @@ test.fixme('MM-T5643_3 should create a scheduled message from a DM', async ({pw} // # Hover and verify options await scheduledDraftPage.verifyOnHoverActionItems(draftMessage); - // # Go back and wait for message to arrive - await goBackToChannelAndWaitForMessageToArrive(page); + await scheduledDraftPage.sendScheduledMessage(draftMessage); + await page.waitForSelector(channelsPage.centerView.scheduledDraftChannelInfoMessageLocator, {state: 'hidden'}); // * Verify the message has been sent and there's no more scheduled messages await expect(channelsPage.centerView.scheduledDraftChannelInfoMessage).not.toBeVisible(); await expect(channelsPage.sidebarLeft.scheduledDraftCountonLHS).not.toBeVisible(); await expect(await channelsPage.getLastPost()).toHaveText(draftMessage); - await verifyNoscheduledDraftsPending(channelsPage, team, scheduledDraftPage, draftMessage); + await channelsPage.sidebarLeft.assertNoPendingScheduledDraft(); }); test('MM-T5648 should create a draft and then schedule it', async ({pw}) => { - test.setTimeout(120000); - const draftMessage = 'Draft to be Scheduled'; await pw.skipIfNoLicense(); @@ -250,14 +242,12 @@ test('MM-T5648 should create a draft and then schedule it', async ({pw}) => { await scheduledDraftPage.assertscheduledDraftBody(draftMessage); }); -test.fixme('MM-T5644 should edit scheduled message', async ({pw}) => { - test.setTimeout(120000); - +test('MM-T5644 should edit scheduled message', async ({pw}) => { const draftMessage = 'Scheduled Draft'; // # Skip test if no license await pw.skipIfNoLicense(); - const {user, team} = await pw.initSetup(); + const {user} = await pw.initSetup(); const {page, channelsPage, scheduledDraftPage} = await pw.testBrowser.login(user); await setupChannelPage(channelsPage, draftMessage); @@ -275,20 +265,18 @@ test.fixme('MM-T5644 should edit scheduled message', async ({pw}) => { const updatedText = 'updated text'; await scheduledDraftPage.editText(updatedText); - // # Go back and wait for message to arrive - await goBackToChannelAndWaitForMessageToArrive(page); + await scheduledDraftPage.sendScheduledMessage(updatedText); // * Verify the message has been sent and there's no more scheduled messages + await page.waitForSelector(channelsPage.centerView.scheduledDraftChannelInfoMessageLocator, {state: 'hidden'}); await expect(channelsPage.centerView.scheduledDraftChannelInfoMessage).not.toBeVisible(); await expect(channelsPage.sidebarLeft.scheduledDraftCountonLHS).not.toBeVisible(); - await expect(await channelsPage.getLastPost()).toHaveText(draftMessage); + await expect(await channelsPage.getLastPost()).toHaveText(updatedText); - await verifyNoscheduledDraftsPending(channelsPage, team, scheduledDraftPage, draftMessage); + await channelsPage.sidebarLeft.assertNoPendingScheduledDraft(); }); -test.fixme('MM-T5650 should copy scheduled message', async ({pw, browserName}) => { - test.setTimeout(120000); - +test('MM-T5650 should copy scheduled message', async ({pw, browserName}) => { // Skip this test in Firefox clipboard permissions are not supported test.skip(browserName === 'firefox', 'Test not supported in Firefox'); @@ -315,28 +303,17 @@ test.fixme('MM-T5650 should copy scheduled message', async ({pw, browserName}) = await channelsPage.centerView.postCreate.input.focus(); - await page.keyboard.down('Meta'); + await page.keyboard.down('ControlOrMeta'); await page.keyboard.press('V'); - await page.keyboard.up('Meta'); + await page.keyboard.up('ControlOrMeta'); // * Assert the message typed is same as the copied message await expect(channelsPage.centerView.postCreate.input).toHaveText(draftMessage); }); -async function verifyNoscheduledDraftsPending( - channelsPage: ChannelsPage, - team: any, - scheduledDraftPage: ScheduledDraftPage, - draftMessage: string, -): Promise { - await channelsPage.goto(team.name, 'scheduled_posts'); - await expect(scheduledDraftPage.scheduledDraftPanel(draftMessage)).not.toBeVisible(); - await expect(scheduledDraftPage.noscheduledDraftIcon).toBeVisible(); -} - async function goBackToChannelAndWaitForMessageToArrive(page: Page): Promise { await page.goBack(); - await wait(duration.half_min); + await wait(duration.two_min); await page.reload(); }