Files
55bfbbb06c E2E/Playwright: Migrate RFQA browser tests (batch 6, 101-120) (#37431)
* E2E/Playwright: Migrate RFQA browser tests (batch 4, 61-80)

Migrate the fourth batch of Rainforest QA browser tests into Playwright
(migration plan None-core #34-53, keys MM-T480..MM-T1257): 17 new/covered
specs across notifications, search, channel_settings, sidebar_left,
keyboard_shortcuts, and direct_messages_modal, plus 3 duplicate keys folded
into existing tests (MM-T480, MM-T1256, MM-T1257).

POM/infra: add a ChannelMenu page object for the channel header dropdown, an
EditChannelHeaderModal, a header field on the channel-settings info tab, a
channel-wide-mentions checkbox on NotificationsSettings, a getConfirmModal
helper, and a clickNotification browser-API mock helper. Give the channel
header menu and the confirm modal proper accessible names so they can be
targeted semantically. Notification specs run on all browsers now that the
Notification API stub works headless on Chromium and Firefox.

* E2E/Playwright: Migrate RFQA browser tests (batch 5, 81-100)

Migrate the fifth batch of Rainforest QA browser tests into Playwright across
keyboard_shortcuts, search, archived_channels, channel_settings,
plugin_marketplace, messaging, and emoji_picker (keys MM-T1247..MM-T2365),
folding duplicate coverage into existing keyboard-shortcut specs and
documenting skipped cases inline.

POM/infra: add AddPeopleToChannelModal and MarketplaceModal page objects,
manage/add member buttons on the channel members RHS, and an App Marketplace
entry on the global header; target the search "Jump" link through the existing
SearchResultsPanel POM.

Also fix a webapp bug where a post body disappeared when an inline edit was
cancelled mid-animation (found via the up-arrow edit shortcut spec).

* E2E/Playwright: Migrate RFQA browser tests (batch 6, 101-120)

Migrate the sixth batch of Rainforest QA browser tests into Playwright
(migration plan None-core #74-93, keys MM-T2547..MM-T5604) across multi_team,
channel_settings, system_console, keyboard_shortcuts, search,
plugin_marketplace, messaging, channel_bookmarks, and custom_groups.

Fold duplicate coverage into existing specs (MM-T3680 into the marketplace
spec; MM-T4872 is already covered by the batch-5 search-prefill spec) and
document the plugin-install skip (MM-T4023, same external-download limitation
as MM-T1987).

POM/infra: add a ChannelBookmarksCreateModal page object and Bookmarks Bar
submenu actions on the ChannelMenu, plus a channel-bookmarks-bar locator and
bookmark-create-modal on ChannelsPage.

* E2E/Playwright: Fail on missing scroll bounding boxes

* E2E/Playwright: Locate user group dialog semantically

* E2E/Playwright: Address batch 6 review feedback

* E2E/Playwright: Locate user group rows semantically

* E2E/Playwright: Group related batch 6 specs

---------

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-13 19:03:56 +08:00

32 lines
1.3 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {expect, test} from '@mattermost/playwright-lib';
/**
* @objective Verify that entering a link in the bookmark create modal auto-fills the bookmark title from the
* link.
*/
test('MM-T5604 auto-fills the bookmark title from the entered link', {tag: '@channels'}, async ({pw}) => {
const {user, team} = await pw.initSetup();
const {channelsPage} = await pw.testBrowser.login(user);
await channelsPage.goto(team.name, 'town-square');
await channelsPage.toBeVisible();
// # Open the bookmark create modal via the channel menu's Bookmarks Bar submenu
const channelMenu = await channelsPage.openChannelMenu();
await channelMenu.openBookmarksSubmenu();
await channelMenu.addBookmarkLink.click();
await channelsPage.bookmarkCreateModal.toBeVisible();
// # Enter a link
await channelsPage.bookmarkCreateModal.linkInput.fill('https://www.amazon.com');
// * Verify the title field is auto-filled from the link
await expect(channelsPage.bookmarkCreateModal.titleInput).toHaveValue(/amazon/i);
// # Cancel without saving
await channelsPage.bookmarkCreateModal.cancelButton.click();
await channelsPage.bookmarkCreateModal.notToBeVisible();
});