@mattermost/playwright-lib 10.7.0-0 → 10.7.0-1
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.js +14 -21
- package/dist/constant.js +3 -6
- package/dist/file.js +20 -20
- package/dist/flag.d.ts +2 -0
- package/dist/flag.js +49 -38
- package/dist/flag.js.map +1 -1
- package/dist/global_setup.js +14 -49
- package/dist/global_setup.js.map +1 -1
- package/dist/index.js +9 -42
- package/dist/mock_browser_api.js +2 -8
- package/dist/server/channel.js +3 -9
- package/dist/server/client.js +10 -16
- package/dist/server/default_config.js +9 -15
- package/dist/server/init.js +29 -36
- package/dist/server/plugins.d.ts +1 -1
- package/dist/server/plugins.js +13 -14
- package/dist/server/plugins.js.map +1 -1
- package/dist/server/post.js +3 -9
- package/dist/server/team.js +3 -9
- package/dist/server/user.js +8 -15
- package/dist/test_action.js +3 -14
- package/dist/test_config.js +4 -30
- package/dist/test_fixture.d.ts +2 -1
- package/dist/test_fixture.js +50 -68
- package/dist/test_fixture.js.map +1 -1
- package/dist/ui/components/channels/app_bar.js +3 -9
- package/dist/ui/components/channels/center_view.js +22 -28
- package/dist/ui/components/channels/delete_post_confirmation_dialog.js +8 -14
- package/dist/ui/components/channels/delete_post_modal.js +4 -10
- package/dist/ui/components/channels/emoji_gif_picker.js +9 -15
- package/dist/ui/components/channels/find_channels_modal.js +3 -9
- package/dist/ui/components/channels/generic_confirm_modal.js +5 -11
- package/dist/ui/components/channels/header.js +3 -9
- package/dist/ui/components/channels/message_priority.js +14 -20
- package/dist/ui/components/channels/post.js +10 -16
- package/dist/ui/components/channels/post_create.js +23 -29
- package/dist/ui/components/channels/post_dot_menu.js +3 -9
- package/dist/ui/components/channels/post_edit.js +16 -22
- package/dist/ui/components/channels/post_menu.js +3 -9
- package/dist/ui/components/channels/post_reminder_menu.js +3 -9
- package/dist/ui/components/channels/restore_post_confirmation_dialog.js +6 -12
- package/dist/ui/components/channels/scheduled_draft_menu.js +3 -9
- package/dist/ui/components/channels/scheduled_draft_modal.js +4 -10
- package/dist/ui/components/channels/search_popover.js +3 -9
- package/dist/ui/components/channels/settings/notification_settings.js +8 -14
- package/dist/ui/components/channels/settings/settings_modal.js +7 -13
- package/dist/ui/components/channels/sidebar_left.js +8 -14
- package/dist/ui/components/channels/sidebar_right.js +20 -26
- package/dist/ui/components/channels/thread_footer.js +3 -9
- package/dist/ui/components/channels/user_profile_popover.js +3 -9
- package/dist/ui/components/footer.js +3 -9
- package/dist/ui/components/global_header.js +7 -13
- package/dist/ui/components/index.js +72 -74
- package/dist/ui/components/main_header.js +3 -9
- package/dist/ui/components/system_console/navbar.js +3 -9
- package/dist/ui/components/system_console/sections/system_users/column_toggle_menu.js +4 -10
- package/dist/ui/components/system_console/sections/system_users/feature_discovery.js +4 -10
- package/dist/ui/components/system_console/sections/system_users/filter_menu.js +3 -9
- package/dist/ui/components/system_console/sections/system_users/filter_popover.js +8 -14
- package/dist/ui/components/system_console/sections/system_users/mobile_security.js +3 -9
- package/dist/ui/components/system_console/sections/system_users/system_users.js +10 -16
- package/dist/ui/components/system_console/sidebar.js +4 -10
- package/dist/ui/pages/channels.js +18 -24
- package/dist/ui/pages/drafts.js +17 -23
- package/dist/ui/pages/index.js +17 -30
- package/dist/ui/pages/landing_login.js +5 -11
- package/dist/ui/pages/login.js +8 -14
- package/dist/ui/pages/reset_password.js +9 -15
- package/dist/ui/pages/scheduled_draft.js +19 -25
- package/dist/ui/pages/signup.js +11 -17
- package/dist/ui/pages/system_console.js +16 -22
- package/dist/util.js +8 -19
- package/dist/visual/index.js +14 -20
- package/dist/visual/percy.js +4 -10
- package/package.json +1 -1
|
@@ -1,77 +1,75 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
require('@playwright/test');
|
|
4
|
-
var app_bar = require('./channels/app_bar.js');
|
|
5
|
-
require('node:path');
|
|
6
|
-
require('uuid');
|
|
7
|
-
require('../../file.js');
|
|
8
|
-
require('async-wait-until');
|
|
9
|
-
var center_view = require('./channels/center_view.js');
|
|
10
|
-
var sidebar_left = require('./channels/sidebar_left.js');
|
|
11
|
-
var sidebar_right = require('./channels/sidebar_right.js');
|
|
12
|
-
var delete_post_modal = require('./channels/delete_post_modal.js');
|
|
13
|
-
var find_channels_modal = require('./channels/find_channels_modal.js');
|
|
14
|
-
var settings_modal = require('./channels/settings/settings_modal.js');
|
|
15
|
-
var footer = require('./footer.js');
|
|
16
|
-
var global_header = require('./global_header.js');
|
|
17
|
-
var search_popover = require('./channels/search_popover.js');
|
|
18
|
-
var main_header = require('./main_header.js');
|
|
19
|
-
var post_dot_menu = require('./channels/post_dot_menu.js');
|
|
20
|
-
var post_reminder_menu = require('./channels/post_reminder_menu.js');
|
|
21
|
-
var emoji_gif_picker = require('./channels/emoji_gif_picker.js');
|
|
22
|
-
var generic_confirm_modal = require('./channels/generic_confirm_modal.js');
|
|
23
|
-
var message_priority = require('./channels/message_priority.js');
|
|
24
|
-
var scheduled_draft_menu = require('./channels/scheduled_draft_menu.js');
|
|
25
|
-
var scheduled_draft_modal = require('./channels/scheduled_draft_modal.js');
|
|
26
|
-
var user_profile_popover = require('./channels/user_profile_popover.js');
|
|
27
|
-
var sidebar = require('./system_console/sidebar.js');
|
|
28
|
-
var navbar = require('./system_console/navbar.js');
|
|
29
|
-
var system_users = require('./system_console/sections/system_users/system_users.js');
|
|
30
|
-
var filter_popover = require('./system_console/sections/system_users/filter_popover.js');
|
|
31
|
-
var filter_menu = require('./system_console/sections/system_users/filter_menu.js');
|
|
32
|
-
var column_toggle_menu = require('./system_console/sections/system_users/column_toggle_menu.js');
|
|
33
|
-
var feature_discovery = require('./system_console/sections/system_users/feature_discovery.js');
|
|
34
|
-
var mobile_security = require('./system_console/sections/system_users/mobile_security.js');
|
|
35
|
-
|
|
36
1
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
37
2
|
// See LICENSE.txt for license information.
|
|
3
|
+
import ChannelsHeader from './channels/header';
|
|
4
|
+
import ChannelsAppBar from './channels/app_bar';
|
|
5
|
+
import ChannelsPostCreate from './channels/post_create';
|
|
6
|
+
import ChannelsPost from './channels/post';
|
|
7
|
+
import ChannelsCenterView from './channels/center_view';
|
|
8
|
+
import ChannelsSidebarLeft from './channels/sidebar_left';
|
|
9
|
+
import ChannelsSidebarRight from './channels/sidebar_right';
|
|
10
|
+
import DeletePostModal from './channels/delete_post_modal';
|
|
11
|
+
import FindChannelsModal from './channels/find_channels_modal';
|
|
12
|
+
import SettingsModal from './channels/settings/settings_modal';
|
|
13
|
+
import Footer from './footer';
|
|
14
|
+
import GlobalHeader from './global_header';
|
|
15
|
+
import SearchPopover from './channels/search_popover';
|
|
16
|
+
import MainHeader from './main_header';
|
|
17
|
+
import PostDotMenu from './channels/post_dot_menu';
|
|
18
|
+
import PostReminderMenu from './channels/post_reminder_menu';
|
|
19
|
+
import PostMenu from './channels/post_menu';
|
|
20
|
+
import ThreadFooter from './channels/thread_footer';
|
|
21
|
+
import EmojiGifPicker from './channels/emoji_gif_picker';
|
|
22
|
+
import GenericConfirmModal from './channels/generic_confirm_modal';
|
|
23
|
+
import MessagePriority from './channels/message_priority';
|
|
24
|
+
import ScheduledDraftMenu from './channels/scheduled_draft_menu';
|
|
25
|
+
import ScheduledDraftModal from './channels/scheduled_draft_modal';
|
|
26
|
+
import UserProfilePopover from './channels/user_profile_popover';
|
|
27
|
+
import SystemConsoleSidebar from './system_console/sidebar';
|
|
28
|
+
import SystemConsoleNavbar from './system_console/navbar';
|
|
29
|
+
import SystemUsers from './system_console/sections/system_users/system_users';
|
|
30
|
+
import SystemUsersFilterPopover from './system_console/sections/system_users/filter_popover';
|
|
31
|
+
import SystemUsersFilterMenu from './system_console/sections/system_users/filter_menu';
|
|
32
|
+
import SystemUsersColumnToggleMenu from './system_console/sections/system_users/column_toggle_menu';
|
|
33
|
+
import ChannelsPostEdit from './channels/post_edit';
|
|
34
|
+
import DeletePostConfirmationDialog from './channels/delete_post_confirmation_dialog';
|
|
35
|
+
import RestorePostConfirmationDialog from './channels/restore_post_confirmation_dialog';
|
|
36
|
+
import SystemConsoleFeatureDiscovery from './system_console/sections/system_users/feature_discovery';
|
|
37
|
+
import SystemConsoleMobileSecurity from './system_console/sections/system_users/mobile_security';
|
|
38
38
|
const components = {
|
|
39
|
-
GlobalHeader
|
|
40
|
-
SearchPopover
|
|
41
|
-
ChannelsCenterView
|
|
42
|
-
ChannelsSidebarLeft
|
|
43
|
-
ChannelsSidebarRight
|
|
44
|
-
ChannelsAppBar
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
exports.components = components;
|
|
77
|
-
//# sourceMappingURL=index.js.map
|
|
39
|
+
GlobalHeader,
|
|
40
|
+
SearchPopover,
|
|
41
|
+
ChannelsCenterView,
|
|
42
|
+
ChannelsSidebarLeft,
|
|
43
|
+
ChannelsSidebarRight,
|
|
44
|
+
ChannelsAppBar,
|
|
45
|
+
ChannelsHeader,
|
|
46
|
+
ChannelsPostCreate,
|
|
47
|
+
ChannelsPostEdit,
|
|
48
|
+
ChannelsPost,
|
|
49
|
+
FindChannelsModal,
|
|
50
|
+
DeletePostModal,
|
|
51
|
+
SettingsModal,
|
|
52
|
+
PostDotMenu,
|
|
53
|
+
PostMenu,
|
|
54
|
+
ThreadFooter,
|
|
55
|
+
Footer,
|
|
56
|
+
MainHeader,
|
|
57
|
+
PostReminderMenu,
|
|
58
|
+
EmojiGifPicker,
|
|
59
|
+
GenericConfirmModal,
|
|
60
|
+
ScheduledDraftMenu,
|
|
61
|
+
ScheduledDraftModal,
|
|
62
|
+
SystemConsoleSidebar,
|
|
63
|
+
SystemConsoleNavbar,
|
|
64
|
+
SystemUsers,
|
|
65
|
+
SystemUsersFilterPopover,
|
|
66
|
+
SystemUsersFilterMenu,
|
|
67
|
+
SystemUsersColumnToggleMenu,
|
|
68
|
+
SystemConsoleFeatureDiscovery,
|
|
69
|
+
SystemConsoleMobileSecurity,
|
|
70
|
+
MessagePriority,
|
|
71
|
+
UserProfilePopover,
|
|
72
|
+
DeletePostConfirmationDialog,
|
|
73
|
+
RestorePostConfirmationDialog,
|
|
74
|
+
};
|
|
75
|
+
export { components, GlobalHeader, ChannelsCenterView, ChannelsSidebarLeft, ChannelsSidebarRight, ChannelsAppBar, ChannelsHeader, ChannelsPostCreate, ChannelsPostEdit, ChannelsPost, FindChannelsModal, DeletePostModal, PostDotMenu, PostMenu, ThreadFooter, MessagePriority, DeletePostConfirmationDialog, };
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = require('@playwright/test');
|
|
4
|
-
|
|
5
1
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
6
2
|
// See LICENSE.txt for license information.
|
|
7
|
-
|
|
3
|
+
import { expect } from '@playwright/test';
|
|
4
|
+
export default class MainHeader {
|
|
8
5
|
container;
|
|
9
6
|
logo;
|
|
10
7
|
backButton;
|
|
@@ -14,9 +11,6 @@ class MainHeader {
|
|
|
14
11
|
this.backButton = container.getByTestId('back_button');
|
|
15
12
|
}
|
|
16
13
|
async toBeVisible() {
|
|
17
|
-
await
|
|
14
|
+
await expect(this.container).toBeVisible();
|
|
18
15
|
}
|
|
19
16
|
}
|
|
20
|
-
|
|
21
|
-
module.exports = MainHeader;
|
|
22
|
-
//# sourceMappingURL=main_header.js.map
|
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = require('@playwright/test');
|
|
4
|
-
|
|
5
1
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
6
2
|
// See LICENSE.txt for license information.
|
|
7
|
-
|
|
3
|
+
import { expect } from '@playwright/test';
|
|
4
|
+
export default class SystemConsoleNavbar {
|
|
8
5
|
container;
|
|
9
6
|
constructor(container) {
|
|
10
7
|
this.container = container;
|
|
11
8
|
}
|
|
12
9
|
async toBeVisible() {
|
|
13
|
-
await
|
|
10
|
+
await expect(this.container).toBeVisible();
|
|
14
11
|
}
|
|
15
12
|
}
|
|
16
|
-
|
|
17
|
-
module.exports = SystemConsoleNavbar;
|
|
18
|
-
//# sourceMappingURL=navbar.js.map
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = require('@playwright/test');
|
|
4
|
-
|
|
5
1
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
6
2
|
// See LICENSE.txt for license information.
|
|
7
|
-
|
|
3
|
+
import { expect } from '@playwright/test';
|
|
4
|
+
export default class SystemUsersColumnToggleMenu {
|
|
8
5
|
container;
|
|
9
6
|
constructor(container) {
|
|
10
7
|
this.container = container;
|
|
11
8
|
}
|
|
12
9
|
async toBeVisible() {
|
|
13
|
-
await
|
|
10
|
+
await expect(this.container).toBeVisible();
|
|
14
11
|
}
|
|
15
12
|
/**
|
|
16
13
|
* Return the locator for the menu item with the given name.
|
|
@@ -39,9 +36,6 @@ class SystemUsersColumnToggleMenu {
|
|
|
39
36
|
*/
|
|
40
37
|
async close() {
|
|
41
38
|
await this.container.press('Escape');
|
|
42
|
-
await
|
|
39
|
+
await expect(this.container).not.toBeVisible();
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
|
-
|
|
46
|
-
module.exports = SystemUsersColumnToggleMenu;
|
|
47
|
-
//# sourceMappingURL=column_toggle_menu.js.map
|
|
@@ -1,24 +1,18 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = require('@playwright/test');
|
|
4
|
-
|
|
5
1
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
6
2
|
// See LICENSE.txt for license information.
|
|
3
|
+
import { expect } from '@playwright/test';
|
|
7
4
|
/**
|
|
8
5
|
* System Console -> Feature Discovery
|
|
9
6
|
*/
|
|
10
|
-
class FeatureDiscovery {
|
|
7
|
+
export default class FeatureDiscovery {
|
|
11
8
|
container;
|
|
12
9
|
constructor(container) {
|
|
13
10
|
this.container = container;
|
|
14
11
|
}
|
|
15
12
|
async toBeVisible() {
|
|
16
|
-
await
|
|
13
|
+
await expect(this.container).toBeVisible();
|
|
17
14
|
}
|
|
18
15
|
async toHaveTitle(title) {
|
|
19
|
-
await
|
|
16
|
+
await expect(this.container.getByTestId('featureDiscovery_title')).toHaveText(title);
|
|
20
17
|
}
|
|
21
18
|
}
|
|
22
|
-
|
|
23
|
-
module.exports = FeatureDiscovery;
|
|
24
|
-
//# sourceMappingURL=feature_discovery.js.map
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = require('@playwright/test');
|
|
4
|
-
|
|
5
1
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
6
2
|
// See LICENSE.txt for license information.
|
|
3
|
+
import { expect } from '@playwright/test';
|
|
7
4
|
/**
|
|
8
5
|
* The dropdown menu which appears for both Role and Status filter.
|
|
9
6
|
*/
|
|
10
|
-
class SystemUsersFilterMenu {
|
|
7
|
+
export default class SystemUsersFilterMenu {
|
|
11
8
|
container;
|
|
12
9
|
constructor(container) {
|
|
13
10
|
this.container = container;
|
|
14
11
|
}
|
|
15
12
|
async toBeVisible() {
|
|
16
|
-
await
|
|
13
|
+
await expect(this.container).toBeVisible();
|
|
17
14
|
}
|
|
18
15
|
/**
|
|
19
16
|
* Return the locator for the menu item with the given name.
|
|
@@ -37,6 +34,3 @@ class SystemUsersFilterMenu {
|
|
|
37
34
|
await this.container.press('Escape');
|
|
38
35
|
}
|
|
39
36
|
}
|
|
40
|
-
|
|
41
|
-
module.exports = SystemUsersFilterMenu;
|
|
42
|
-
//# sourceMappingURL=filter_menu.js.map
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = require('@playwright/test');
|
|
4
|
-
|
|
5
1
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
6
2
|
// See LICENSE.txt for license information.
|
|
7
|
-
|
|
3
|
+
import { expect } from '@playwright/test';
|
|
4
|
+
export default class SystemUsersFilterPopover {
|
|
8
5
|
container;
|
|
9
6
|
teamMenuInput;
|
|
10
7
|
roleMenuButton;
|
|
@@ -18,8 +15,8 @@ class SystemUsersFilterPopover {
|
|
|
18
15
|
this.applyButton = this.container.getByText('Apply');
|
|
19
16
|
}
|
|
20
17
|
async toBeVisible() {
|
|
21
|
-
await
|
|
22
|
-
await
|
|
18
|
+
await expect(this.container).toBeVisible();
|
|
19
|
+
await expect(this.applyButton).toBeVisible();
|
|
23
20
|
}
|
|
24
21
|
/**
|
|
25
22
|
* Save the filter settings.
|
|
@@ -31,21 +28,21 @@ class SystemUsersFilterPopover {
|
|
|
31
28
|
* Allows to type in the team filter for searching.
|
|
32
29
|
*/
|
|
33
30
|
async searchInTeamMenu(teamDisplayName) {
|
|
34
|
-
|
|
31
|
+
expect(this.teamMenuInput).toBeVisible();
|
|
35
32
|
await this.teamMenuInput.fill(teamDisplayName);
|
|
36
33
|
}
|
|
37
34
|
/**
|
|
38
35
|
* Opens the role filter menu.
|
|
39
36
|
*/
|
|
40
37
|
async openRoleMenu() {
|
|
41
|
-
|
|
38
|
+
expect(this.roleMenuButton).toBeVisible();
|
|
42
39
|
await this.roleMenuButton.click();
|
|
43
40
|
}
|
|
44
41
|
/**
|
|
45
42
|
* Opens the status filter menu.
|
|
46
43
|
*/
|
|
47
44
|
async openStatusMenu() {
|
|
48
|
-
|
|
45
|
+
expect(this.statusMenuButton).toBeVisible();
|
|
49
46
|
await this.statusMenuButton.click();
|
|
50
47
|
}
|
|
51
48
|
/**
|
|
@@ -53,9 +50,6 @@ class SystemUsersFilterPopover {
|
|
|
53
50
|
*/
|
|
54
51
|
async close() {
|
|
55
52
|
await this.container.press('Escape');
|
|
56
|
-
await
|
|
53
|
+
await expect(this.container).not.toBeVisible();
|
|
57
54
|
}
|
|
58
55
|
}
|
|
59
|
-
|
|
60
|
-
module.exports = SystemUsersFilterPopover;
|
|
61
|
-
//# sourceMappingURL=filter_popover.js.map
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = require('@playwright/test');
|
|
4
|
-
|
|
5
1
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
6
2
|
// See LICENSE.txt for license information.
|
|
3
|
+
import { expect } from '@playwright/test';
|
|
7
4
|
/**
|
|
8
5
|
* System Console -> Environment -> Mobile Security
|
|
9
6
|
*/
|
|
10
|
-
class MobileSecurity {
|
|
7
|
+
export default class MobileSecurity {
|
|
11
8
|
container;
|
|
12
9
|
enableBiometricAuthenticationToggleTrue;
|
|
13
10
|
enableBiometricAuthenticationToggleFalse;
|
|
@@ -27,7 +24,7 @@ class MobileSecurity {
|
|
|
27
24
|
this.saveButton = this.container.getByRole('button', { name: 'Save' });
|
|
28
25
|
}
|
|
29
26
|
async toBeVisible() {
|
|
30
|
-
await
|
|
27
|
+
await expect(this.container).toBeVisible();
|
|
31
28
|
}
|
|
32
29
|
async clickEnableBiometricAuthenticationToggleTrue() {
|
|
33
30
|
await this.enableBiometricAuthenticationToggleTrue.click();
|
|
@@ -51,6 +48,3 @@ class MobileSecurity {
|
|
|
51
48
|
await this.saveButton.click();
|
|
52
49
|
}
|
|
53
50
|
}
|
|
54
|
-
|
|
55
|
-
module.exports = MobileSecurity;
|
|
56
|
-
//# sourceMappingURL=mobile_security.js.map
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = require('@playwright/test');
|
|
4
|
-
|
|
5
1
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
6
2
|
// See LICENSE.txt for license information.
|
|
3
|
+
import { expect } from '@playwright/test';
|
|
7
4
|
/**
|
|
8
5
|
* System Console -> User Management -> Users
|
|
9
6
|
*/
|
|
10
|
-
class SystemUsers {
|
|
7
|
+
export default class SystemUsers {
|
|
11
8
|
container;
|
|
12
9
|
searchInput;
|
|
13
10
|
saveRoleChange;
|
|
@@ -29,10 +26,10 @@ class SystemUsers {
|
|
|
29
26
|
this.loadingSpinner = this.container.getByText('Loading');
|
|
30
27
|
}
|
|
31
28
|
async toBeVisible() {
|
|
32
|
-
await
|
|
29
|
+
await expect(this.container).toBeVisible();
|
|
33
30
|
}
|
|
34
31
|
async isLoadingComplete() {
|
|
35
|
-
await
|
|
32
|
+
await expect(this.loadingSpinner).toHaveCount(0);
|
|
36
33
|
}
|
|
37
34
|
/**
|
|
38
35
|
* Returns the locator for the header of the given column.
|
|
@@ -68,28 +65,28 @@ class SystemUsers {
|
|
|
68
65
|
* Opens the Filter popover
|
|
69
66
|
*/
|
|
70
67
|
async openFilterPopover() {
|
|
71
|
-
|
|
68
|
+
expect(this.filterPopoverButton).toBeVisible();
|
|
72
69
|
await this.filterPopoverButton.click();
|
|
73
70
|
}
|
|
74
71
|
/**
|
|
75
72
|
* Open the column toggle menu
|
|
76
73
|
*/
|
|
77
74
|
async openColumnToggleMenu() {
|
|
78
|
-
|
|
75
|
+
expect(this.columnToggleMenuButton).toBeVisible();
|
|
79
76
|
await this.columnToggleMenuButton.click();
|
|
80
77
|
}
|
|
81
78
|
/**
|
|
82
79
|
* Open the date range selector menu
|
|
83
80
|
*/
|
|
84
81
|
async openDateRangeSelectorMenu() {
|
|
85
|
-
|
|
82
|
+
expect(this.dateRangeSelectorMenuButton).toBeVisible();
|
|
86
83
|
await this.dateRangeSelectorMenuButton.click();
|
|
87
84
|
}
|
|
88
85
|
/**
|
|
89
86
|
* Enter the given search term in the search input
|
|
90
87
|
*/
|
|
91
88
|
async enterSearchText(searchText) {
|
|
92
|
-
|
|
89
|
+
expect(this.searchInput).toBeVisible();
|
|
93
90
|
await this.searchInput.fill(`${searchText}`);
|
|
94
91
|
await this.isLoadingComplete();
|
|
95
92
|
}
|
|
@@ -99,16 +96,13 @@ class SystemUsers {
|
|
|
99
96
|
async verifyRowWithTextIsFound(text) {
|
|
100
97
|
const foundUser = this.container.getByText(text);
|
|
101
98
|
await foundUser.waitFor();
|
|
102
|
-
await
|
|
99
|
+
await expect(foundUser).toBeVisible();
|
|
103
100
|
}
|
|
104
101
|
/**
|
|
105
102
|
* Searches and verifies that the row with given text is not found
|
|
106
103
|
*/
|
|
107
104
|
async verifyRowWithTextIsNotFound(text) {
|
|
108
105
|
const foundUser = this.container.getByText(text);
|
|
109
|
-
await
|
|
106
|
+
await expect(foundUser).not.toBeVisible();
|
|
110
107
|
}
|
|
111
108
|
}
|
|
112
|
-
|
|
113
|
-
module.exports = SystemUsers;
|
|
114
|
-
//# sourceMappingURL=system_users.js.map
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = require('@playwright/test');
|
|
4
|
-
|
|
5
1
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
6
2
|
// See LICENSE.txt for license information.
|
|
7
|
-
|
|
3
|
+
import { expect } from '@playwright/test';
|
|
4
|
+
export default class SystemConsoleSidebar {
|
|
8
5
|
container;
|
|
9
6
|
searchInput;
|
|
10
7
|
constructor(container) {
|
|
@@ -12,8 +9,8 @@ class SystemConsoleSidebar {
|
|
|
12
9
|
this.searchInput = container.getByPlaceholder('Find settings');
|
|
13
10
|
}
|
|
14
11
|
async toBeVisible() {
|
|
15
|
-
await
|
|
16
|
-
await
|
|
12
|
+
await expect(this.container).toBeVisible();
|
|
13
|
+
await expect(this.searchInput).toBeVisible();
|
|
17
14
|
}
|
|
18
15
|
/**
|
|
19
16
|
* Clicks on the sidebar section link with the given name. Pass the exact name of the section.
|
|
@@ -32,6 +29,3 @@ class SystemConsoleSidebar {
|
|
|
32
29
|
await this.searchInput.fill(itemName);
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
|
-
|
|
36
|
-
module.exports = SystemConsoleSidebar;
|
|
37
|
-
//# sourceMappingURL=sidebar.js.map
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var index = require('../components/index.js');
|
|
4
|
-
|
|
5
1
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
6
2
|
// See LICENSE.txt for license information.
|
|
7
|
-
|
|
3
|
+
import { components } from '@/ui/components';
|
|
4
|
+
export default class ChannelsPage {
|
|
8
5
|
channels = 'Channels';
|
|
9
6
|
page;
|
|
10
7
|
globalHeader;
|
|
@@ -27,25 +24,25 @@ class ChannelsPage {
|
|
|
27
24
|
constructor(page) {
|
|
28
25
|
this.page = page;
|
|
29
26
|
// The main areas of the app
|
|
30
|
-
this.globalHeader = new
|
|
31
|
-
this.searchPopover = new
|
|
32
|
-
this.centerView = new
|
|
33
|
-
this.sidebarLeft = new
|
|
34
|
-
this.sidebarRight = new
|
|
35
|
-
this.appBar = new
|
|
36
|
-
this.messagePriority = new
|
|
27
|
+
this.globalHeader = new components.GlobalHeader(page.locator('#global-header'));
|
|
28
|
+
this.searchPopover = new components.SearchPopover(page.locator('#searchPopover'));
|
|
29
|
+
this.centerView = new components.ChannelsCenterView(page.getByTestId('channel_view'));
|
|
30
|
+
this.sidebarLeft = new components.ChannelsSidebarLeft(page.locator('#SidebarContainer'));
|
|
31
|
+
this.sidebarRight = new components.ChannelsSidebarRight(page.locator('#sidebar-right'));
|
|
32
|
+
this.appBar = new components.ChannelsAppBar(page.locator('.app-bar'));
|
|
33
|
+
this.messagePriority = new components.MessagePriority(page.locator('body'));
|
|
37
34
|
// Modals
|
|
38
|
-
this.findChannelsModal = new
|
|
39
|
-
this.deletePostModal = new
|
|
40
|
-
this.settingsModal = new
|
|
35
|
+
this.findChannelsModal = new components.FindChannelsModal(page.getByRole('dialog', { name: 'Find Channels' }));
|
|
36
|
+
this.deletePostModal = new components.DeletePostModal(page.locator('#deletePostModal'));
|
|
37
|
+
this.settingsModal = new components.SettingsModal(page.getByRole('dialog', { name: 'Settings' }));
|
|
41
38
|
// Menus
|
|
42
|
-
this.postDotMenu = new
|
|
43
|
-
this.postReminderMenu = new
|
|
39
|
+
this.postDotMenu = new components.PostDotMenu(page.getByRole('menu', { name: 'Post extra options' }));
|
|
40
|
+
this.postReminderMenu = new components.PostReminderMenu(page.getByRole('menu', { name: 'Set a reminder for:' }));
|
|
44
41
|
// Popovers
|
|
45
|
-
this.emojiGifPickerPopup = new
|
|
46
|
-
this.scheduledDraftDropdown = new
|
|
47
|
-
this.scheduledDraftModal = new
|
|
48
|
-
this.userProfilePopover = new
|
|
42
|
+
this.emojiGifPickerPopup = new components.EmojiGifPicker(page.locator('#emojiGifPicker'));
|
|
43
|
+
this.scheduledDraftDropdown = new components.ScheduledDraftMenu(page.locator('#dropdown_send_post_options'));
|
|
44
|
+
this.scheduledDraftModal = new components.ScheduledDraftModal(page.locator('div.modal-content'));
|
|
45
|
+
this.userProfilePopover = new components.UserProfilePopover(page.locator('.user-profile-popover'));
|
|
49
46
|
// Posts
|
|
50
47
|
this.postContainer = page.locator('div.post-message__text');
|
|
51
48
|
}
|
|
@@ -74,6 +71,3 @@ class ChannelsPage {
|
|
|
74
71
|
await this.centerView.postCreate.postMessage(message);
|
|
75
72
|
}
|
|
76
73
|
}
|
|
77
|
-
|
|
78
|
-
module.exports = ChannelsPage;
|
|
79
|
-
//# sourceMappingURL=channels.js.map
|
package/dist/ui/pages/drafts.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = require('@playwright/test');
|
|
4
|
-
|
|
5
1
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
6
2
|
// See LICENSE.txt for license information.
|
|
7
|
-
|
|
3
|
+
import { expect } from '@playwright/test';
|
|
4
|
+
export default class DraftPage {
|
|
8
5
|
page;
|
|
9
6
|
badgeCountOnScheduledTab;
|
|
10
7
|
confirmbutton;
|
|
@@ -42,15 +39,15 @@ class DraftPage {
|
|
|
42
39
|
}
|
|
43
40
|
async toBeVisible() {
|
|
44
41
|
await this.page.waitForLoadState('networkidle');
|
|
45
|
-
await
|
|
42
|
+
await expect(this.page).toHaveURL(/.*drafts/);
|
|
46
43
|
}
|
|
47
44
|
async assertBadgeCountOnTab(badgeCount) {
|
|
48
45
|
await this.badgeCountOnScheduledTab.isVisible();
|
|
49
|
-
await
|
|
46
|
+
await expect(this.badgeCountOnScheduledTab).toHaveText(badgeCount);
|
|
50
47
|
}
|
|
51
48
|
async assertDraftBody(draftMessage) {
|
|
52
|
-
await
|
|
53
|
-
await
|
|
49
|
+
await expect(this.draftBody).toBeVisible();
|
|
50
|
+
await expect(this.draftBody).toHaveText(draftMessage);
|
|
54
51
|
}
|
|
55
52
|
async verifyOnHoverActionItems(messageContent) {
|
|
56
53
|
await this.scheduledDraftPanel(messageContent).isVisible();
|
|
@@ -62,21 +59,21 @@ class DraftPage {
|
|
|
62
59
|
async verifyDeleteIcon() {
|
|
63
60
|
await this.deleteIcon.isVisible();
|
|
64
61
|
await this.deleteIcon.hover();
|
|
65
|
-
await
|
|
66
|
-
await
|
|
62
|
+
await expect(this.deleteIconToolTip).toBeVisible();
|
|
63
|
+
await expect(this.deleteIconToolTip).toHaveText('Delete scheduled post');
|
|
67
64
|
}
|
|
68
65
|
async verifyScheduleIcon(messageContent) {
|
|
69
66
|
await this.scheduledDraftPanel(messageContent).hover();
|
|
70
|
-
await
|
|
67
|
+
await expect(this.scheduleIcon).toBeVisible();
|
|
71
68
|
await this.scheduleIcon.hover();
|
|
72
|
-
await
|
|
73
|
-
await
|
|
69
|
+
await expect(this.rescheduleIconToolTip).toBeVisible();
|
|
70
|
+
await expect(this.rescheduleIconToolTip).toHaveText('Schedule draft');
|
|
74
71
|
}
|
|
75
72
|
async verifySendNowIcon() {
|
|
76
73
|
await this.scheduledDraftSendNowButton.isVisible();
|
|
77
74
|
await this.scheduledDraftSendNowButton.hover();
|
|
78
|
-
await
|
|
79
|
-
await
|
|
75
|
+
await expect(this.scheduledDraftSendNowButtonToolTip).toBeVisible();
|
|
76
|
+
await expect(this.scheduledDraftSendNowButtonToolTip).toHaveText('Send now');
|
|
80
77
|
}
|
|
81
78
|
async getTimeStampOfMessage(messageContent) {
|
|
82
79
|
await this.scheduledDraftPanel(messageContent).scrollIntoViewIfNeeded();
|
|
@@ -88,8 +85,8 @@ class DraftPage {
|
|
|
88
85
|
await this.scheduledDraftPanel(messageContent).isVisible();
|
|
89
86
|
await this.scheduledDraftPanel(messageContent).hover();
|
|
90
87
|
await this.scheduleIcon.hover();
|
|
91
|
-
await
|
|
92
|
-
await
|
|
88
|
+
await expect(this.rescheduleIconToolTip).toBeVisible();
|
|
89
|
+
await expect(this.rescheduleIconToolTip).toHaveText('Schedule draft');
|
|
93
90
|
await this.scheduleIcon.click();
|
|
94
91
|
}
|
|
95
92
|
async deleteScheduledMessage(messageContent) {
|
|
@@ -97,7 +94,7 @@ class DraftPage {
|
|
|
97
94
|
await this.scheduledDraftPanel(messageContent).hover();
|
|
98
95
|
await this.verifyDeleteIcon();
|
|
99
96
|
await this.deleteIcon.click();
|
|
100
|
-
|
|
97
|
+
expect(await this.confirmbutton.textContent()).toEqual('Yes, delete');
|
|
101
98
|
await this.confirmbutton.click();
|
|
102
99
|
}
|
|
103
100
|
async sendScheduledMessage(messageContent) {
|
|
@@ -105,10 +102,7 @@ class DraftPage {
|
|
|
105
102
|
await this.scheduledDraftPanel(messageContent).hover();
|
|
106
103
|
await this.verifySendNowIcon();
|
|
107
104
|
await this.scheduledDraftSendNowButton.click();
|
|
108
|
-
|
|
105
|
+
expect(await this.confirmbutton.textContent()).toEqual('Yes, send now');
|
|
109
106
|
await this.confirmbutton.click();
|
|
110
107
|
}
|
|
111
108
|
}
|
|
112
|
-
|
|
113
|
-
module.exports = DraftPage;
|
|
114
|
-
//# sourceMappingURL=drafts.js.map
|