@bigbinary/neeto-playwright-commons 1.2.0 → 1.3.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/index.cjs.js +339 -144
- package/index.cjs.js.map +1 -1
- package/index.d.ts +194 -20
- package/index.js +313 -128
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { expect, defineConfig, devices } from '@playwright/test';
|
|
2
|
-
import dayjs from 'dayjs';
|
|
3
2
|
import * as require$$0 from 'fs';
|
|
4
3
|
import require$$0__default from 'fs';
|
|
5
4
|
import require$$2 from 'os';
|
|
@@ -8,130 +7,9 @@ import require$$0$2 from 'util';
|
|
|
8
7
|
import require$$0$3 from 'stream';
|
|
9
8
|
import require$$0$4 from 'events';
|
|
10
9
|
import { mergeDeepLeft, mergeAll } from 'ramda';
|
|
10
|
+
import dayjs from 'dayjs';
|
|
11
11
|
import require$$3 from 'crypto';
|
|
12
12
|
|
|
13
|
-
const COMMON_SELECTORS = {
|
|
14
|
-
toastMessage: "toastr-message-container",
|
|
15
|
-
toastIcon: ".Toastify__toast-icon",
|
|
16
|
-
toastCloseButton: "toastr-close-button",
|
|
17
|
-
dropdownIcon: "nui-dropdown-icon",
|
|
18
|
-
checkbox: "nui-checkbox-input",
|
|
19
|
-
spinner: ".neeto-ui-spinner",
|
|
20
|
-
input: "nui-input-field",
|
|
21
|
-
alertModalSubmitButton: "alert-submit-button",
|
|
22
|
-
selectContainer: "nui-select-container",
|
|
23
|
-
subheaderText: "subheader-left",
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
class CustomCommands {
|
|
27
|
-
constructor(page, request) {
|
|
28
|
-
this.interceptMultipleResponses = ({ responseUrl = "", times = 1, baseUrl, }) => Promise.all([...new Array(times)].map(() => this.page.waitForResponse((response) => {
|
|
29
|
-
var _a, _b, _c;
|
|
30
|
-
if (response.request().resourceType() === "xhr" &&
|
|
31
|
-
response.status() === 200 &&
|
|
32
|
-
response.url().includes(responseUrl) &&
|
|
33
|
-
response
|
|
34
|
-
.url()
|
|
35
|
-
.startsWith((_a = baseUrl !== null && baseUrl !== void 0 ? baseUrl : process.env.BASE_URL) !== null && _a !== void 0 ? _a : "") &&
|
|
36
|
-
!this.responses.includes((_b = response.headers()) === null || _b === void 0 ? void 0 : _b["x-request-id"])) {
|
|
37
|
-
this.responses.push((_c = response.headers()) === null || _c === void 0 ? void 0 : _c["x-request-id"]);
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
return false;
|
|
41
|
-
}, { timeout: 10000 })));
|
|
42
|
-
this.recursiveMethod = async (callback, condition, timeout, startTime) => {
|
|
43
|
-
if (Date.now() - timeout >= startTime) {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
else if (await condition()) {
|
|
47
|
-
return await callback();
|
|
48
|
-
}
|
|
49
|
-
return await this.recursiveMethod(callback, condition, timeout, startTime);
|
|
50
|
-
};
|
|
51
|
-
this.executeRecursively = async ({ callback, condition, timeout = 5000, }) => {
|
|
52
|
-
const startTime = Date.now();
|
|
53
|
-
await this.recursiveMethod(callback, condition, timeout, startTime);
|
|
54
|
-
};
|
|
55
|
-
this.verifySuccessToast = async ({ message, closeAfterVerification = true, }) => {
|
|
56
|
-
if (message) {
|
|
57
|
-
await expect(this.page.getByTestId(COMMON_SELECTORS.toastMessage)).toHaveValue(message);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
await expect(this.page.locator(COMMON_SELECTORS.toastIcon)).toHaveValue("👍");
|
|
61
|
-
closeAfterVerification &&
|
|
62
|
-
(await this.page
|
|
63
|
-
.getByTestId(COMMON_SELECTORS.toastCloseButton)
|
|
64
|
-
.click());
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
this.reloadAndWait = async (requestCount) => {
|
|
68
|
-
const reloadRequests = this.interceptMultipleResponses({
|
|
69
|
-
times: requestCount,
|
|
70
|
-
});
|
|
71
|
-
await this.page.reload();
|
|
72
|
-
await reloadRequests;
|
|
73
|
-
};
|
|
74
|
-
this.apiRequest = async ({ url, headers: additionalHeaders, body: data, method = "get", params = {}, ...otherOptions }) => {
|
|
75
|
-
const csrfToken = await this.page
|
|
76
|
-
.locator("[name='csrf-token']")
|
|
77
|
-
.getAttribute("content");
|
|
78
|
-
const requestOptions = {
|
|
79
|
-
headers: {
|
|
80
|
-
...additionalHeaders,
|
|
81
|
-
"accept-encoding": "gzip",
|
|
82
|
-
"x-csrf-token": csrfToken !== null && csrfToken !== void 0 ? csrfToken : "",
|
|
83
|
-
},
|
|
84
|
-
data,
|
|
85
|
-
params,
|
|
86
|
-
...otherOptions,
|
|
87
|
-
};
|
|
88
|
-
const httpMethodsHandlers = {
|
|
89
|
-
get: () => this.request.get(url, requestOptions),
|
|
90
|
-
post: () => this.request.post(url, requestOptions),
|
|
91
|
-
put: () => this.request.put(url, requestOptions),
|
|
92
|
-
delete: () => this.request.delete(url, requestOptions),
|
|
93
|
-
};
|
|
94
|
-
return await httpMethodsHandlers[method]();
|
|
95
|
-
};
|
|
96
|
-
this.verifyFieldValue = values => {
|
|
97
|
-
const verifyEachFieldValue = ({ field, value, }) => expect(this.page.getByTestId(field)).toHaveValue(value);
|
|
98
|
-
return Array.isArray(values)
|
|
99
|
-
? Promise.all(values.map(value => verifyEachFieldValue(value)))
|
|
100
|
-
: verifyEachFieldValue(values);
|
|
101
|
-
};
|
|
102
|
-
this.page = page;
|
|
103
|
-
this.responses = [];
|
|
104
|
-
this.request = request;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const commands = {
|
|
109
|
-
neetoPlaywrightUtilities: async ({ page, request }, use) => {
|
|
110
|
-
const commands = new CustomCommands(page, request);
|
|
111
|
-
await use(commands);
|
|
112
|
-
},
|
|
113
|
-
page: async ({ page }, use) => {
|
|
114
|
-
await page.goto("/");
|
|
115
|
-
await page.waitForLoadState();
|
|
116
|
-
await use(page);
|
|
117
|
-
},
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
const ENVIRONMENT = {
|
|
121
|
-
development: "development",
|
|
122
|
-
staging: "staging",
|
|
123
|
-
review: "review",
|
|
124
|
-
};
|
|
125
|
-
const IS_STAGING_ENV = process.env.TEST_ENV === "staging";
|
|
126
|
-
const STORAGE_STATE = "./e2e/auth/user.json";
|
|
127
|
-
const GLOBAL_TRANSLATIONS_PATTERN = "../node_modules/@bigbinary/**/translations/en.json";
|
|
128
|
-
const PROJECT_TRANSLATIONS_PATH = "../app/javascript/src/translations/en.json";
|
|
129
|
-
const CREDENTIALS = {
|
|
130
|
-
name: "Oliver Smith",
|
|
131
|
-
email: "oliver@example.com",
|
|
132
|
-
password: "welcome",
|
|
133
|
-
};
|
|
134
|
-
|
|
135
13
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
136
14
|
|
|
137
15
|
var tasks = {};
|
|
@@ -6830,6 +6708,21 @@ function assertPatternsInput(input) {
|
|
|
6830
6708
|
}
|
|
6831
6709
|
var out = FastGlob;
|
|
6832
6710
|
|
|
6711
|
+
const ENVIRONMENT = {
|
|
6712
|
+
development: "development",
|
|
6713
|
+
staging: "staging",
|
|
6714
|
+
review: "review",
|
|
6715
|
+
};
|
|
6716
|
+
const IS_STAGING_ENV = process.env.TEST_ENV === "staging";
|
|
6717
|
+
const STORAGE_STATE = "./e2e/auth/user.json";
|
|
6718
|
+
const GLOBAL_TRANSLATIONS_PATTERN = "../node_modules/@bigbinary/**/translations/en.json";
|
|
6719
|
+
const PROJECT_TRANSLATIONS_PATH = "../app/javascript/src/translations/en.json";
|
|
6720
|
+
const CREDENTIALS = {
|
|
6721
|
+
name: "Oliver Smith",
|
|
6722
|
+
email: "oliver@example.com",
|
|
6723
|
+
password: "welcome",
|
|
6724
|
+
};
|
|
6725
|
+
|
|
6833
6726
|
const joinString = (string1, string2, string3 = "", separator = " ") => {
|
|
6834
6727
|
if (string3 === "") {
|
|
6835
6728
|
return string1 + separator + string2;
|
|
@@ -6874,6 +6767,166 @@ const readTranslations = () => {
|
|
|
6874
6767
|
});
|
|
6875
6768
|
return translations;
|
|
6876
6769
|
};
|
|
6770
|
+
const hyphenize = input => {
|
|
6771
|
+
const fallbackString = "";
|
|
6772
|
+
if (typeof input === "number")
|
|
6773
|
+
return String(input);
|
|
6774
|
+
if (input && typeof input === "string" && input.replace) {
|
|
6775
|
+
return input
|
|
6776
|
+
.replace(/[\s_]/g, "-")
|
|
6777
|
+
.replace(/([a-z])([A-Z])/g, "$1-$2")
|
|
6778
|
+
.replace(/-+/g, "-")
|
|
6779
|
+
.toLowerCase();
|
|
6780
|
+
}
|
|
6781
|
+
return fallbackString;
|
|
6782
|
+
};
|
|
6783
|
+
const joinHyphenCase = (...args) => args.join(" ").replace(/\s+/g, "-").toLowerCase();
|
|
6784
|
+
|
|
6785
|
+
const COMMON_SELECTORS = {
|
|
6786
|
+
spinner: ".neeto-ui-spinner",
|
|
6787
|
+
subheaderText: "subheader-left",
|
|
6788
|
+
alertTitle: "alert-title",
|
|
6789
|
+
alertModalMessage: "alert-message",
|
|
6790
|
+
alertModalSubmitButton: "alert-submit-button",
|
|
6791
|
+
checkbox: "nui-checkbox-input",
|
|
6792
|
+
checkboxLabel: "nui-checkbox-label",
|
|
6793
|
+
dropdownContainer: "nui-dropdown-container",
|
|
6794
|
+
dropdownIcon: "nui-dropdown-icon",
|
|
6795
|
+
heading: "main-header",
|
|
6796
|
+
paneBody: "pane-body",
|
|
6797
|
+
paneHeader: "pane-header",
|
|
6798
|
+
profileSidebar: "profile-section",
|
|
6799
|
+
selectOption: (label) => `${hyphenize(label)}-select-option`,
|
|
6800
|
+
toastMessage: "toastr-message-container",
|
|
6801
|
+
toastCloseButton: "toastr-close-button",
|
|
6802
|
+
windowAlert: "#alert-box",
|
|
6803
|
+
body: "body",
|
|
6804
|
+
toastIcon: ".Toastify__toast-icon",
|
|
6805
|
+
paneModalCrossIcon: "pane-close-button",
|
|
6806
|
+
inputField: "nui-input-field",
|
|
6807
|
+
alertConfirmationText: "alert-confirmation-text",
|
|
6808
|
+
alertCancelButton: "alert-cancel-button",
|
|
6809
|
+
alertModalCrossIcon: "modal-close-button",
|
|
6810
|
+
saveChangesButton: "save-changes-button",
|
|
6811
|
+
cancelButton: "cancel-button",
|
|
6812
|
+
inputFieldError: "nui-input-error",
|
|
6813
|
+
selectDropDownError: "nui-select-error",
|
|
6814
|
+
subTitleHeading: "menubar-subtitle-heading",
|
|
6815
|
+
noDataTitle: "no-data-title",
|
|
6816
|
+
noDataDescription: "no-data-description",
|
|
6817
|
+
backdrop: "neeto-backdrop",
|
|
6818
|
+
menuBarHeading: "menubar-heading",
|
|
6819
|
+
dropdownWrapper: "nui-select-container-wrapper",
|
|
6820
|
+
toggleButton: "menubar-toggle-button",
|
|
6821
|
+
tooltip: "tooltip-box",
|
|
6822
|
+
articlePageTitle: ".serene-article__title",
|
|
6823
|
+
tabItem: "tab-item",
|
|
6824
|
+
labelInputError: "label-input-error",
|
|
6825
|
+
urlInputError: "url-input-error",
|
|
6826
|
+
noDataPrimaryButton: "no-data-primary-button",
|
|
6827
|
+
modalHeader: "modal-header",
|
|
6828
|
+
nameInputError: "name-input-error",
|
|
6829
|
+
selectContainer: "nui-select-container",
|
|
6830
|
+
dropdownMenu: "nui-select-menu",
|
|
6831
|
+
sidebarToggle: "neeto-molecules-sidebar-toggler",
|
|
6832
|
+
subheader: "subheader",
|
|
6833
|
+
settingsLink: "Settings",
|
|
6834
|
+
ticketFieldTextInput: (label) => `${hyphenize(label)}-text-input`,
|
|
6835
|
+
};
|
|
6836
|
+
|
|
6837
|
+
class CustomCommands {
|
|
6838
|
+
constructor(page, request) {
|
|
6839
|
+
this.interceptMultipleResponses = ({ responseUrl = "", times = 1, baseUrl, }) => Promise.all([...new Array(times)].map(() => this.page.waitForResponse((response) => {
|
|
6840
|
+
var _a, _b, _c;
|
|
6841
|
+
if (response.request().resourceType() === "xhr" &&
|
|
6842
|
+
response.status() === 200 &&
|
|
6843
|
+
response.url().includes(responseUrl) &&
|
|
6844
|
+
response
|
|
6845
|
+
.url()
|
|
6846
|
+
.startsWith((_a = baseUrl !== null && baseUrl !== void 0 ? baseUrl : process.env.BASE_URL) !== null && _a !== void 0 ? _a : "") &&
|
|
6847
|
+
!this.responses.includes((_b = response.headers()) === null || _b === void 0 ? void 0 : _b["x-request-id"])) {
|
|
6848
|
+
this.responses.push((_c = response.headers()) === null || _c === void 0 ? void 0 : _c["x-request-id"]);
|
|
6849
|
+
return true;
|
|
6850
|
+
}
|
|
6851
|
+
return false;
|
|
6852
|
+
}, { timeout: 10000 })));
|
|
6853
|
+
this.recursiveMethod = async (callback, condition, timeout, startTime) => {
|
|
6854
|
+
if (Date.now() - timeout >= startTime) {
|
|
6855
|
+
return false;
|
|
6856
|
+
}
|
|
6857
|
+
else if (await condition()) {
|
|
6858
|
+
return await callback();
|
|
6859
|
+
}
|
|
6860
|
+
return await this.recursiveMethod(callback, condition, timeout, startTime);
|
|
6861
|
+
};
|
|
6862
|
+
this.executeRecursively = async ({ callback, condition, timeout = 5000, }) => {
|
|
6863
|
+
const startTime = Date.now();
|
|
6864
|
+
await this.recursiveMethod(callback, condition, timeout, startTime);
|
|
6865
|
+
};
|
|
6866
|
+
this.verifySuccessToast = async ({ message, closeAfterVerification = true, }) => {
|
|
6867
|
+
if (message) {
|
|
6868
|
+
await expect(this.page.getByTestId(COMMON_SELECTORS.toastMessage)).toHaveValue(message);
|
|
6869
|
+
}
|
|
6870
|
+
else {
|
|
6871
|
+
await expect(this.page.locator(COMMON_SELECTORS.toastIcon)).toHaveValue("👍");
|
|
6872
|
+
closeAfterVerification &&
|
|
6873
|
+
(await this.page
|
|
6874
|
+
.getByTestId(COMMON_SELECTORS.toastCloseButton)
|
|
6875
|
+
.click());
|
|
6876
|
+
}
|
|
6877
|
+
};
|
|
6878
|
+
this.reloadAndWait = async (requestCount) => {
|
|
6879
|
+
const reloadRequests = this.interceptMultipleResponses({
|
|
6880
|
+
times: requestCount,
|
|
6881
|
+
});
|
|
6882
|
+
await this.page.reload();
|
|
6883
|
+
await reloadRequests;
|
|
6884
|
+
};
|
|
6885
|
+
this.apiRequest = async ({ url, headers: additionalHeaders, body: data, method = "get", params = {}, ...otherOptions }) => {
|
|
6886
|
+
const csrfToken = await this.page
|
|
6887
|
+
.locator("[name='csrf-token']")
|
|
6888
|
+
.getAttribute("content");
|
|
6889
|
+
const requestOptions = {
|
|
6890
|
+
headers: {
|
|
6891
|
+
...additionalHeaders,
|
|
6892
|
+
"accept-encoding": "gzip",
|
|
6893
|
+
"x-csrf-token": csrfToken !== null && csrfToken !== void 0 ? csrfToken : "",
|
|
6894
|
+
},
|
|
6895
|
+
data,
|
|
6896
|
+
params,
|
|
6897
|
+
...otherOptions,
|
|
6898
|
+
};
|
|
6899
|
+
const httpMethodsHandlers = {
|
|
6900
|
+
get: () => this.request.get(url, requestOptions),
|
|
6901
|
+
post: () => this.request.post(url, requestOptions),
|
|
6902
|
+
put: () => this.request.put(url, requestOptions),
|
|
6903
|
+
delete: () => this.request.delete(url, requestOptions),
|
|
6904
|
+
};
|
|
6905
|
+
return await httpMethodsHandlers[method]();
|
|
6906
|
+
};
|
|
6907
|
+
this.verifyFieldValue = values => {
|
|
6908
|
+
const verifyEachFieldValue = ({ field, value, }) => expect(this.page.getByTestId(field)).toHaveValue(value);
|
|
6909
|
+
return Array.isArray(values)
|
|
6910
|
+
? Promise.all(values.map(value => verifyEachFieldValue(value)))
|
|
6911
|
+
: verifyEachFieldValue(values);
|
|
6912
|
+
};
|
|
6913
|
+
this.page = page;
|
|
6914
|
+
this.responses = [];
|
|
6915
|
+
this.request = request;
|
|
6916
|
+
}
|
|
6917
|
+
}
|
|
6918
|
+
|
|
6919
|
+
const commands = {
|
|
6920
|
+
neetoPlaywrightUtilities: async ({ page, request }, use) => {
|
|
6921
|
+
const commands = new CustomCommands(page, request);
|
|
6922
|
+
await use(commands);
|
|
6923
|
+
},
|
|
6924
|
+
page: async ({ page }, use) => {
|
|
6925
|
+
await page.goto("/");
|
|
6926
|
+
await page.waitForLoadState();
|
|
6927
|
+
await use(page);
|
|
6928
|
+
},
|
|
6929
|
+
};
|
|
6877
6930
|
|
|
6878
6931
|
const generateStagingData = (product = "invoice") => {
|
|
6879
6932
|
const timestamp = dayjs().format("YYYYMMDDHH");
|
|
@@ -6915,12 +6968,19 @@ const i18n = {
|
|
|
6915
6968
|
const BASE_URL = "/api/v1";
|
|
6916
6969
|
const ROUTES = {
|
|
6917
6970
|
neetoAuth: "https://app.neetoauth.net",
|
|
6971
|
+
neetoAuthSignup: "https://app.neetoauth.net/signups/new",
|
|
6918
6972
|
profile: "/profile",
|
|
6919
6973
|
login: `${BASE_URL}/login`,
|
|
6920
6974
|
signup: `${BASE_URL}/signups`,
|
|
6921
6975
|
subdomainAvailability: `${BASE_URL}/subdomain_availability`,
|
|
6922
6976
|
countries: `${BASE_URL}/countries`,
|
|
6923
6977
|
neetoApps: `${BASE_URL}/neeto_apps`,
|
|
6978
|
+
teamMembers: {
|
|
6979
|
+
all: "/team_members*/**",
|
|
6980
|
+
bulkUpdate: "/team_members/teams/bulk_update",
|
|
6981
|
+
index: "/team_members/teams",
|
|
6982
|
+
show: (id) => `/team_members/teams/${id}`,
|
|
6983
|
+
},
|
|
6924
6984
|
};
|
|
6925
6985
|
|
|
6926
6986
|
const SIGNUP_SELECTORS = {
|
|
@@ -6952,10 +7012,9 @@ class OrganizationPage {
|
|
|
6952
7012
|
const defaultOtp = "123456";
|
|
6953
7013
|
const appNameInLowerCase = appName.toLowerCase();
|
|
6954
7014
|
const isNeetoAuth = appNameInLowerCase === "neetoauth";
|
|
6955
|
-
const authUrl = "https://app.neetoauth.net/signups/new";
|
|
6956
7015
|
isNeetoAuth
|
|
6957
|
-
? await this.page.goto(
|
|
6958
|
-
: await this.page.goto(`${
|
|
7016
|
+
? await this.page.goto(ROUTES.neetoAuthSignup)
|
|
7017
|
+
: await this.page.goto(`${ROUTES.neetoAuthSignup}?redirect_uri=${appNameInLowerCase}.net`);
|
|
6959
7018
|
await this.page.getByTestId(SIGNUP_SELECTORS.emailTextField).fill(email);
|
|
6960
7019
|
const signup = this.neetoPlaywrightUtilities.interceptMultipleResponses({
|
|
6961
7020
|
responseUrl: ROUTES.signup,
|
|
@@ -7057,6 +7116,62 @@ class OrganizationPage {
|
|
|
7057
7116
|
}
|
|
7058
7117
|
}
|
|
7059
7118
|
|
|
7119
|
+
const NEETO_EDITOR_SELECTORS = {
|
|
7120
|
+
boldOption: "neeto-editor-fixed-menu-bold-option",
|
|
7121
|
+
italicOption: "neeto-editor-fixed-menu-italic-option",
|
|
7122
|
+
underlineOption: "neeto-editor-fixed-menu-underline-option",
|
|
7123
|
+
strikeOption: "neeto-editor-fixed-menu-strike-option",
|
|
7124
|
+
codeBlockOption: "neeto-editor-fixed-menu-code-option",
|
|
7125
|
+
highlightOption: "neeto-editor-fixed-menu-highlight-option",
|
|
7126
|
+
linkInput: "neeto-editor-fixed-menu-link-option-input",
|
|
7127
|
+
linkSubmitButton: "neeto-editor-fixed-menu-link-option-link-button",
|
|
7128
|
+
commandList: (index) => `neeto-editor-command-list-item-${index}`,
|
|
7129
|
+
imageUploadUrlSubmitButton: "neeto-editor-media-upload-url-submit",
|
|
7130
|
+
imageUploadUrlInputTextField: "neeto-editor-media-upload-url-input",
|
|
7131
|
+
uploadInput: "neeto-editor-media-uploader-input",
|
|
7132
|
+
editorMenuBarWrapper: "neeto-editor-fixed-menu-wrapper",
|
|
7133
|
+
undoOption: "neeto-editor-fixed-menu-undo-option",
|
|
7134
|
+
redoOption: "neeto-editor-fixed-menu-redo-option",
|
|
7135
|
+
imageWrapper: "neeto-editor-image-wrapper",
|
|
7136
|
+
};
|
|
7137
|
+
|
|
7138
|
+
const NEETO_FILTERS_SELECTORS = {
|
|
7139
|
+
emailSelectContainer: "email-select-container-wrapper",
|
|
7140
|
+
filterPaneHeading: "neeto-filters-pane-header",
|
|
7141
|
+
neetoFiltersEmailBlock: "neeto-filters-email-block",
|
|
7142
|
+
neetoFiltersRoleBlock: "neeto-filters-role-block",
|
|
7143
|
+
neetoFiltersBarClearButton: "neeto-filters-bar-clear-btn",
|
|
7144
|
+
neetoFiltersNameFilterField: "neeto-filters-name-filter",
|
|
7145
|
+
neetoFilterNameBlock: "neeto-filters-name-block",
|
|
7146
|
+
roleSelectContainer: "role-select-container-wrapper",
|
|
7147
|
+
filterButton: "neeto-filters-toggle-btn",
|
|
7148
|
+
filtersClearButton: "neeto-filters-clear-btn",
|
|
7149
|
+
filterDoneButton: "neeto-filters-done-btn",
|
|
7150
|
+
filteredMembersCount: "ntm-filtered-members-count",
|
|
7151
|
+
allMenubarBlock: "ntm-members-menubar-all-block",
|
|
7152
|
+
filtersEmailFilter: "neeto-filters-email-filter",
|
|
7153
|
+
paneModalCrossIcon: "neeto-filters-close-button",
|
|
7154
|
+
};
|
|
7155
|
+
|
|
7156
|
+
const HELP_CENTER_SELECTORS = {
|
|
7157
|
+
helpButton: "help-button",
|
|
7158
|
+
documentationButton: "help-link-help-center-button",
|
|
7159
|
+
keyboardShortcutButton: "help-link-keyboard-shortcut-button",
|
|
7160
|
+
chatButton: "help-link-live-chat-button",
|
|
7161
|
+
whatsNewButton: "help-link-changelog-button",
|
|
7162
|
+
whatsNewWidgetInfo: "h1",
|
|
7163
|
+
whatsNewWidgetCloseButton: ".nc-widget-header__btn",
|
|
7164
|
+
keyboardShortcutPaneHeading: "keyboard-shortcuts-pane-title",
|
|
7165
|
+
keyboardShortcutPaneCrossIcon: "keyboard-shortcuts-pane-close-button",
|
|
7166
|
+
};
|
|
7167
|
+
const CHAT_WIDGET_SELECTORS = {
|
|
7168
|
+
chatWidgetHomeCard: "neeto-chat-widget-cta-title",
|
|
7169
|
+
widgetSubmitButton: "neeto-chat-widget-pre-chat-submit-btn",
|
|
7170
|
+
chatBubbleMessage: "neeto-chat-widget-chat-message-bubble",
|
|
7171
|
+
chatCloseButton: ".neeto-chat-widget-icon--close",
|
|
7172
|
+
widgetIframe: "#neetochat-iframe",
|
|
7173
|
+
};
|
|
7174
|
+
|
|
7060
7175
|
const LOGIN_SELECTORS = {
|
|
7061
7176
|
appleAuthenticationButton: "apple-authentication-button",
|
|
7062
7177
|
emailTextField: "login-email-text-field",
|
|
@@ -7069,7 +7184,77 @@ const LOGIN_SELECTORS = {
|
|
|
7069
7184
|
twitterAuthenticationButton: "twitter-authentication-button",
|
|
7070
7185
|
};
|
|
7071
7186
|
|
|
7072
|
-
const
|
|
7187
|
+
const MEMBER_SELECTORS = {
|
|
7188
|
+
membersTab: "members-nav-tab",
|
|
7189
|
+
newButton: "ntm-add-member-button",
|
|
7190
|
+
continueButton: "ntm-manage-member-continue-button",
|
|
7191
|
+
submitButton: "ntm-manage-member-submit-button",
|
|
7192
|
+
searchTextField: "ntm-search-members-input",
|
|
7193
|
+
deactivatedAgentsButton: "ntm-members-menubar-deactivated-block",
|
|
7194
|
+
activatedMembersButton: "ntm-members-menubar-active-block",
|
|
7195
|
+
columnCheckBox: "neeto-ui-columns-checkbox",
|
|
7196
|
+
roleLabel: (role) => `${joinHyphenCase(role)}-radio-label`,
|
|
7197
|
+
dropDownIcon: "ntm-members-table-row-dropdown-button",
|
|
7198
|
+
editButton: "ntm-edit-member-button",
|
|
7199
|
+
menuBarHeading: "ntm-members-menubar-heading",
|
|
7200
|
+
activateOrDeactivateMember: "ntm-deactivate-member-button",
|
|
7201
|
+
columnsButton: "columns-dropdown-button",
|
|
7202
|
+
columnsDropdownContainer: "columns-dropdown-container",
|
|
7203
|
+
emailDropdownItemLabel: "email-checkbox-label",
|
|
7204
|
+
roleDropdownItemLabel: "role-checkbox-label",
|
|
7205
|
+
inviteStatusDropdownItemLabel: "invite-status-checkbox-label",
|
|
7206
|
+
heading: "ntm-manage-members-pane-header",
|
|
7207
|
+
activateButton: "ntm-activate-members-button",
|
|
7208
|
+
deactivateButton: "ntm-deactivate-members-button",
|
|
7209
|
+
rolesButton: "ntm-manage-member-roles-button",
|
|
7210
|
+
statusTag: "ntm-member-status-tag",
|
|
7211
|
+
};
|
|
7212
|
+
const MEMBER_FORM_SELECTORS = {
|
|
7213
|
+
emailTextField: "email-select-input-field",
|
|
7214
|
+
firstNameTextField: "ntm-edit-member-first-name-text-field",
|
|
7215
|
+
lastNameTextField: "ntm-edit-member-last-name-text-field",
|
|
7216
|
+
emailInput: "ntm-manage-member-email-input",
|
|
7217
|
+
emailErrorField: "emails-input-error",
|
|
7218
|
+
cancelButton: "ntm-manage-member-cancel-button",
|
|
7219
|
+
};
|
|
7220
|
+
|
|
7221
|
+
const ROLES_SELECTORS = {
|
|
7222
|
+
newButton: "ntm-add-role-button",
|
|
7223
|
+
proceedButton: "ntm-add-role-submit-button",
|
|
7224
|
+
cancelButton: "ntm-add-role-cancel-button",
|
|
7225
|
+
tableHeaderRoleName: "ntm-roles-table-role-header",
|
|
7226
|
+
nameTextField: "ntm-add-role-name-text-field",
|
|
7227
|
+
searchTextField: "ntm-search-roles-input",
|
|
7228
|
+
updateRolePaneHeading: "ntm-add-role-title",
|
|
7229
|
+
updateRoleCancelButton: "ntm-add-role-cancel-button",
|
|
7230
|
+
descriptionTextField: "ntm-add-role-description-text-field",
|
|
7231
|
+
permissionCategoryTitle: "ntm-roles-permission-category-title",
|
|
7232
|
+
headerColumn: "ntm-roles-table-header",
|
|
7233
|
+
dropDownIcon: "ntm-roles-table-header-role-dropdown-button",
|
|
7234
|
+
tableHeaderRoleTitle: "ntm-roles-table-header-role-title",
|
|
7235
|
+
};
|
|
7236
|
+
|
|
7237
|
+
const TAGS_SELECTORS = {
|
|
7238
|
+
newTagButton: "add-new-tag-button",
|
|
7239
|
+
tagNameTextField: "tag-name-text-field",
|
|
7240
|
+
editButton: "tags-edit-button",
|
|
7241
|
+
deleteButton: "tags-delete-button",
|
|
7242
|
+
cancelButton: "neeto-tags-manage-tag-cancel-button",
|
|
7243
|
+
submitButton: "neeto-tags-manage-tag-submit-button",
|
|
7244
|
+
searchTextField: "neeto-tags-search-text-input-field",
|
|
7245
|
+
descriptionTextArea: "tag-description-text-area",
|
|
7246
|
+
};
|
|
7247
|
+
const MERGE_TAGS_SELECTORS = {
|
|
7248
|
+
mergeTagsButton: "neeto-tags-merge-tags-button",
|
|
7249
|
+
mergeButton: "neeto-tags-merge-button",
|
|
7250
|
+
sourceSearchTextField: "neeto-tags-merge-source-search-text-input-field",
|
|
7251
|
+
sourceTagsList: "neeto-tags-merge-source-tags-list",
|
|
7252
|
+
destinationTagsList: "neeto-tags-merge-destination-tags-list",
|
|
7253
|
+
destinationSearchTextField: "neeto-tags-merge-destination-search-text-input-field",
|
|
7254
|
+
cancelButton: "neeto-tags-merge-cancel-button",
|
|
7255
|
+
proceedButton: "neeto-tags-merge-proceed-button",
|
|
7256
|
+
disabledTag: ".neeto-ui-cursor-not-allowed",
|
|
7257
|
+
};
|
|
7073
7258
|
|
|
7074
7259
|
const initializeCredentials = (product) => {
|
|
7075
7260
|
const { user } = readFileSyncIfExists();
|
|
@@ -7562,5 +7747,5 @@ const definePlaywrightConfig = (overrides) => {
|
|
|
7562
7747
|
});
|
|
7563
7748
|
};
|
|
7564
7749
|
|
|
7565
|
-
export { BASE_URL,
|
|
7750
|
+
export { BASE_URL, CHAT_WIDGET_SELECTORS, COMMON_SELECTORS, CREDENTIALS, CustomCommands, ENVIRONMENT, GLOBAL_TRANSLATIONS_PATTERN, HELP_CENTER_SELECTORS, IS_STAGING_ENV, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MERGE_TAGS_SELECTORS, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, OrganizationPage, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, SIGNUP_SELECTORS, STORAGE_STATE, TAGS_SELECTORS, clearCredentials, commands, definePlaywrightConfig, generateStagingData, hyphenize, i18n, initializeCredentials, joinHyphenCase, joinString, login, loginWithoutSSO, readFileSyncIfExists, readTranslations, updateCredentials, writeDataToFile };
|
|
7566
7751
|
//# sourceMappingURL=index.js.map
|