From 82a5ef276bcfdbc22481c4ce428ed4183b8ab3b6 Mon Sep 17 00:00:00 2001 From: Joseph Baylon Date: Wed, 10 Feb 2021 13:49:49 -0800 Subject: [PATCH] MM-30695 Detox/E2E: Add e2e for MM-T3218 (#5135) * MM-30695 Detox/E2E: Add e2e for MM-T3218 * Minimize keyboard --- .../e2e/test/smoke_test/message_reply.e2e.js | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 detox/e2e/test/smoke_test/message_reply.e2e.js diff --git a/detox/e2e/test/smoke_test/message_reply.e2e.js b/detox/e2e/test/smoke_test/message_reply.e2e.js new file mode 100644 index 000000000..9b3ebfd0b --- /dev/null +++ b/detox/e2e/test/smoke_test/message_reply.e2e.js @@ -0,0 +1,67 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +// ******************************************************************* +// - [#] indicates a test step (e.g. # Go to a screen) +// - [*] indicates an assertion (e.g. * Check the title) +// - Use element testID when selecting an element. Create one if none. +// ******************************************************************* + +import { + ChannelScreen, + ThreadScreen, +} from '@support/ui/screen'; +import { + Channel, + Post, + Setup, +} from '@support/server_api'; + +describe('Message Reply', () => { + let testChannel; + let parentPost; + let parentPostItem; + let replyPost; + let replyPostItem; + + beforeAll(async () => { + const {team, user} = await Setup.apiInit(); + + const {channel} = await Channel.apiGetChannelByName(team.name, 'town-square'); + testChannel = channel; + + // # Open channel screen + await ChannelScreen.open(user); + }); + + afterAll(async () => { + await ChannelScreen.logout(); + }); + + it('MM-T3218 should be able to post a reply to a message', async () => { + // # Post a message + const parentMessage = Date.now().toString(); + await ChannelScreen.postMessage(parentMessage); + + // * Verify parent post is displayed in reply thread + ({post: parentPost} = await Post.apiGetLastPostInChannel(testChannel.id)); + await ChannelScreen.openReplyThreadFor(parentPost.id, parentMessage); + ({postListPostItem: parentPostItem} = await ThreadScreen.getPostListPostItem(parentPost.id, parentMessage)); + await expect(parentPostItem).toBeVisible(); + + // # Post a reply + const replyMessage = `reply to ${parentMessage}`; + await ThreadScreen.postMessage(replyMessage); + + // * Verify reply post appears after parent post in reply thread + ({post: replyPost} = await Post.apiGetLastPostInChannel(testChannel.id)); + ({postListPostItem: replyPostItem} = await ThreadScreen.getPostListPostItem(replyPost.id, replyMessage)); + await expect(replyPostItem).toBeVisible(); + await replyPostItem.tap(); + + // * Verify reply post is displayed in main channel + await ThreadScreen.back(); + await ChannelScreen.toBeVisible(); + await expect(element(by.text(replyMessage))).toBeVisible(); + }); +});