@mattermost/playwright-lib 10.7.0 → 11.3.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser_context.d.ts +4 -2
- package/dist/browser_context.js +24 -4
- package/dist/browser_context.js.map +1 -1
- package/dist/constant.d.ts +2 -0
- package/dist/constant.js +5 -0
- package/dist/constant.js.map +1 -1
- package/dist/file.js +2 -1
- package/dist/file.js.map +1 -1
- package/dist/flag.js +1 -1
- package/dist/flag.js.map +1 -1
- package/dist/global_setup.js +26 -4
- package/dist/global_setup.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +93 -3
- package/dist/index.js.map +1 -1
- package/dist/mock_browser_api.js.map +1 -1
- package/dist/server/channel.js.map +1 -1
- package/dist/server/client.d.ts +6 -0
- package/dist/server/client.js +6 -0
- package/dist/server/client.js.map +1 -1
- package/dist/server/default_config.d.ts +1 -0
- package/dist/server/default_config.js +100 -29
- package/dist/server/default_config.js.map +1 -1
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.js +9 -0
- package/dist/server/init.d.ts +9 -8
- package/dist/server/init.js +3 -11
- package/dist/server/init.js.map +1 -1
- package/dist/server/post.js.map +1 -1
- package/dist/server/team.d.ts +8 -1
- package/dist/server/team.js +13 -2
- package/dist/server/team.js.map +1 -1
- package/dist/server/user.d.ts +9 -2
- package/dist/server/user.js +36 -2
- package/dist/server/user.js.map +1 -1
- package/dist/test_action.d.ts +9 -0
- package/dist/test_action.js +39 -2
- package/dist/test_action.js.map +1 -1
- package/dist/test_config.js +1 -1
- package/dist/test_config.js.map +1 -1
- package/dist/test_fixture.d.ts +10 -3
- package/dist/test_fixture.js +19 -4
- package/dist/test_fixture.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +3 -0
- package/dist/ui/components/channels/app_bar.js.map +1 -1
- package/dist/ui/components/channels/center_view.d.ts +17 -13
- package/dist/ui/components/channels/center_view.js +55 -25
- package/dist/ui/components/channels/center_view.js.map +1 -1
- package/dist/ui/components/channels/channel_settings/channel_settings_modal.d.ts +17 -0
- package/dist/ui/components/channels/channel_settings/channel_settings_modal.js +49 -0
- package/dist/ui/components/channels/channel_settings/channel_settings_modal.js.map +1 -0
- package/dist/ui/components/channels/channel_settings/configuration_settings.d.ts +11 -0
- package/dist/ui/components/channels/channel_settings/configuration_settings.js +48 -0
- package/dist/ui/components/channels/channel_settings/configuration_settings.js.map +1 -0
- package/dist/ui/components/channels/{scheduled_draft_menu.d.ts → channel_settings/info_settings.d.ts} +1 -3
- package/dist/ui/components/channels/channel_settings/info_settings.js +18 -0
- package/dist/ui/components/channels/channel_settings/info_settings.js.map +1 -0
- package/dist/ui/components/channels/delete_post_confirmation_dialog.js.map +1 -1
- package/dist/ui/components/channels/delete_post_modal.js.map +1 -1
- package/dist/ui/components/channels/delete_scheduled_post_modal.d.ts +10 -0
- package/dist/ui/components/channels/delete_scheduled_post_modal.js +26 -0
- package/dist/ui/components/channels/delete_scheduled_post_modal.js.map +1 -0
- package/dist/ui/components/channels/draft_post.d.ts +16 -0
- package/dist/ui/components/channels/draft_post.js +39 -0
- package/dist/ui/components/channels/draft_post.js.map +1 -0
- package/dist/ui/components/channels/emoji_gif_picker.d.ts +2 -0
- package/dist/ui/components/channels/emoji_gif_picker.js +6 -0
- package/dist/ui/components/channels/emoji_gif_picker.js.map +1 -1
- package/dist/ui/components/channels/find_channels_modal.js.map +1 -1
- package/dist/ui/components/channels/flag_post_confirmation_dialog.d.ts +24 -0
- package/dist/ui/components/channels/flag_post_confirmation_dialog.js +74 -0
- package/dist/ui/components/channels/flag_post_confirmation_dialog.js.map +1 -0
- package/dist/ui/components/channels/generic_confirm_modal.js.map +1 -1
- package/dist/ui/components/channels/header.d.ts +2 -0
- package/dist/ui/components/channels/header.js +6 -0
- package/dist/ui/components/channels/header.js.map +1 -1
- package/dist/ui/components/channels/invite_people_modal.d.ts +6 -0
- package/dist/ui/components/channels/invite_people_modal.js +18 -0
- package/dist/ui/components/channels/invite_people_modal.js.map +1 -0
- package/dist/ui/components/channels/message_priority.d.ts +0 -1
- package/dist/ui/components/channels/message_priority.js +2 -7
- package/dist/ui/components/channels/message_priority.js.map +1 -1
- package/dist/ui/components/channels/post.d.ts +7 -0
- package/dist/ui/components/channels/post.js +18 -0
- package/dist/ui/components/channels/post.js.map +1 -1
- package/dist/ui/components/channels/post_create.d.ts +1 -5
- package/dist/ui/components/channels/post_create.js +3 -12
- package/dist/ui/components/channels/post_create.js.map +1 -1
- package/dist/ui/components/channels/post_dot_menu.d.ts +2 -0
- package/dist/ui/components/channels/post_dot_menu.js +5 -0
- package/dist/ui/components/channels/post_dot_menu.js.map +1 -1
- package/dist/ui/components/channels/post_edit.js.map +1 -1
- package/dist/ui/components/channels/post_menu.js.map +1 -1
- package/dist/ui/components/channels/post_reminder_menu.js.map +1 -1
- package/dist/ui/components/channels/profile_modal.d.ts +27 -0
- package/dist/ui/components/channels/profile_modal.js +66 -0
- package/dist/ui/components/channels/profile_modal.js.map +1 -0
- package/dist/ui/components/channels/restore_post_confirmation_dialog.js.map +1 -1
- package/dist/ui/components/channels/schedule_message_menu.d.ts +12 -0
- package/dist/ui/components/channels/schedule_message_menu.js +31 -0
- package/dist/ui/components/channels/schedule_message_menu.js.map +1 -0
- package/dist/ui/components/channels/schedule_message_modal.d.ts +20 -0
- package/dist/ui/components/channels/schedule_message_modal.js +91 -0
- package/dist/ui/components/channels/schedule_message_modal.js.map +1 -0
- package/dist/ui/components/channels/scheduled_draft_modal.js.map +1 -1
- package/dist/ui/components/channels/scheduled_post.d.ts +20 -0
- package/dist/ui/components/channels/scheduled_post.js +47 -0
- package/dist/ui/components/channels/scheduled_post.js.map +1 -0
- package/dist/ui/components/channels/scheduled_post_indicator.d.ts +12 -0
- package/dist/ui/components/channels/scheduled_post_indicator.js +32 -0
- package/dist/ui/components/channels/scheduled_post_indicator.js.map +1 -0
- package/dist/ui/components/channels/{search_popover.d.ts → search_box.d.ts} +1 -1
- package/dist/ui/components/channels/{search_popover.js → search_box.js} +4 -3
- package/dist/ui/components/channels/search_box.js.map +1 -0
- package/dist/ui/components/channels/send_message_now_modal.d.ts +10 -0
- package/dist/ui/components/channels/send_message_now_modal.js +26 -0
- package/dist/ui/components/channels/send_message_now_modal.js.map +1 -0
- package/dist/ui/components/channels/settings/advanced_settings.d.ts +15 -0
- package/dist/ui/components/channels/settings/advanced_settings.js +35 -0
- package/dist/ui/components/channels/settings/advanced_settings.js.map +1 -0
- package/dist/ui/components/channels/settings/display_settings.d.ts +27 -0
- package/dist/ui/components/channels/settings/display_settings.js +77 -0
- package/dist/ui/components/channels/settings/display_settings.js.map +1 -0
- package/dist/ui/components/channels/settings/{notification_settings.d.ts → notifications_settings.d.ts} +12 -0
- package/dist/ui/components/channels/settings/{notification_settings.js → notifications_settings.js} +23 -1
- package/dist/ui/components/channels/settings/notifications_settings.js.map +1 -0
- package/dist/ui/components/channels/settings/settings_modal.d.ts +19 -4
- package/dist/ui/components/channels/settings/settings_modal.js +48 -7
- package/dist/ui/components/channels/settings/settings_modal.js.map +1 -1
- package/dist/ui/components/channels/settings/sidebar_settings.d.ts +12 -0
- package/dist/ui/components/channels/settings/sidebar_settings.js +28 -0
- package/dist/ui/components/channels/settings/sidebar_settings.js.map +1 -0
- package/dist/ui/components/channels/sidebar_left.d.ts +16 -3
- package/dist/ui/components/channels/sidebar_left.js +26 -9
- package/dist/ui/components/channels/sidebar_left.js.map +1 -1
- package/dist/ui/components/channels/sidebar_right.d.ts +3 -2
- package/dist/ui/components/channels/sidebar_right.js +6 -6
- package/dist/ui/components/channels/sidebar_right.js.map +1 -1
- package/dist/ui/components/channels/team_menu.d.ts +19 -0
- package/dist/ui/components/channels/team_menu.js +51 -0
- package/dist/ui/components/channels/team_menu.js.map +1 -0
- package/dist/ui/components/channels/team_settings/team_settings_modal.d.ts +6 -0
- package/dist/ui/components/channels/team_settings/team_settings_modal.js +18 -0
- package/dist/ui/components/channels/team_settings/team_settings_modal.js.map +1 -0
- package/dist/ui/components/channels/thread_footer.js.map +1 -1
- package/dist/ui/components/channels/user_profile_popover.js.map +1 -1
- package/dist/ui/components/footer.js.map +1 -1
- package/dist/ui/components/global_header.d.ts +7 -2
- package/dist/ui/components/global_header.js +13 -1
- package/dist/ui/components/global_header.js.map +1 -1
- package/dist/ui/components/index.d.ts +33 -5
- package/dist/ui/components/index.js +90 -10
- package/dist/ui/components/index.js.map +1 -1
- package/dist/ui/components/main_header.js.map +1 -1
- package/dist/ui/components/system_console/navbar.js.map +1 -1
- package/dist/ui/components/system_console/sections/site_configuration/notifications.d.ts +24 -0
- package/dist/ui/components/system_console/sections/site_configuration/notifications.js +63 -0
- package/dist/ui/components/system_console/sections/site_configuration/notifications.js.map +1 -0
- package/dist/ui/components/system_console/sections/system_users/column_toggle_menu.js.map +1 -1
- package/dist/ui/components/system_console/sections/system_users/feature_discovery.js.map +1 -1
- package/dist/ui/components/system_console/sections/system_users/filter_menu.js.map +1 -1
- package/dist/ui/components/system_console/sections/system_users/filter_popover.js.map +1 -1
- package/dist/ui/components/system_console/sections/system_users/mobile_security.d.ts +29 -2
- package/dist/ui/components/system_console/sections/system_users/mobile_security.js +75 -1
- package/dist/ui/components/system_console/sections/system_users/mobile_security.js.map +1 -1
- package/dist/ui/components/system_console/sections/system_users/system_users.js.map +1 -1
- package/dist/ui/components/system_console/sidebar.js.map +1 -1
- package/dist/ui/components/user_account_menu.d.ts +13 -0
- package/dist/ui/components/user_account_menu.js +32 -0
- package/dist/ui/components/user_account_menu.js.map +1 -0
- package/dist/ui/pages/channels.d.ts +46 -11
- package/dist/ui/pages/channels.js +119 -12
- package/dist/ui/pages/channels.js.map +1 -1
- package/dist/ui/pages/content_review_dm.d.ts +44 -0
- package/dist/ui/pages/content_review_dm.js +154 -0
- package/dist/ui/pages/content_review_dm.js.map +1 -0
- package/dist/ui/pages/drafts.d.ts +9 -25
- package/dist/ui/pages/drafts.js +25 -94
- package/dist/ui/pages/drafts.js.map +1 -1
- package/dist/ui/pages/index.d.ts +9 -5
- package/dist/ui/pages/index.js +10 -5
- package/dist/ui/pages/index.js.map +1 -1
- package/dist/ui/pages/landing_login.js.map +1 -1
- package/dist/ui/pages/login.d.ts +2 -2
- package/dist/ui/pages/login.js +1 -1
- package/dist/ui/pages/login.js.map +1 -1
- package/dist/ui/pages/reset_password.d.ts +2 -2
- package/dist/ui/pages/reset_password.js +1 -1
- package/dist/ui/pages/reset_password.js.map +1 -1
- package/dist/ui/pages/scheduled_posts.d.ts +23 -0
- package/dist/ui/pages/scheduled_posts.js +63 -0
- package/dist/ui/pages/scheduled_posts.js.map +1 -0
- package/dist/ui/pages/signup.d.ts +2 -2
- package/dist/ui/pages/signup.js +1 -1
- package/dist/ui/pages/signup.js.map +1 -1
- package/dist/ui/pages/system_console.d.ts +16 -14
- package/dist/ui/pages/system_console.js +10 -1
- package/dist/ui/pages/system_console.js.map +1 -1
- package/dist/ui/pages/threads.d.ts +13 -0
- package/dist/ui/pages/threads.js +44 -0
- package/dist/ui/pages/threads.js.map +1 -0
- package/dist/util.d.ts +17 -4
- package/dist/util.js +65 -5
- package/dist/util.js.map +1 -1
- package/dist/visual/index.js +9 -3
- package/dist/visual/index.js.map +1 -1
- package/dist/visual/percy.js.map +1 -1
- package/package.json +14 -15
- package/dist/ui/components/channels/scheduled_draft_menu.js +0 -23
- package/dist/ui/components/channels/scheduled_draft_menu.js.map +0 -1
- package/dist/ui/components/channels/search_popover.js.map +0 -1
- package/dist/ui/components/channels/settings/notification_settings.js.map +0 -1
- package/dist/ui/pages/scheduled_draft.d.ts +0 -38
- package/dist/ui/pages/scheduled_draft.js +0 -144
- package/dist/ui/pages/scheduled_draft.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.js","sources":["../../../../../../src/ui/components/system_console/sections/site_configuration/notifications.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, expect} from '@playwright/test';\n\n/**\n * System Console -> Site Configuration -> Notifications\n */\nexport default class SystemConsoleNotifications {\n readonly container: Locator;\n\n // header\n readonly header: Locator;\n\n // Notification Display Name\n readonly notificationDisplayName: Locator;\n readonly notificationDisplayNameInput: Locator;\n readonly notificationDisplayNameHelpText: Locator;\n\n // Notification From Address\n readonly notificationFromAddress: Locator;\n readonly notificationFromAddressInput: Locator;\n readonly notificationFromAddressHelpText: Locator;\n\n // Support Email Address\n readonly supportEmailAddress: Locator;\n readonly supportEmailAddressInput: Locator;\n readonly supportEmailHelpText: Locator;\n\n // Push Notification Contents\n readonly pushNotificationContents: Locator;\n readonly pushNotificationContentsDropdown: Locator;\n readonly pushNotificationContentsHelpText: Locator;\n\n // Save button\n readonly saveButton: Locator;\n readonly errorMessage: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n\n // header\n this.header = this.container.locator('.admin-console__header').getByText('Notifications');\n\n // Notification Display Name\n this.notificationDisplayName = this.container.getByTestId('EmailSettings.FeedbackNameinput');\n this.notificationDisplayNameInput = this.container.getByTestId('EmailSettings.FeedbackNameinput');\n this.notificationDisplayNameHelpText = this.container.getByTestId('EmailSettings.FeedbackNamehelp-text');\n\n // Notification From Address\n this.notificationFromAddress = this.container.getByLabel('Notification From Address:');\n this.notificationFromAddressInput = this.container.getByTestId('EmailSettings.FeedbackEmailinput');\n this.notificationFromAddressHelpText = this.container.getByTestId('EmailSettings.FeedbackEmailhelp-text');\n\n // Support Email Address\n this.supportEmailAddress = this.container.getByLabel('Support Email Address:');\n this.supportEmailAddressInput = this.container.getByTestId('SupportSettings.SupportEmailinput');\n this.supportEmailHelpText = this.container.getByTestId('SupportSettings.SupportEmailhelp-text');\n\n // Push Notification Contents\n this.pushNotificationContents = this.container.getByTestId('EmailSettings.PushNotificationContents');\n this.pushNotificationContentsDropdown = this.container.getByTestId(\n 'EmailSettings.PushNotificationContentsdropdown',\n );\n this.pushNotificationContentsHelpText = this.container.getByTestId(\n 'EmailSettings.PushNotificationContentshelp-text',\n );\n\n // Save button and error message\n this.saveButton = this.container.getByTestId('saveSetting');\n this.errorMessage = this.container.locator('.has-error');\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIA;;AAEG;AACW,MAAO,0BAA0B,CAAA;AAClC,IAAA,SAAS;;AAGT,IAAA,MAAM;;AAGN,IAAA,uBAAuB;AACvB,IAAA,4BAA4B;AAC5B,IAAA,+BAA+B;;AAG/B,IAAA,uBAAuB;AACvB,IAAA,4BAA4B;AAC5B,IAAA,+BAA+B;;AAG/B,IAAA,mBAAmB;AACnB,IAAA,wBAAwB;AACxB,IAAA,oBAAoB;;AAGpB,IAAA,wBAAwB;AACxB,IAAA,gCAAgC;AAChC,IAAA,gCAAgC;;AAGhC,IAAA,UAAU;AACV,IAAA,YAAY;AAErB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AAG1B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC;;QAGzF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,iCAAiC,CAAC;QAC5F,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,iCAAiC,CAAC;QACjG,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,qCAAqC,CAAC;;QAGxG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,4BAA4B,CAAC;QACtF,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,kCAAkC,CAAC;QAClG,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,sCAAsC,CAAC;;QAGzG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAC9E,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,mCAAmC,CAAC;QAC/F,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,uCAAuC,CAAC;;QAG/F,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,wCAAwC,CAAC;QACpG,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAC9D,gDAAgD,CACnD;QACD,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAC9D,iDAAiD,CACpD;;QAGD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC;QAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;IAC5D;AAEA,IAAA,MAAM,WAAW,GAAA;QACb,MAAMA,WAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;IAC9C;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column_toggle_menu.js","sources":["../../../../../../src/ui/components/system_console/sections/system_users/column_toggle_menu.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, expect} from '@playwright/test';\n\nexport default class SystemUsersColumnToggleMenu {\n readonly container: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n }\n\n /**\n * Return the locator for the menu item with the given name.\n */\n async getMenuItem(menuItem: string) {\n const menuItemLocator = this.container.getByRole('menuitemcheckbox').filter({hasText: menuItem});\n await menuItemLocator.waitFor();\n\n return menuItemLocator;\n }\n\n /**\n * Returns the list of locators for all the menu items.\n */\n async getAllMenuItems() {\n const menuItemLocators = this.container.getByRole('menuitemcheckbox');\n return menuItemLocators;\n }\n\n /**\n * Pass in the item name to check/uncheck the menu item.\n */\n async clickMenuItem(menuItem: string) {\n const menuItemLocator = await this.getMenuItem(menuItem);\n await menuItemLocator.click();\n }\n\n /**\n * Close column toggle menu.\n */\n async close() {\n await this.container.press('Escape');\n await expect(this.container).not.toBeVisible();\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIc,MAAO,2BAA2B,CAAA;AACnC,IAAA,SAAS;AAElB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS
|
|
1
|
+
{"version":3,"file":"column_toggle_menu.js","sources":["../../../../../../src/ui/components/system_console/sections/system_users/column_toggle_menu.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, expect} from '@playwright/test';\n\nexport default class SystemUsersColumnToggleMenu {\n readonly container: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n }\n\n /**\n * Return the locator for the menu item with the given name.\n */\n async getMenuItem(menuItem: string) {\n const menuItemLocator = this.container.getByRole('menuitemcheckbox').filter({hasText: menuItem});\n await menuItemLocator.waitFor();\n\n return menuItemLocator;\n }\n\n /**\n * Returns the list of locators for all the menu items.\n */\n async getAllMenuItems() {\n const menuItemLocators = this.container.getByRole('menuitemcheckbox');\n return menuItemLocators;\n }\n\n /**\n * Pass in the item name to check/uncheck the menu item.\n */\n async clickMenuItem(menuItem: string) {\n const menuItemLocator = await this.getMenuItem(menuItem);\n await menuItemLocator.click();\n }\n\n /**\n * Close column toggle menu.\n */\n async close() {\n await this.container.press('Escape');\n await expect(this.container).not.toBeVisible();\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIc,MAAO,2BAA2B,CAAA;AACnC,IAAA,SAAS;AAElB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC9B;AAEA,IAAA,MAAM,WAAW,GAAA;QACb,MAAMA,WAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;IAC9C;AAEA;;AAEG;IACH,MAAM,WAAW,CAAC,QAAgB,EAAA;AAC9B,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAC,CAAC;AAChG,QAAA,MAAM,eAAe,CAAC,OAAO,EAAE;AAE/B,QAAA,OAAO,eAAe;IAC1B;AAEA;;AAEG;AACH,IAAA,MAAM,eAAe,GAAA;QACjB,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC;AACrE,QAAA,OAAO,gBAAgB;IAC3B;AAEA;;AAEG;IACH,MAAM,aAAa,CAAC,QAAgB,EAAA;QAChC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AACxD,QAAA,MAAM,eAAe,CAAC,KAAK,EAAE;IACjC;AAEA;;AAEG;AACH,IAAA,MAAM,KAAK,GAAA;QACP,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACpC,MAAMA,WAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE;IAClD;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature_discovery.js","sources":["../../../../../../src/ui/components/system_console/sections/system_users/feature_discovery.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {expect, Locator} from '@playwright/test';\n\n/**\n * System Console -> Feature Discovery\n */\nexport default class FeatureDiscovery {\n readonly container: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n }\n\n async toHaveTitle(title: string) {\n await expect(this.container.getByTestId('featureDiscovery_title')).toHaveText(title);\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIA;;AAEG;AACW,MAAO,gBAAgB,CAAA;AACxB,IAAA,SAAS;AAElB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS
|
|
1
|
+
{"version":3,"file":"feature_discovery.js","sources":["../../../../../../src/ui/components/system_console/sections/system_users/feature_discovery.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {expect, Locator} from '@playwright/test';\n\n/**\n * System Console -> Feature Discovery\n */\nexport default class FeatureDiscovery {\n readonly container: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n }\n\n async toHaveTitle(title: string) {\n await expect(this.container.getByTestId('featureDiscovery_title')).toHaveText(title);\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIA;;AAEG;AACW,MAAO,gBAAgB,CAAA;AACxB,IAAA,SAAS;AAElB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC9B;AAEA,IAAA,MAAM,WAAW,GAAA;QACb,MAAMA,WAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;IAC9C;IAEA,MAAM,WAAW,CAAC,KAAa,EAAA;AAC3B,QAAA,MAAMA,WAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;IACxF;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter_menu.js","sources":["../../../../../../src/ui/components/system_console/sections/system_users/filter_menu.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, expect} from '@playwright/test';\n\n/**\n * The dropdown menu which appears for both Role and Status filter.\n */\nexport default class SystemUsersFilterMenu {\n readonly container: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n }\n\n /**\n * Return the locator for the menu item with the given name.\n */\n async getMenuItem(menuItem: string) {\n const menuItemLocator = this.container.getByText(menuItem);\n await menuItemLocator.waitFor();\n\n return menuItemLocator;\n }\n\n /**\n * Clicks on the menu item with the given name.\n */\n async clickMenuItem(menuItem: string) {\n const menuItemLocator = await this.getMenuItem(menuItem);\n await menuItemLocator.click();\n }\n\n /**\n * Close the menu.\n */\n async close() {\n await this.container.press('Escape');\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIA;;AAEG;AACW,MAAO,qBAAqB,CAAA;AAC7B,IAAA,SAAS;AAElB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS
|
|
1
|
+
{"version":3,"file":"filter_menu.js","sources":["../../../../../../src/ui/components/system_console/sections/system_users/filter_menu.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, expect} from '@playwright/test';\n\n/**\n * The dropdown menu which appears for both Role and Status filter.\n */\nexport default class SystemUsersFilterMenu {\n readonly container: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n }\n\n /**\n * Return the locator for the menu item with the given name.\n */\n async getMenuItem(menuItem: string) {\n const menuItemLocator = this.container.getByText(menuItem);\n await menuItemLocator.waitFor();\n\n return menuItemLocator;\n }\n\n /**\n * Clicks on the menu item with the given name.\n */\n async clickMenuItem(menuItem: string) {\n const menuItemLocator = await this.getMenuItem(menuItem);\n await menuItemLocator.click();\n }\n\n /**\n * Close the menu.\n */\n async close() {\n await this.container.press('Escape');\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIA;;AAEG;AACW,MAAO,qBAAqB,CAAA;AAC7B,IAAA,SAAS;AAElB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC9B;AAEA,IAAA,MAAM,WAAW,GAAA;QACb,MAAMA,WAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;IAC9C;AAEA;;AAEG;IACH,MAAM,WAAW,CAAC,QAAgB,EAAA;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC1D,QAAA,MAAM,eAAe,CAAC,OAAO,EAAE;AAE/B,QAAA,OAAO,eAAe;IAC1B;AAEA;;AAEG;IACH,MAAM,aAAa,CAAC,QAAgB,EAAA;QAChC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AACxD,QAAA,MAAM,eAAe,CAAC,KAAK,EAAE;IACjC;AAEA;;AAEG;AACH,IAAA,MAAM,KAAK,GAAA;QACP,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;IACxC;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter_popover.js","sources":["../../../../../../src/ui/components/system_console/sections/system_users/filter_popover.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, expect} from '@playwright/test';\n\nexport default class SystemUsersFilterPopover {\n readonly container: Locator;\n\n readonly teamMenuInput: Locator;\n readonly roleMenuButton: Locator;\n readonly statusMenuButton: Locator;\n\n readonly applyButton: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n\n this.teamMenuInput = this.container.locator('#asyncTeamSelectInput');\n this.roleMenuButton = this.container.locator('#DropdownInput_filterRole');\n this.statusMenuButton = this.container.locator('#DropdownInput_filterStatus');\n\n this.applyButton = this.container.getByText('Apply');\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n await expect(this.applyButton).toBeVisible();\n }\n\n /**\n * Save the filter settings.\n */\n async save() {\n await this.applyButton.click();\n }\n\n /**\n * Allows to type in the team filter for searching.\n */\n async searchInTeamMenu(teamDisplayName: string) {\n expect(this.teamMenuInput).toBeVisible();\n await this.teamMenuInput.fill(teamDisplayName);\n }\n\n /**\n * Opens the role filter menu.\n */\n async openRoleMenu() {\n expect(this.roleMenuButton).toBeVisible();\n await this.roleMenuButton.click();\n }\n\n /**\n * Opens the status filter menu.\n */\n async openStatusMenu() {\n expect(this.statusMenuButton).toBeVisible();\n await this.statusMenuButton.click();\n }\n\n /**\n * Closes the filter popover.\n */\n async close() {\n await this.container.press('Escape');\n await expect(this.container).not.toBeVisible();\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIc,MAAO,wBAAwB,CAAA;AAChC,IAAA,SAAS;AAET,IAAA,aAAa;AACb,IAAA,cAAc;AACd,IAAA,gBAAgB;AAEhB,IAAA,WAAW;AAEpB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAE1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,uBAAuB,CAAC;QACpE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2BAA2B,CAAC;QACzE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,6BAA6B,CAAC;QAE7E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"filter_popover.js","sources":["../../../../../../src/ui/components/system_console/sections/system_users/filter_popover.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, expect} from '@playwright/test';\n\nexport default class SystemUsersFilterPopover {\n readonly container: Locator;\n\n readonly teamMenuInput: Locator;\n readonly roleMenuButton: Locator;\n readonly statusMenuButton: Locator;\n\n readonly applyButton: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n\n this.teamMenuInput = this.container.locator('#asyncTeamSelectInput');\n this.roleMenuButton = this.container.locator('#DropdownInput_filterRole');\n this.statusMenuButton = this.container.locator('#DropdownInput_filterStatus');\n\n this.applyButton = this.container.getByText('Apply');\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n await expect(this.applyButton).toBeVisible();\n }\n\n /**\n * Save the filter settings.\n */\n async save() {\n await this.applyButton.click();\n }\n\n /**\n * Allows to type in the team filter for searching.\n */\n async searchInTeamMenu(teamDisplayName: string) {\n expect(this.teamMenuInput).toBeVisible();\n await this.teamMenuInput.fill(teamDisplayName);\n }\n\n /**\n * Opens the role filter menu.\n */\n async openRoleMenu() {\n expect(this.roleMenuButton).toBeVisible();\n await this.roleMenuButton.click();\n }\n\n /**\n * Opens the status filter menu.\n */\n async openStatusMenu() {\n expect(this.statusMenuButton).toBeVisible();\n await this.statusMenuButton.click();\n }\n\n /**\n * Closes the filter popover.\n */\n async close() {\n await this.container.press('Escape');\n await expect(this.container).not.toBeVisible();\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIc,MAAO,wBAAwB,CAAA;AAChC,IAAA,SAAS;AAET,IAAA,aAAa;AACb,IAAA,cAAc;AACd,IAAA,gBAAgB;AAEhB,IAAA,WAAW;AAEpB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAE1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,uBAAuB,CAAC;QACpE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2BAA2B,CAAC;QACzE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,6BAA6B,CAAC;QAE7E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC;IACxD;AAEA,IAAA,MAAM,WAAW,GAAA;QACb,MAAMA,WAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;QAC1C,MAAMA,WAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;IAChD;AAEA;;AAEG;AACH,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;IAClC;AAEA;;AAEG;IACH,MAAM,gBAAgB,CAAC,eAAuB,EAAA;QAC1CA,WAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE;QACxC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC;IAClD;AAEA;;AAEG;AACH,IAAA,MAAM,YAAY,GAAA;QACdA,WAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE;AACzC,QAAA,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;IACrC;AAEA;;AAEG;AACH,IAAA,MAAM,cAAc,GAAA;QAChBA,WAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE;AAC3C,QAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;IACvC;AAEA;;AAEG;AACH,IAAA,MAAM,KAAK,GAAA;QACP,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACpC,MAAMA,WAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE;IAClD;AACH;;;;"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Locator } from '@playwright/test';
|
|
1
|
+
import { Locator, Page } from '@playwright/test';
|
|
2
2
|
/**
|
|
3
3
|
* System Console -> Environment -> Mobile Security
|
|
4
4
|
*/
|
|
5
5
|
export default class MobileSecurity {
|
|
6
|
+
readonly page: Page;
|
|
6
7
|
readonly container: Locator;
|
|
7
8
|
readonly enableBiometricAuthenticationToggleTrue: Locator;
|
|
8
9
|
readonly enableBiometricAuthenticationToggleFalse: Locator;
|
|
@@ -10,8 +11,22 @@ export default class MobileSecurity {
|
|
|
10
11
|
readonly preventScreenCaptureToggleFalse: Locator;
|
|
11
12
|
readonly jailbreakProtectionToggleTrue: Locator;
|
|
12
13
|
readonly jailbreakProtectionToggleFalse: Locator;
|
|
14
|
+
readonly enableSecureFilePreviewToggleTrue: Locator;
|
|
15
|
+
readonly enableSecureFilePreviewToggleFalse: Locator;
|
|
16
|
+
readonly allowPdfLinkNavigationToggleTrue: Locator;
|
|
17
|
+
readonly allowPdfLinkNavigationToggleFalse: Locator;
|
|
18
|
+
readonly enableIntuneMAMToggleTrue: Locator;
|
|
19
|
+
readonly enableIntuneMAMToggleFalse: Locator;
|
|
20
|
+
readonly enableIntuneToggleTrue: Locator;
|
|
21
|
+
readonly enableIntuneToggleFalse: Locator;
|
|
22
|
+
readonly intuneAuthServiceDropdown: Locator;
|
|
23
|
+
readonly intuneTenantIdInput: Locator;
|
|
24
|
+
readonly intuneClientIdInput: Locator;
|
|
25
|
+
readonly intuneTenantIdRequiredError: Locator;
|
|
13
26
|
readonly saveButton: Locator;
|
|
14
|
-
constructor(container: Locator);
|
|
27
|
+
constructor(container: Locator, page: Page);
|
|
28
|
+
discardChanges(): Promise<void>;
|
|
29
|
+
intuneTenantIdRequiredErrorToBeVisible(): Promise<void>;
|
|
15
30
|
toBeVisible(): Promise<void>;
|
|
16
31
|
clickEnableBiometricAuthenticationToggleTrue(): Promise<void>;
|
|
17
32
|
clickEnableBiometricAuthenticationToggleFalse(): Promise<void>;
|
|
@@ -19,5 +34,17 @@ export default class MobileSecurity {
|
|
|
19
34
|
clickPreventScreenCaptureToggleFalse(): Promise<void>;
|
|
20
35
|
clickJailbreakProtectionToggleTrue(): Promise<void>;
|
|
21
36
|
clickJailbreakProtectionToggleFalse(): Promise<void>;
|
|
37
|
+
clickEnableSecureFilePreviewToggleTrue(): Promise<void>;
|
|
38
|
+
clickEnableSecureFilePreviewToggleFalse(): Promise<void>;
|
|
39
|
+
clickAllowPdfLinkNavigationToggleTrue(): Promise<void>;
|
|
40
|
+
clickAllowPdfLinkNavigationToggleFalse(): Promise<void>;
|
|
41
|
+
clickEnableIntuneMAMToggleTrue(): Promise<void>;
|
|
42
|
+
selectAuthProvider(value: 'office365' | 'saml'): Promise<void>;
|
|
43
|
+
clickEnableIntuneMAMToggleFalse(): Promise<void>;
|
|
44
|
+
clickEnableIntuneToggleTrue(): Promise<void>;
|
|
45
|
+
clickEnableIntuneToggleFalse(): Promise<void>;
|
|
46
|
+
selectIntuneAuthService(value: 'office365' | 'saml'): Promise<void>;
|
|
47
|
+
fillIntuneTenantId(value: string): Promise<void>;
|
|
48
|
+
fillIntuneClientId(value: string): Promise<void>;
|
|
22
49
|
clickSaveButton(): Promise<void>;
|
|
23
50
|
}
|
|
@@ -8,6 +8,7 @@ var test = require('@playwright/test');
|
|
|
8
8
|
* System Console -> Environment -> Mobile Security
|
|
9
9
|
*/
|
|
10
10
|
class MobileSecurity {
|
|
11
|
+
page;
|
|
11
12
|
container;
|
|
12
13
|
enableBiometricAuthenticationToggleTrue;
|
|
13
14
|
enableBiometricAuthenticationToggleFalse;
|
|
@@ -15,17 +16,53 @@ class MobileSecurity {
|
|
|
15
16
|
preventScreenCaptureToggleFalse;
|
|
16
17
|
jailbreakProtectionToggleTrue;
|
|
17
18
|
jailbreakProtectionToggleFalse;
|
|
19
|
+
enableSecureFilePreviewToggleTrue;
|
|
20
|
+
enableSecureFilePreviewToggleFalse;
|
|
21
|
+
allowPdfLinkNavigationToggleTrue;
|
|
22
|
+
allowPdfLinkNavigationToggleFalse;
|
|
23
|
+
enableIntuneMAMToggleTrue;
|
|
24
|
+
enableIntuneMAMToggleFalse;
|
|
25
|
+
// New IntuneSettings fields
|
|
26
|
+
enableIntuneToggleTrue;
|
|
27
|
+
enableIntuneToggleFalse;
|
|
28
|
+
intuneAuthServiceDropdown;
|
|
29
|
+
intuneTenantIdInput;
|
|
30
|
+
intuneClientIdInput;
|
|
31
|
+
intuneTenantIdRequiredError;
|
|
18
32
|
saveButton;
|
|
19
|
-
constructor(container) {
|
|
33
|
+
constructor(container, page) {
|
|
20
34
|
this.container = container;
|
|
35
|
+
this.page = page;
|
|
21
36
|
this.enableBiometricAuthenticationToggleTrue = this.container.getByTestId('NativeAppSettings.MobileEnableBiometricstrue');
|
|
22
37
|
this.enableBiometricAuthenticationToggleFalse = this.container.getByTestId('NativeAppSettings.MobileEnableBiometricsfalse');
|
|
23
38
|
this.preventScreenCaptureToggleTrue = this.container.getByTestId('NativeAppSettings.MobilePreventScreenCapturetrue');
|
|
24
39
|
this.preventScreenCaptureToggleFalse = this.container.getByTestId('NativeAppSettings.MobilePreventScreenCapturefalse');
|
|
25
40
|
this.jailbreakProtectionToggleTrue = this.container.getByTestId('NativeAppSettings.MobileJailbreakProtectiontrue');
|
|
26
41
|
this.jailbreakProtectionToggleFalse = this.container.getByTestId('NativeAppSettings.MobileJailbreakProtectionfalse');
|
|
42
|
+
this.jailbreakProtectionToggleTrue = this.container.getByTestId('NativeAppSettings.MobileJailbreakProtectiontrue');
|
|
43
|
+
this.jailbreakProtectionToggleFalse = this.container.getByTestId('NativeAppSettings.MobileJailbreakProtectionfalse');
|
|
44
|
+
this.enableSecureFilePreviewToggleTrue = this.container.getByTestId('NativeAppSettings.MobileEnableSecureFilePreviewtrue');
|
|
45
|
+
this.enableSecureFilePreviewToggleFalse = this.container.getByTestId('NativeAppSettings.MobileEnableSecureFilePreviewfalse');
|
|
46
|
+
this.allowPdfLinkNavigationToggleTrue = this.container.getByTestId('NativeAppSettings.MobileAllowPdfLinkNavigationtrue');
|
|
47
|
+
this.allowPdfLinkNavigationToggleFalse = this.container.getByTestId('NativeAppSettings.MobileAllowPdfLinkNavigationfalse');
|
|
48
|
+
// Legacy Intune toggle (will be removed in Phase 6)
|
|
49
|
+
this.enableIntuneMAMToggleTrue = this.container.getByTestId('IntuneSettings.Enabletrue');
|
|
50
|
+
this.enableIntuneMAMToggleFalse = this.container.getByTestId('IntuneSettings.Enablefalse');
|
|
51
|
+
// New IntuneSettings fields
|
|
52
|
+
this.enableIntuneToggleTrue = this.container.getByTestId('IntuneSettings.Enabletrue');
|
|
53
|
+
this.enableIntuneToggleFalse = this.container.getByTestId('IntuneSettings.Enablefalse');
|
|
54
|
+
this.intuneAuthServiceDropdown = this.container.getByTestId('IntuneSettings.AuthServicedropdown');
|
|
55
|
+
this.intuneTenantIdInput = this.container.getByTestId('IntuneSettings.TenantIdinput');
|
|
56
|
+
this.intuneClientIdInput = this.container.getByTestId('IntuneSettings.ClientIdinput');
|
|
57
|
+
this.intuneTenantIdRequiredError = this.container.getByTestId('errorMessage');
|
|
27
58
|
this.saveButton = this.container.getByRole('button', { name: 'Save' });
|
|
28
59
|
}
|
|
60
|
+
async discardChanges() {
|
|
61
|
+
this.page.getByRole('button', { name: 'Yes, Discard' }).click();
|
|
62
|
+
}
|
|
63
|
+
async intuneTenantIdRequiredErrorToBeVisible() {
|
|
64
|
+
await test.expect(this.intuneTenantIdRequiredError).toBeVisible();
|
|
65
|
+
}
|
|
29
66
|
async toBeVisible() {
|
|
30
67
|
await test.expect(this.container).toBeVisible();
|
|
31
68
|
}
|
|
@@ -47,6 +84,43 @@ class MobileSecurity {
|
|
|
47
84
|
async clickJailbreakProtectionToggleFalse() {
|
|
48
85
|
await this.jailbreakProtectionToggleFalse.click();
|
|
49
86
|
}
|
|
87
|
+
async clickEnableSecureFilePreviewToggleTrue() {
|
|
88
|
+
await this.enableSecureFilePreviewToggleTrue.click();
|
|
89
|
+
}
|
|
90
|
+
async clickEnableSecureFilePreviewToggleFalse() {
|
|
91
|
+
await this.enableSecureFilePreviewToggleFalse.click();
|
|
92
|
+
}
|
|
93
|
+
async clickAllowPdfLinkNavigationToggleTrue() {
|
|
94
|
+
await this.allowPdfLinkNavigationToggleTrue.click();
|
|
95
|
+
}
|
|
96
|
+
async clickAllowPdfLinkNavigationToggleFalse() {
|
|
97
|
+
await this.allowPdfLinkNavigationToggleFalse.click();
|
|
98
|
+
}
|
|
99
|
+
async clickEnableIntuneMAMToggleTrue() {
|
|
100
|
+
await this.enableIntuneMAMToggleTrue.click();
|
|
101
|
+
}
|
|
102
|
+
async selectAuthProvider(value) {
|
|
103
|
+
await this.intuneAuthServiceDropdown.selectOption(value);
|
|
104
|
+
}
|
|
105
|
+
async clickEnableIntuneMAMToggleFalse() {
|
|
106
|
+
await this.enableIntuneMAMToggleFalse.click();
|
|
107
|
+
}
|
|
108
|
+
// New IntuneSettings methods
|
|
109
|
+
async clickEnableIntuneToggleTrue() {
|
|
110
|
+
await this.enableIntuneToggleTrue.click();
|
|
111
|
+
}
|
|
112
|
+
async clickEnableIntuneToggleFalse() {
|
|
113
|
+
await this.enableIntuneToggleFalse.click();
|
|
114
|
+
}
|
|
115
|
+
async selectIntuneAuthService(value) {
|
|
116
|
+
await this.intuneAuthServiceDropdown.selectOption(value);
|
|
117
|
+
}
|
|
118
|
+
async fillIntuneTenantId(value) {
|
|
119
|
+
await this.intuneTenantIdInput.fill(value);
|
|
120
|
+
}
|
|
121
|
+
async fillIntuneClientId(value) {
|
|
122
|
+
await this.intuneClientIdInput.fill(value);
|
|
123
|
+
}
|
|
50
124
|
async clickSaveButton() {
|
|
51
125
|
await this.saveButton.click();
|
|
52
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobile_security.js","sources":["../../../../../../src/ui/components/system_console/sections/system_users/mobile_security.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {expect, Locator} from '@playwright/test';\n\n/**\n * System Console -> Environment -> Mobile Security\n */\nexport default class MobileSecurity {\n readonly container: Locator;\n\n readonly enableBiometricAuthenticationToggleTrue: Locator;\n readonly enableBiometricAuthenticationToggleFalse: Locator;\n readonly preventScreenCaptureToggleTrue: Locator;\n readonly preventScreenCaptureToggleFalse: Locator;\n readonly jailbreakProtectionToggleTrue: Locator;\n readonly jailbreakProtectionToggleFalse: Locator;\n\n readonly saveButton: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n\n this.enableBiometricAuthenticationToggleTrue = this.container.getByTestId(\n 'NativeAppSettings.MobileEnableBiometricstrue',\n );\n this.enableBiometricAuthenticationToggleFalse = this.container.getByTestId(\n 'NativeAppSettings.MobileEnableBiometricsfalse',\n );\n\n this.preventScreenCaptureToggleTrue = this.container.getByTestId(\n 'NativeAppSettings.MobilePreventScreenCapturetrue',\n );\n this.preventScreenCaptureToggleFalse = this.container.getByTestId(\n 'NativeAppSettings.MobilePreventScreenCapturefalse',\n );\n\n this.jailbreakProtectionToggleTrue = this.container.getByTestId(\n 'NativeAppSettings.MobileJailbreakProtectiontrue',\n );\n this.jailbreakProtectionToggleFalse = this.container.getByTestId(\n 'NativeAppSettings.MobileJailbreakProtectionfalse',\n );\n\n this.saveButton = this.container.getByRole('button', {name: 'Save'});\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n }\n\n async clickEnableBiometricAuthenticationToggleTrue() {\n await this.enableBiometricAuthenticationToggleTrue.click();\n }\n\n async clickEnableBiometricAuthenticationToggleFalse() {\n await this.enableBiometricAuthenticationToggleFalse.click();\n }\n\n async clickPreventScreenCaptureToggleTrue() {\n await this.preventScreenCaptureToggleTrue.click();\n }\n\n async clickPreventScreenCaptureToggleFalse() {\n await this.preventScreenCaptureToggleFalse.click();\n }\n\n async clickJailbreakProtectionToggleTrue() {\n await this.jailbreakProtectionToggleTrue.click();\n }\n\n async clickJailbreakProtectionToggleFalse() {\n await this.jailbreakProtectionToggleFalse.click();\n }\n\n async clickSaveButton() {\n await this.saveButton.click();\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIA;;AAEG;AACW,MAAO,cAAc,CAAA;AACtB,IAAA,SAAS;AAET,IAAA,uCAAuC;AACvC,IAAA,wCAAwC;AACxC,IAAA,8BAA8B;AAC9B,IAAA,+BAA+B;AAC/B,IAAA,6BAA6B;AAC7B,IAAA,8BAA8B;AAE9B,IAAA,UAAU;AAEnB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAE1B,IAAI,CAAC,uCAAuC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CACrE,8CAA8C,CACjD;QACD,IAAI,CAAC,wCAAwC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CACtE,+CAA+C,CAClD;QAED,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAC5D,kDAAkD,CACrD;QACD,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAC7D,mDAAmD,CACtD;QAED,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAC3D,iDAAiD,CACpD;QACD,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAC5D,kDAAkD,CACrD;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;;AAGxE,IAAA,MAAM,WAAW,GAAA;QACb,MAAMA,WAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;;AAG9C,IAAA,MAAM,4CAA4C,GAAA;AAC9C,QAAA,MAAM,IAAI,CAAC,uCAAuC,CAAC,KAAK,EAAE;;AAG9D,IAAA,MAAM,6CAA6C,GAAA;AAC/C,QAAA,MAAM,IAAI,CAAC,wCAAwC,CAAC,KAAK,EAAE;;AAG/D,IAAA,MAAM,mCAAmC,GAAA;AACrC,QAAA,MAAM,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE;;AAGrD,IAAA,MAAM,oCAAoC,GAAA;AACtC,QAAA,MAAM,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE;;AAGtD,IAAA,MAAM,kCAAkC,GAAA;AACpC,QAAA,MAAM,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE;;AAGpD,IAAA,MAAM,mCAAmC,GAAA;AACrC,QAAA,MAAM,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE;;AAGrD,IAAA,MAAM,eAAe,GAAA;AACjB,QAAA,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;;AAEpC;;;;"}
|
|
1
|
+
{"version":3,"file":"mobile_security.js","sources":["../../../../../../src/ui/components/system_console/sections/system_users/mobile_security.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {expect, Locator, Page} from '@playwright/test';\n\n/**\n * System Console -> Environment -> Mobile Security\n */\nexport default class MobileSecurity {\n readonly page: Page;\n readonly container: Locator;\n\n readonly enableBiometricAuthenticationToggleTrue: Locator;\n readonly enableBiometricAuthenticationToggleFalse: Locator;\n readonly preventScreenCaptureToggleTrue: Locator;\n readonly preventScreenCaptureToggleFalse: Locator;\n readonly jailbreakProtectionToggleTrue: Locator;\n readonly jailbreakProtectionToggleFalse: Locator;\n readonly enableSecureFilePreviewToggleTrue: Locator;\n readonly enableSecureFilePreviewToggleFalse: Locator;\n readonly allowPdfLinkNavigationToggleTrue: Locator;\n readonly allowPdfLinkNavigationToggleFalse: Locator;\n readonly enableIntuneMAMToggleTrue: Locator;\n readonly enableIntuneMAMToggleFalse: Locator;\n\n // New IntuneSettings fields\n readonly enableIntuneToggleTrue: Locator;\n readonly enableIntuneToggleFalse: Locator;\n readonly intuneAuthServiceDropdown: Locator;\n readonly intuneTenantIdInput: Locator;\n readonly intuneClientIdInput: Locator;\n readonly intuneTenantIdRequiredError: Locator;\n\n readonly saveButton: Locator;\n\n constructor(container: Locator, page: Page) {\n this.container = container;\n this.page = page;\n\n this.enableBiometricAuthenticationToggleTrue = this.container.getByTestId(\n 'NativeAppSettings.MobileEnableBiometricstrue',\n );\n this.enableBiometricAuthenticationToggleFalse = this.container.getByTestId(\n 'NativeAppSettings.MobileEnableBiometricsfalse',\n );\n\n this.preventScreenCaptureToggleTrue = this.container.getByTestId(\n 'NativeAppSettings.MobilePreventScreenCapturetrue',\n );\n this.preventScreenCaptureToggleFalse = this.container.getByTestId(\n 'NativeAppSettings.MobilePreventScreenCapturefalse',\n );\n\n this.jailbreakProtectionToggleTrue = this.container.getByTestId(\n 'NativeAppSettings.MobileJailbreakProtectiontrue',\n );\n this.jailbreakProtectionToggleFalse = this.container.getByTestId(\n 'NativeAppSettings.MobileJailbreakProtectionfalse',\n );\n\n this.jailbreakProtectionToggleTrue = this.container.getByTestId(\n 'NativeAppSettings.MobileJailbreakProtectiontrue',\n );\n this.jailbreakProtectionToggleFalse = this.container.getByTestId(\n 'NativeAppSettings.MobileJailbreakProtectionfalse',\n );\n\n this.enableSecureFilePreviewToggleTrue = this.container.getByTestId(\n 'NativeAppSettings.MobileEnableSecureFilePreviewtrue',\n );\n this.enableSecureFilePreviewToggleFalse = this.container.getByTestId(\n 'NativeAppSettings.MobileEnableSecureFilePreviewfalse',\n );\n\n this.allowPdfLinkNavigationToggleTrue = this.container.getByTestId(\n 'NativeAppSettings.MobileAllowPdfLinkNavigationtrue',\n );\n this.allowPdfLinkNavigationToggleFalse = this.container.getByTestId(\n 'NativeAppSettings.MobileAllowPdfLinkNavigationfalse',\n );\n\n // Legacy Intune toggle (will be removed in Phase 6)\n this.enableIntuneMAMToggleTrue = this.container.getByTestId('IntuneSettings.Enabletrue');\n this.enableIntuneMAMToggleFalse = this.container.getByTestId('IntuneSettings.Enablefalse');\n\n // New IntuneSettings fields\n this.enableIntuneToggleTrue = this.container.getByTestId('IntuneSettings.Enabletrue');\n this.enableIntuneToggleFalse = this.container.getByTestId('IntuneSettings.Enablefalse');\n this.intuneAuthServiceDropdown = this.container.getByTestId('IntuneSettings.AuthServicedropdown');\n this.intuneTenantIdInput = this.container.getByTestId('IntuneSettings.TenantIdinput');\n this.intuneClientIdInput = this.container.getByTestId('IntuneSettings.ClientIdinput');\n this.intuneTenantIdRequiredError = this.container.getByTestId('errorMessage');\n\n this.saveButton = this.container.getByRole('button', {name: 'Save'});\n }\n\n async discardChanges() {\n this.page.getByRole('button', {name: 'Yes, Discard'}).click();\n }\n\n async intuneTenantIdRequiredErrorToBeVisible() {\n await expect(this.intuneTenantIdRequiredError).toBeVisible();\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n }\n\n async clickEnableBiometricAuthenticationToggleTrue() {\n await this.enableBiometricAuthenticationToggleTrue.click();\n }\n\n async clickEnableBiometricAuthenticationToggleFalse() {\n await this.enableBiometricAuthenticationToggleFalse.click();\n }\n\n async clickPreventScreenCaptureToggleTrue() {\n await this.preventScreenCaptureToggleTrue.click();\n }\n\n async clickPreventScreenCaptureToggleFalse() {\n await this.preventScreenCaptureToggleFalse.click();\n }\n\n async clickJailbreakProtectionToggleTrue() {\n await this.jailbreakProtectionToggleTrue.click();\n }\n\n async clickJailbreakProtectionToggleFalse() {\n await this.jailbreakProtectionToggleFalse.click();\n }\n\n async clickEnableSecureFilePreviewToggleTrue() {\n await this.enableSecureFilePreviewToggleTrue.click();\n }\n\n async clickEnableSecureFilePreviewToggleFalse() {\n await this.enableSecureFilePreviewToggleFalse.click();\n }\n\n async clickAllowPdfLinkNavigationToggleTrue() {\n await this.allowPdfLinkNavigationToggleTrue.click();\n }\n\n async clickAllowPdfLinkNavigationToggleFalse() {\n await this.allowPdfLinkNavigationToggleFalse.click();\n }\n\n async clickEnableIntuneMAMToggleTrue() {\n await this.enableIntuneMAMToggleTrue.click();\n }\n\n async selectAuthProvider(value: 'office365' | 'saml') {\n await this.intuneAuthServiceDropdown.selectOption(value);\n }\n\n async clickEnableIntuneMAMToggleFalse() {\n await this.enableIntuneMAMToggleFalse.click();\n }\n\n // New IntuneSettings methods\n async clickEnableIntuneToggleTrue() {\n await this.enableIntuneToggleTrue.click();\n }\n\n async clickEnableIntuneToggleFalse() {\n await this.enableIntuneToggleFalse.click();\n }\n\n async selectIntuneAuthService(value: 'office365' | 'saml') {\n await this.intuneAuthServiceDropdown.selectOption(value);\n }\n\n async fillIntuneTenantId(value: string) {\n await this.intuneTenantIdInput.fill(value);\n }\n\n async fillIntuneClientId(value: string) {\n await this.intuneClientIdInput.fill(value);\n }\n\n async clickSaveButton() {\n await this.saveButton.click();\n }\n}\n"],"names":["expect"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system_users.js","sources":["../../../../../../src/ui/components/system_console/sections/system_users/system_users.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, expect} from '@playwright/test';\n\n/**\n * System Console -> User Management -> Users\n */\nexport default class SystemUsers {\n readonly container: Locator;\n\n readonly searchInput: Locator;\n readonly saveRoleChange: Locator;\n readonly columnToggleMenuButton: Locator;\n readonly dateRangeSelectorMenuButton: Locator;\n readonly exportButton: Locator;\n readonly filterPopoverButton: Locator;\n readonly actionMenuButtons: Locator[];\n\n readonly loadingSpinner: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n\n this.searchInput = this.container.getByLabel('Search users');\n this.saveRoleChange = this.container.locator('button.btn-primary:has-text(\"Save\")');\n this.columnToggleMenuButton = this.container.locator('#systemUsersColumnTogglerMenuButton');\n this.dateRangeSelectorMenuButton = this.container.locator('#systemUsersDateRangeSelectorMenuButton');\n this.exportButton = this.container.getByText('Export');\n this.filterPopoverButton = this.container.getByText(/Filters \\(\\d+\\)/);\n this.actionMenuButtons = Array.from(Array(10).keys()).map((index) =>\n this.container.locator(`#actionMenuButton-systemUsersTable-${index}`),\n );\n\n this.loadingSpinner = this.container.getByText('Loading');\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n }\n\n async isLoadingComplete() {\n await expect(this.loadingSpinner).toHaveCount(0);\n }\n\n /**\n * Returns the locator for the header of the given column.\n */\n async getColumnHeader(columnName: string) {\n const columnHeader = this.container.getByRole('columnheader').filter({hasText: columnName});\n return columnHeader;\n }\n\n /**\n * Checks if given column exists in the table. By searching for the column header.\n */\n async doesColumnExist(columnName: string) {\n const columnHeader = await this.getColumnHeader(columnName);\n return await columnHeader.isVisible();\n }\n\n /**\n * Clicks on the column header of the given column for sorting.\n */\n async clickSortOnColumn(columnName: string) {\n const columnHeader = await this.getColumnHeader(columnName);\n await columnHeader.waitFor();\n await columnHeader.click();\n }\n\n /**\n * Return the locator for the given row number. If '0' is passed, it will return the header row.\n */\n async getNthRow(rowNumber: number) {\n const row = this.container.getByRole('row').nth(rowNumber);\n await row.waitFor();\n\n return row;\n }\n\n /**\n * Opens the Filter popover\n */\n async openFilterPopover() {\n expect(this.filterPopoverButton).toBeVisible();\n await this.filterPopoverButton.click();\n }\n\n /**\n * Open the column toggle menu\n */\n async openColumnToggleMenu() {\n expect(this.columnToggleMenuButton).toBeVisible();\n await this.columnToggleMenuButton.click();\n }\n\n /**\n * Open the date range selector menu\n */\n async openDateRangeSelectorMenu() {\n expect(this.dateRangeSelectorMenuButton).toBeVisible();\n await this.dateRangeSelectorMenuButton.click();\n }\n\n /**\n * Enter the given search term in the search input\n */\n async enterSearchText(searchText: string) {\n expect(this.searchInput).toBeVisible();\n await this.searchInput.fill(`${searchText}`);\n\n await this.isLoadingComplete();\n }\n\n /**\n * Searches and verifies that the row with given text is found\n */\n async verifyRowWithTextIsFound(text: string) {\n const foundUser = this.container.getByText(text);\n await foundUser.waitFor();\n\n await expect(foundUser).toBeVisible();\n }\n\n /**\n * Searches and verifies that the row with given text is not found\n */\n async verifyRowWithTextIsNotFound(text: string) {\n const foundUser = this.container.getByText(text);\n await expect(foundUser).not.toBeVisible();\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIA;;AAEG;AACW,MAAO,WAAW,CAAA;AACnB,IAAA,SAAS;AAET,IAAA,WAAW;AACX,IAAA,cAAc;AACd,IAAA,sBAAsB;AACtB,IAAA,2BAA2B;AAC3B,IAAA,YAAY;AACZ,IAAA,mBAAmB;AACnB,IAAA,iBAAiB;AAEjB,IAAA,cAAc;AAEvB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAE1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qCAAqC,CAAC;QACnF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qCAAqC,CAAC;QAC3F,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,yCAAyC,CAAC;QACpG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC;AACtE,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAC5D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"system_users.js","sources":["../../../../../../src/ui/components/system_console/sections/system_users/system_users.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, expect} from '@playwright/test';\n\n/**\n * System Console -> User Management -> Users\n */\nexport default class SystemUsers {\n readonly container: Locator;\n\n readonly searchInput: Locator;\n readonly saveRoleChange: Locator;\n readonly columnToggleMenuButton: Locator;\n readonly dateRangeSelectorMenuButton: Locator;\n readonly exportButton: Locator;\n readonly filterPopoverButton: Locator;\n readonly actionMenuButtons: Locator[];\n\n readonly loadingSpinner: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n\n this.searchInput = this.container.getByLabel('Search users');\n this.saveRoleChange = this.container.locator('button.btn-primary:has-text(\"Save\")');\n this.columnToggleMenuButton = this.container.locator('#systemUsersColumnTogglerMenuButton');\n this.dateRangeSelectorMenuButton = this.container.locator('#systemUsersDateRangeSelectorMenuButton');\n this.exportButton = this.container.getByText('Export');\n this.filterPopoverButton = this.container.getByText(/Filters \\(\\d+\\)/);\n this.actionMenuButtons = Array.from(Array(10).keys()).map((index) =>\n this.container.locator(`#actionMenuButton-systemUsersTable-${index}`),\n );\n\n this.loadingSpinner = this.container.getByText('Loading');\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n }\n\n async isLoadingComplete() {\n await expect(this.loadingSpinner).toHaveCount(0);\n }\n\n /**\n * Returns the locator for the header of the given column.\n */\n async getColumnHeader(columnName: string) {\n const columnHeader = this.container.getByRole('columnheader').filter({hasText: columnName});\n return columnHeader;\n }\n\n /**\n * Checks if given column exists in the table. By searching for the column header.\n */\n async doesColumnExist(columnName: string) {\n const columnHeader = await this.getColumnHeader(columnName);\n return await columnHeader.isVisible();\n }\n\n /**\n * Clicks on the column header of the given column for sorting.\n */\n async clickSortOnColumn(columnName: string) {\n const columnHeader = await this.getColumnHeader(columnName);\n await columnHeader.waitFor();\n await columnHeader.click();\n }\n\n /**\n * Return the locator for the given row number. If '0' is passed, it will return the header row.\n */\n async getNthRow(rowNumber: number) {\n const row = this.container.getByRole('row').nth(rowNumber);\n await row.waitFor();\n\n return row;\n }\n\n /**\n * Opens the Filter popover\n */\n async openFilterPopover() {\n expect(this.filterPopoverButton).toBeVisible();\n await this.filterPopoverButton.click();\n }\n\n /**\n * Open the column toggle menu\n */\n async openColumnToggleMenu() {\n expect(this.columnToggleMenuButton).toBeVisible();\n await this.columnToggleMenuButton.click();\n }\n\n /**\n * Open the date range selector menu\n */\n async openDateRangeSelectorMenu() {\n expect(this.dateRangeSelectorMenuButton).toBeVisible();\n await this.dateRangeSelectorMenuButton.click();\n }\n\n /**\n * Enter the given search term in the search input\n */\n async enterSearchText(searchText: string) {\n expect(this.searchInput).toBeVisible();\n await this.searchInput.fill(`${searchText}`);\n\n await this.isLoadingComplete();\n }\n\n /**\n * Searches and verifies that the row with given text is found\n */\n async verifyRowWithTextIsFound(text: string) {\n const foundUser = this.container.getByText(text);\n await foundUser.waitFor();\n\n await expect(foundUser).toBeVisible();\n }\n\n /**\n * Searches and verifies that the row with given text is not found\n */\n async verifyRowWithTextIsNotFound(text: string) {\n const foundUser = this.container.getByText(text);\n await expect(foundUser).not.toBeVisible();\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIA;;AAEG;AACW,MAAO,WAAW,CAAA;AACnB,IAAA,SAAS;AAET,IAAA,WAAW;AACX,IAAA,cAAc;AACd,IAAA,sBAAsB;AACtB,IAAA,2BAA2B;AAC3B,IAAA,YAAY;AACZ,IAAA,mBAAmB;AACnB,IAAA,iBAAiB;AAEjB,IAAA,cAAc;AAEvB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAE1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qCAAqC,CAAC;QACnF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qCAAqC,CAAC;QAC3F,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,yCAAyC,CAAC;QACpG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC;AACtE,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAC5D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,mCAAA,EAAsC,KAAK,CAAA,CAAE,CAAC,CACxE;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;IAC7D;AAEA,IAAA,MAAM,WAAW,GAAA;QACb,MAAMA,WAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;IAC9C;AAEA,IAAA,MAAM,iBAAiB,GAAA;QACnB,MAAMA,WAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IACpD;AAEA;;AAEG;IACH,MAAM,eAAe,CAAC,UAAkB,EAAA;AACpC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,UAAU,EAAC,CAAC;AAC3F,QAAA,OAAO,YAAY;IACvB;AAEA;;AAEG;IACH,MAAM,eAAe,CAAC,UAAkB,EAAA;QACpC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;AAC3D,QAAA,OAAO,MAAM,YAAY,CAAC,SAAS,EAAE;IACzC;AAEA;;AAEG;IACH,MAAM,iBAAiB,CAAC,UAAkB,EAAA;QACtC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;AAC3D,QAAA,MAAM,YAAY,CAAC,OAAO,EAAE;AAC5B,QAAA,MAAM,YAAY,CAAC,KAAK,EAAE;IAC9B;AAEA;;AAEG;IACH,MAAM,SAAS,CAAC,SAAiB,EAAA;AAC7B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1D,QAAA,MAAM,GAAG,CAAC,OAAO,EAAE;AAEnB,QAAA,OAAO,GAAG;IACd;AAEA;;AAEG;AACH,IAAA,MAAM,iBAAiB,GAAA;QACnBA,WAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE;AAC9C,QAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;IAC1C;AAEA;;AAEG;AACH,IAAA,MAAM,oBAAoB,GAAA;QACtBA,WAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE;AACjD,QAAA,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;IAC7C;AAEA;;AAEG;AACH,IAAA,MAAM,yBAAyB,GAAA;QAC3BA,WAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,WAAW,EAAE;AACtD,QAAA,MAAM,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE;IAClD;AAEA;;AAEG;IACH,MAAM,eAAe,CAAC,UAAkB,EAAA;QACpCA,WAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;QACtC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA,EAAG,UAAU,CAAA,CAAE,CAAC;AAE5C,QAAA,MAAM,IAAI,CAAC,iBAAiB,EAAE;IAClC;AAEA;;AAEG;IACH,MAAM,wBAAwB,CAAC,IAAY,EAAA;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;AAChD,QAAA,MAAM,SAAS,CAAC,OAAO,EAAE;AAEzB,QAAA,MAAMA,WAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;IACzC;AAEA;;AAEG;IACH,MAAM,2BAA2B,CAAC,IAAY,EAAA;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;QAChD,MAAMA,WAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE;IAC7C;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.js","sources":["../../../../src/ui/components/system_console/sidebar.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, expect} from '@playwright/test';\n\nexport default class SystemConsoleSidebar {\n readonly container: Locator;\n\n readonly searchInput: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n\n this.searchInput = container.getByPlaceholder('Find settings');\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n await expect(this.searchInput).toBeVisible();\n }\n\n /**\n * Clicks on the sidebar section link with the given name. Pass the exact name of the section.\n * @param sectionName\n */\n async goToItem(sectionName: string) {\n const section = this.container.getByText(sectionName, {exact: true});\n await section.waitFor();\n await section.click();\n }\n\n /**\n * Searches for the given item in the sidebar search input.\n * @param itemName\n */\n async searchForItem(itemName: string) {\n await this.searchInput.fill(itemName);\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIc,MAAO,oBAAoB,CAAA;AAC5B,IAAA,SAAS;AAET,IAAA,WAAW;AAEpB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAE1B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC
|
|
1
|
+
{"version":3,"file":"sidebar.js","sources":["../../../../src/ui/components/system_console/sidebar.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, expect} from '@playwright/test';\n\nexport default class SystemConsoleSidebar {\n readonly container: Locator;\n\n readonly searchInput: Locator;\n\n constructor(container: Locator) {\n this.container = container;\n\n this.searchInput = container.getByPlaceholder('Find settings');\n }\n\n async toBeVisible() {\n await expect(this.container).toBeVisible();\n await expect(this.searchInput).toBeVisible();\n }\n\n /**\n * Clicks on the sidebar section link with the given name. Pass the exact name of the section.\n * @param sectionName\n */\n async goToItem(sectionName: string) {\n const section = this.container.getByText(sectionName, {exact: true});\n await section.waitFor();\n await section.click();\n }\n\n /**\n * Searches for the given item in the sidebar search input.\n * @param itemName\n */\n async searchForItem(itemName: string) {\n await this.searchInput.fill(itemName);\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIc,MAAO,oBAAoB,CAAA;AAC5B,IAAA,SAAS;AAET,IAAA,WAAW;AAEpB,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAE1B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC;IAClE;AAEA,IAAA,MAAM,WAAW,GAAA;QACb,MAAMA,WAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;QAC1C,MAAMA,WAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;IAChD;AAEA;;;AAGG;IACH,MAAM,QAAQ,CAAC,WAAmB,EAAA;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;AACpE,QAAA,MAAM,OAAO,CAAC,OAAO,EAAE;AACvB,QAAA,MAAM,OAAO,CAAC,KAAK,EAAE;IACzB;AAEA;;;AAGG;IACH,MAAM,aAAa,CAAC,QAAgB,EAAA;QAChC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzC;AACH;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Locator } from '@playwright/test';
|
|
2
|
+
export default class UserAccountMenu {
|
|
3
|
+
readonly container: Locator;
|
|
4
|
+
readonly setCustomStatus: Locator;
|
|
5
|
+
readonly online: Locator;
|
|
6
|
+
readonly away: Locator;
|
|
7
|
+
readonly dnd: Locator;
|
|
8
|
+
readonly offline: Locator;
|
|
9
|
+
readonly profile: Locator;
|
|
10
|
+
readonly logout: Locator;
|
|
11
|
+
constructor(container: Locator);
|
|
12
|
+
toBeVisible(name: string): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var test = require('@playwright/test');
|
|
4
|
+
|
|
5
|
+
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
6
|
+
// See LICENSE.txt for license information.
|
|
7
|
+
class UserAccountMenu {
|
|
8
|
+
container;
|
|
9
|
+
setCustomStatus;
|
|
10
|
+
online;
|
|
11
|
+
away;
|
|
12
|
+
dnd;
|
|
13
|
+
offline;
|
|
14
|
+
profile;
|
|
15
|
+
logout;
|
|
16
|
+
constructor(container) {
|
|
17
|
+
this.container = container;
|
|
18
|
+
this.setCustomStatus = container.getByRole('button', { name: 'Set custom status' });
|
|
19
|
+
this.online = container.getByRole('menuitem', { name: 'Online' });
|
|
20
|
+
this.away = container.getByRole('menuitem', { name: 'Away' });
|
|
21
|
+
this.dnd = container.locator('[id="userAccountMenu\\.dndMenuItem"]');
|
|
22
|
+
this.offline = container.getByRole('menuitem', { name: 'Offline' });
|
|
23
|
+
this.profile = container.getByRole('menuitem', { name: 'Profile' });
|
|
24
|
+
this.logout = container.getByRole('menuitem', { name: 'Log out' });
|
|
25
|
+
}
|
|
26
|
+
async toBeVisible(name) {
|
|
27
|
+
await test.expect(this.container.getByRole('heading', { name })).toBeVisible();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = UserAccountMenu;
|
|
32
|
+
//# sourceMappingURL=user_account_menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user_account_menu.js","sources":["../../../src/ui/components/user_account_menu.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, expect} from '@playwright/test';\n\nexport default class UserAccountMenu {\n readonly container: Locator;\n\n readonly setCustomStatus;\n readonly online;\n readonly away;\n readonly dnd;\n readonly offline;\n readonly profile;\n readonly logout;\n\n constructor(container: Locator) {\n this.container = container;\n\n this.setCustomStatus = container.getByRole('button', {name: 'Set custom status'});\n this.online = container.getByRole('menuitem', {name: 'Online'});\n this.away = container.getByRole('menuitem', {name: 'Away'});\n this.dnd = container.locator('[id=\"userAccountMenu\\\\.dndMenuItem\"]');\n this.offline = container.getByRole('menuitem', {name: 'Offline'});\n this.profile = container.getByRole('menuitem', {name: 'Profile'});\n this.logout = container.getByRole('menuitem', {name: 'Log out'});\n }\n\n async toBeVisible(name: string) {\n await expect(this.container.getByRole('heading', {name})).toBeVisible();\n }\n}\n"],"names":["expect"],"mappings":";;;;AAAA;AACA;AAIc,MAAO,eAAe,CAAA;AACvB,IAAA,SAAS;AAET,IAAA,eAAe;AACf,IAAA,MAAM;AACN,IAAA,IAAI;AACJ,IAAA,GAAG;AACH,IAAA,OAAO;AACP,IAAA,OAAO;AACP,IAAA,MAAM;AAEf,IAAA,WAAA,CAAY,SAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAE1B,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,mBAAmB,EAAC,CAAC;AACjF,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,sCAAsC,CAAC;AACpE,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC;AACjE,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC;AACjE,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC;IACpE;IAEA,MAAM,WAAW,CAAC,IAAY,EAAA;AAC1B,QAAA,MAAMA,WAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,WAAW,EAAE;IAC3E;AACH;;;;"}
|
|
@@ -1,31 +1,66 @@
|
|
|
1
1
|
import { Page } from '@playwright/test';
|
|
2
|
+
import { ChannelsPost, ChannelSettingsModal, SettingsModal, InvitePeopleModal } from '@/ui/components';
|
|
2
3
|
export default class ChannelsPage {
|
|
3
4
|
readonly channels = "Channels";
|
|
4
5
|
readonly page: Page;
|
|
5
6
|
readonly globalHeader: import("@/ui/components").GlobalHeader;
|
|
6
|
-
readonly
|
|
7
|
+
readonly userAccountMenuButton: import("playwright-core").Locator;
|
|
8
|
+
readonly searchBox: import("@/ui/components").SearchBox;
|
|
7
9
|
readonly centerView: import("@/ui/components").ChannelsCenterView;
|
|
8
|
-
readonly scheduledDraftDropdown: import("../components/channels/scheduled_draft_menu").default;
|
|
9
|
-
readonly scheduledDraftModal: import("../components/channels/scheduled_draft_modal").default;
|
|
10
10
|
readonly sidebarLeft: import("@/ui/components").ChannelsSidebarLeft;
|
|
11
11
|
readonly sidebarRight: import("@/ui/components").ChannelsSidebarRight;
|
|
12
12
|
readonly appBar: import("@/ui/components").ChannelsAppBar;
|
|
13
|
-
readonly userProfilePopover: import("
|
|
13
|
+
readonly userProfilePopover: import("@/ui/components").UserProfilePopover;
|
|
14
14
|
readonly messagePriority: import("@/ui/components").MessagePriority;
|
|
15
|
-
readonly
|
|
15
|
+
readonly channelSettingsModal: ChannelSettingsModal;
|
|
16
16
|
readonly deletePostModal: import("@/ui/components").DeletePostModal;
|
|
17
|
-
readonly
|
|
17
|
+
readonly findChannelsModal: import("@/ui/components").FindChannelsModal;
|
|
18
|
+
invitePeopleModal: InvitePeopleModal | undefined;
|
|
19
|
+
readonly profileModal: import("@/ui/components").ProfileModal;
|
|
20
|
+
readonly settingsModal: SettingsModal;
|
|
21
|
+
readonly teamSettingsModal: import("@/ui/components").TeamSettingsModal;
|
|
22
|
+
readonly scheduledDraftModal: import("@/ui/components").ScheduledDraftModal;
|
|
23
|
+
readonly scheduleMessageModal: import("@/ui/components").ScheduleMessageModal;
|
|
18
24
|
readonly postContainer: import("playwright-core").Locator;
|
|
19
25
|
readonly postDotMenu: import("@/ui/components").PostDotMenu;
|
|
20
|
-
readonly postReminderMenu: import("
|
|
21
|
-
readonly
|
|
26
|
+
readonly postReminderMenu: import("@/ui/components").PostReminderMenu;
|
|
27
|
+
readonly userAccountMenu: import("@/ui/components").UserAccountMenu;
|
|
28
|
+
readonly teamMenu: import("@/ui/components").TeamMenu;
|
|
29
|
+
readonly emojiGifPickerPopup: import("@/ui/components").EmojiGifPicker;
|
|
30
|
+
readonly scheduleMessageMenu: import("@/ui/components").ScheduleMessageMenu;
|
|
22
31
|
constructor(page: Page);
|
|
23
32
|
toBeVisible(): Promise<void>;
|
|
24
|
-
|
|
25
|
-
|
|
33
|
+
/**
|
|
34
|
+
* `toNotContainText` verifies if the page does not contain the specified text.
|
|
35
|
+
* @param text Text to be verified not in the page
|
|
36
|
+
*/
|
|
37
|
+
toNotContainText(text: string): Promise<void>;
|
|
38
|
+
getLastPost(): Promise<ChannelsPost>;
|
|
39
|
+
getInvitePeopleModal(teamDisplayName: string): Promise<InvitePeopleModal>;
|
|
40
|
+
goto(teamName?: string, channelName?: string): Promise<string>;
|
|
26
41
|
/**
|
|
27
42
|
* `postMessage` posts a message in the current channel
|
|
28
43
|
* @param message Message to post
|
|
44
|
+
* @param files Files to attach to the message
|
|
29
45
|
*/
|
|
30
|
-
postMessage(message: string): Promise<void>;
|
|
46
|
+
postMessage(message: string, files?: string[]): Promise<void>;
|
|
47
|
+
replyToLastPost(message: string): Promise<{
|
|
48
|
+
rootPost: ChannelsPost;
|
|
49
|
+
sidebarRight: import("@/ui/components").ChannelsSidebarRight;
|
|
50
|
+
lastPost: ChannelsPost;
|
|
51
|
+
}>;
|
|
52
|
+
openChannelSettings(): Promise<ChannelSettingsModal>;
|
|
53
|
+
openSettings(): Promise<SettingsModal>;
|
|
54
|
+
newChannel(name: string, channelType: string): Promise<void>;
|
|
55
|
+
openUserAccountMenu(): Promise<import("@/ui/components").UserAccountMenu>;
|
|
56
|
+
openProfileModal(): Promise<import("@/ui/components").ProfileModal>;
|
|
57
|
+
openProfilePopover(post: ChannelsPost): Promise<import("@/ui/components").UserProfilePopover>;
|
|
58
|
+
scheduleMessage(message: string, dayFromToday?: number, timeOptionIndex?: number): Promise<{
|
|
59
|
+
selectedDate: string;
|
|
60
|
+
selectedTime: string | null;
|
|
61
|
+
}>;
|
|
62
|
+
scheduleMessageFromThread(message: string, dayFromToday?: number, timeOptionIndex?: number): Promise<{
|
|
63
|
+
selectedDate: string;
|
|
64
|
+
selectedTime: string | null;
|
|
65
|
+
}>;
|
|
31
66
|
}
|