@bigbinary/neeto-commons-frontend 2.0.30 → 2.0.31

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.
@@ -0,0 +1,746 @@
1
+ import { dataCy as dataCy$1 } from 'Support/utils/common';
2
+ import dayjs from 'dayjs';
3
+
4
+ function _typeof(obj) {
5
+ "@babel/helpers - typeof";
6
+
7
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
8
+ return typeof obj;
9
+ } : function (obj) {
10
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
11
+ }, _typeof(obj);
12
+ }
13
+
14
+ function _toPrimitive(input, hint) {
15
+ if (_typeof(input) !== "object" || input === null) return input;
16
+ var prim = input[Symbol.toPrimitive];
17
+ if (prim !== undefined) {
18
+ var res = prim.call(input, hint || "default");
19
+ if (_typeof(res) !== "object") return res;
20
+ throw new TypeError("@@toPrimitive must return a primitive value.");
21
+ }
22
+ return (hint === "string" ? String : Number)(input);
23
+ }
24
+
25
+ function _toPropertyKey(arg) {
26
+ var key = _toPrimitive(arg, "string");
27
+ return _typeof(key) === "symbol" ? key : String(key);
28
+ }
29
+
30
+ function _defineProperty(obj, key, value) {
31
+ key = _toPropertyKey(key);
32
+ if (key in obj) {
33
+ Object.defineProperty(obj, key, {
34
+ value: value,
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true
38
+ });
39
+ } else {
40
+ obj[key] = value;
41
+ }
42
+ return obj;
43
+ }
44
+
45
+ function _arrayLikeToArray(arr, len) {
46
+ if (len == null || len > arr.length) len = arr.length;
47
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
48
+ return arr2;
49
+ }
50
+
51
+ function _arrayWithoutHoles(arr) {
52
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
53
+ }
54
+
55
+ function _iterableToArray(iter) {
56
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
57
+ }
58
+
59
+ function _unsupportedIterableToArray(o, minLen) {
60
+ if (!o) return;
61
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
62
+ var n = Object.prototype.toString.call(o).slice(8, -1);
63
+ if (n === "Object" && o.constructor) n = o.constructor.name;
64
+ if (n === "Map" || n === "Set") return Array.from(o);
65
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
66
+ }
67
+
68
+ function _nonIterableSpread() {
69
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
70
+ }
71
+
72
+ function _toConsumableArray(arr) {
73
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
74
+ }
75
+
76
+ var environment = {
77
+ development: "development",
78
+ staging: "staging"
79
+ };
80
+ var isStagingEnv = Cypress.env("configFile") === environment.staging;
81
+
82
+ var getCountFromText = function getCountFromText(countText) {
83
+ return Number(countText.text().trim().split(" ")[0]);
84
+ };
85
+ var dataCy = function dataCy(value) {
86
+ var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
87
+ return "[data-cy='".concat(value, "']").concat(suffix);
88
+ };
89
+ var setListCount = function setListCount(countSelector, alias) {
90
+ return cy.get(countSelector).then(function (countText) {
91
+ cy.wrap(getCountFromText(countText)).as(alias);
92
+ });
93
+ };
94
+ var verifyListCount = function verifyListCount(countSelector, count) {
95
+ return cy.get(countSelector).then(function (countText) {
96
+ cy.wrap(getCountFromText(countText)).should("eq", count);
97
+ });
98
+ };
99
+ var getUrl = function getUrl(path) {
100
+ return "/api/v1/".concat(path);
101
+ };
102
+ var getTestTitle = function getTestTitle() {
103
+ var ctx = Cypress.mocha.getRunner().suite.ctx;
104
+ return ctx.currentTest.parent.title;
105
+ };
106
+ var initializeCredentials = function initializeCredentials(stagingData) {
107
+ cy.task("getGlobalState").then(function (state) {
108
+ var newState = {
109
+ businessName: state.businessName || stagingData.businessName,
110
+ currentUserName: state.fullName || stagingData.fullName,
111
+ email: state.email || stagingData.email,
112
+ firstName: state.firstName || stagingData.firstName,
113
+ lastName: state.lastName || stagingData.lastName,
114
+ subdomainName: state.subdomain || stagingData.subdomainName,
115
+ skipSetup: state.skipSetup
116
+ };
117
+ if (isStagingEnv) {
118
+ var baseUrl = "https://".concat(newState.subdomainName, ".").concat(stagingData.domain);
119
+ Cypress.config("baseUrl", baseUrl);
120
+ }
121
+ cy.task("bulkUpdateGlobalState", newState);
122
+ });
123
+ };
124
+
125
+ var allPath = function allPath() {
126
+ return "".concat(Cypress.config("baseUrl")).concat(getUrl("**"));
127
+ };
128
+ var requestApis = {
129
+ countries: "/api/v1/countries",
130
+ signUp: "api/v1/signups/**",
131
+ subdomainAvailablity: "/api/v1/subdomain_availability/**",
132
+ teamMembers: {
133
+ all: "/team_members*/**",
134
+ bulkUpdate: "/team_members/teams/bulk_update",
135
+ index: "/team_members/teams"
136
+ }
137
+ };
138
+ var urlPaths = {
139
+ members: "/desk/members"
140
+ };
141
+ Object.defineProperty(requestApis, "allPath", {
142
+ get: allPath
143
+ });
144
+
145
+ var commonSelectors = {
146
+ alertTitle: dataCy("alert-title"),
147
+ alertModalMessage: dataCy("alert-message"),
148
+ alertModalSubmitButton: dataCy("alert-submit-button"),
149
+ checkbox: ".neeto-ui-checkbox",
150
+ checkboxLabel: dataCy("nui-checkbox-label"),
151
+ dropdownContainer: dataCy("nui-dropdown-container"),
152
+ dropdownIcon: dataCy("nui-dropdown-icon"),
153
+ heading: dataCy("main-header"),
154
+ paneBody: ".neeto-ui-pane__body",
155
+ paneHeader: ".neeto-ui-pane__header",
156
+ profileSidebar: ".neeto-ui-profile-sidebar",
157
+ selectOption: ".neeto-ui-react-select__option",
158
+ toastMessage: dataCy("toastr-message-container"),
159
+ toastCloseButton: ".neeto-ui-toastr__close-button",
160
+ windowAlert: "#alert-box"
161
+ };
162
+ var tableSelectors = {
163
+ nthColumn: function nthColumn(n) {
164
+ return "td:nth-child(".concat(n, ")");
165
+ },
166
+ tableBody: ".ant-table-body",
167
+ tableHeader: ".ant-table-thead th",
168
+ tableRow: ".ant-table-tbody tr",
169
+ spinner: ".ant-spin"
170
+ };
171
+ var profileSelectors = {
172
+ logoutLink: dataCy("profile-logout-button"),
173
+ profileOptionsContainer: '[class="tippy-box sidebar-featured-tooltip__content"]'
174
+ };
175
+
176
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
177
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
178
+ Cypress.Commands.add("clearAndType", function (selector, text) {
179
+ cy.get(selector).clear().type(text);
180
+ });
181
+ Cypress.Commands.add("clearAndTypeFast", function (selector, text) {
182
+ cy.get(selector).clear().type(text, {
183
+ delay: 0
184
+ });
185
+ });
186
+ Cypress.Commands.add("clearByClickAndTypeFast", function (selector, text) {
187
+ cy.get(selector).click().clear().type(text, {
188
+ delay: 0
189
+ });
190
+ });
191
+ Cypress.Commands.add("typeFast", function (selector, text) {
192
+ cy.get(selector).type(text, {
193
+ delay: 0
194
+ });
195
+ });
196
+ Cypress.Commands.add("typeAndEnter", function (selector, text) {
197
+ cy.get(selector).clear().type("".concat(text, "{enter}"));
198
+ });
199
+ Cypress.Commands.add("verifyToastMessage", function (message) {
200
+ cy.get(commonSelectors.toastMessage).should("be.visible").should("have.text", message);
201
+
202
+ // close toast message
203
+ cy.get(commonSelectors.toastCloseButton).click();
204
+ cy.get(commonSelectors.toastMessage).should("not.exist");
205
+ });
206
+ Cypress.Commands.add("continueOnAlert", function (args) {
207
+ var props = _typeof(args) === "object" ? args : {
208
+ alias: args
209
+ };
210
+ var alias = props.alias,
211
+ title = props.title,
212
+ _props$requestCount = props.requestCount,
213
+ requestCount = _props$requestCount === void 0 ? 1 : _props$requestCount,
214
+ toastMessage = props.toastMessage;
215
+ var hasMoreThanOneRequest = requestCount > 1;
216
+ title && cy.get(commonSelectors.alertTitle).should("have.text", title);
217
+ cy.interceptApi(alias, requestCount);
218
+ cy.get(commonSelectors.alertModalSubmitButton).click();
219
+ cy.wait("@".concat(alias));
220
+ toastMessage && cy.verifyToastMessage(toastMessage);
221
+ hasMoreThanOneRequest && cy.waitForMultipleRequest("@".concat(alias), requestCount - 1);
222
+ });
223
+ Cypress.Commands.add("interceptApi", function (alias) {
224
+ var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
225
+ return cy.intercept({
226
+ url: requestApis.allPath,
227
+ times: times
228
+ }).as(alias);
229
+ });
230
+ Cypress.Commands.add("waitForMultipleRequest", function (alias) {
231
+ var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
232
+ return cy.wrap(_toConsumableArray(new Array(times))).each(function () {
233
+ return cy.wait(alias);
234
+ });
235
+ });
236
+ Cypress.Commands.add("apiRequest", function (options) {
237
+ return cy.get("@requestHeaders").then(function (requestHeaders) {
238
+ return requestHeaders ? cy.request(_objectSpread(_objectSpread({}, options), {}, {
239
+ headers: requestHeaders
240
+ })) : cy.log("No request headers found");
241
+ });
242
+ });
243
+ Cypress.Commands.add("reloadAndWait", function () {
244
+ var requestCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
245
+ if (requestCount > 0) {
246
+ cy.interceptApi("reloadAllRequests", requestCount);
247
+ cy.reload();
248
+ cy.waitForMultipleRequest("@reloadAllRequests", requestCount);
249
+ }
250
+ });
251
+ Cypress.Commands.add("selectOption", function (containerSelector, optionText) {
252
+ cy.openInSameTabOnClick;
253
+ cy.get(containerSelector).click().type(optionText);
254
+ cy.contains(commonSelectors.selectOption, optionText).invoke("click");
255
+ });
256
+ Cypress.Commands.add("clickDropdownOption", function (optionText) {
257
+ var dropdownSelector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : commonSelectors.dropdownIcon;
258
+ cy.get(dropdownSelector).click();
259
+ cy.get(commonSelectors.dropdownContainer).contains(optionText).invoke("click");
260
+ });
261
+ Cypress.Commands.add("getText", function (selector) {
262
+ return cy.get(selector).invoke("text");
263
+ });
264
+ Cypress.Commands.add("getValue", function (selector) {
265
+ return cy.get(selector).invoke("val");
266
+ });
267
+ Cypress.Commands.add("getIframe", function (iframeSelector) {
268
+ return cy.get(iframeSelector).its("0.contentDocument.body").should("not.be.empty");
269
+ });
270
+ Cypress.Commands.add("openInSameTabOnClick", function (_ref) {
271
+ var url = _ref.url,
272
+ alias = _ref.alias,
273
+ selector = _ref.selector;
274
+ cy.window().then(function (win) {
275
+ cy.stub(win, "open").as(alias).callsFake(function (newUrl) {
276
+ return win.location.href = newUrl;
277
+ });
278
+ });
279
+ cy.get(selector).click();
280
+ cy.get("@".concat(alias)).should("be.called");
281
+ cy.url().should("include", url);
282
+ });
283
+ Cypress.Commands.add("globalState", function (key) {
284
+ return cy.task("getGlobalState", key);
285
+ });
286
+
287
+ var loginSelectors = {
288
+ appleAuthenticationButton: dataCy("apple-authentication-button"),
289
+ emailTextField: dataCy("login-email-text-field"),
290
+ googleAuthenticationButton: dataCy("google-authentication-button"),
291
+ githubAuthenticationButton: dataCy("github-authentication-button"),
292
+ loginViaEmailButton: dataCy("login-via-email-button"),
293
+ otpField: dataCy("otpinput-otp-number"),
294
+ passwordTextField: dataCy("login-password-text-field"),
295
+ rememberMeCheckBox: dataCy("login-remember-me-check-box"),
296
+ submitButton: dataCy("login-submit-button"),
297
+ twitterAuthenticationButton: dataCy("twitter-authentication-button")
298
+ };
299
+
300
+ var memberSelectors = {
301
+ membersTab: dataCy$1("agent-nav-tab"),
302
+ newButton: dataCy$1("ntm-add-member-button"),
303
+ continueButton: dataCy$1("ntm-manage-member-continue-button"),
304
+ submitButton: dataCy$1("ntm-manage-member-submit-button"),
305
+ searchTextField: dataCy$1("ntm-search-members-input"),
306
+ email: "td:nth-child(3)",
307
+ role: "td:nth-child(4)",
308
+ deactivatedAgentsButton: dataCy$1("ntm-members-menubar-deactivated-block"),
309
+ activatedMembersButton: dataCy$1("ntm-members-menubar-active-block"),
310
+ columnCheckBox: dataCy$1("neeto-ui-columns-checkbox"),
311
+ adminRoleLabel: dataCy$1("admin-radio-label"),
312
+ agentRoleLabel: dataCy$1("agent-radio-label"),
313
+ dropDownIcon: dataCy$1("ntm-members-table-row-dropdown-button"),
314
+ menuBarHeading: dataCy$1("ntm-members-menubar-heading")
315
+ };
316
+ var memberFormSelectors = {
317
+ emailTextField: "input.neeto-ui-react-select__input:eq(0)"
318
+ };
319
+
320
+ var signUpSelectors = {
321
+ emailTextField: dataCy("signup-email-text-field"),
322
+ firstNameTextField: dataCy("signup-profile-first-name-text-field"),
323
+ lastNameTextField: dataCy("signup-profile-last-name-text-field"),
324
+ organizationNameTextField: dataCy("signup-organization-name-text-field"),
325
+ organizationSubmitButton: dataCy("signup-organization-submit-button"),
326
+ otpTextBox: dataCy("otpinput-otp-number"),
327
+ profileSubmitButton: dataCy("signup-profile-submit-button"),
328
+ signupViaEmailButton: dataCy("signup-via-email-button"),
329
+ submitButton: dataCy("signup-email-submit-button"),
330
+ subdomainNameTextField: dataCy("signup-organization-subdomain-text-field")
331
+ };
332
+
333
+ var commonTexts = {
334
+ activate: "Activate",
335
+ block: "Block",
336
+ copiedToClipboard: "Copied to clipboard!",
337
+ crossSiteScript: "<script>alert('XSS')</script>",
338
+ deactivate: "Deactivate",
339
+ "delete": "Delete ",
340
+ delete1: "Delete",
341
+ edit: "Edit",
342
+ invalidEmailMessage: "Please enter a valid email.",
343
+ invalidSearchInput: "Invalid search input",
344
+ logout: "Log out",
345
+ "new": "New",
346
+ takeAction: "Take action",
347
+ unblock: "Unblock"
348
+ };
349
+
350
+ var memberTexts = {
351
+ addMember: "Add new member",
352
+ admin: "Admin",
353
+ agent: "Agent",
354
+ agents: "Agents",
355
+ activeMembersHeading: "Active members",
356
+ accountActivatedToastMessage: function accountActivatedToastMessage(name) {
357
+ return "".concat(name, "'s account has been activated.");
358
+ },
359
+ activateMember: "Activate member",
360
+ activateMemberAlertMessage: function activateMemberAlertMessage(email) {
361
+ return "You are activating ".concat(email, ". Are you sure you want to proceed?");
362
+ },
363
+ addMemberToProducts: function addMemberToProducts(email) {
364
+ return "Add ".concat(email, " to the following neeto products.");
365
+ },
366
+ deactivateAccountToastMessage: function deactivateAccountToastMessage(name) {
367
+ return "".concat(name, "'s account has been deactivated.");
368
+ },
369
+ deactivateMember: "Deactivate member",
370
+ deactivateMemberAlertMessage: function deactivateMemberAlertMessage(email) {
371
+ return "You are deactivating ".concat(email, ". Are you sure you want to proceed?");
372
+ },
373
+ editMember: "Edit member",
374
+ inviteMessage: function inviteMessage(_ref) {
375
+ var email = _ref.email,
376
+ role = _ref.role,
377
+ appName = _ref.appName;
378
+ return "".concat(email, " will be invited to ").concat(appName, " with a role of ").concat(role, ".");
379
+ },
380
+ memberAddedMessage: "Added member successfully!",
381
+ members: "Members",
382
+ newHeading: "Add new member",
383
+ updatedMemberRole: function updatedMemberRole(email, role) {
384
+ return "Updated ".concat(email, "'s role to ").concat(role, ".");
385
+ }
386
+ };
387
+ var memberTableTexts = {
388
+ assignedTickets: "Assigned Tickets",
389
+ availabilityForDesk: "Availability for Desk",
390
+ created: "Created",
391
+ email: "Email",
392
+ name: "Name",
393
+ role: "Role",
394
+ teams: "Teams"
395
+ };
396
+
397
+ var signUpTexts = {
398
+ email: "Email",
399
+ profile: "profile",
400
+ tryItFree: "Try it FREE"
401
+ };
402
+
403
+ var verifySSOLoginPage = function verifySSOLoginPage() {
404
+ cy.log("verify Login Page");
405
+ cy.get(loginSelectors.githubAuthenticationButton).should("be.visible");
406
+ cy.get(loginSelectors.twitterAuthenticationButton).should("be.visible");
407
+ cy.get(loginSelectors.appleAuthenticationButton).should("be.visible");
408
+ cy.get(loginSelectors.googleAuthenticationButton).should("be.visible");
409
+ cy.log("verify Cross Site scripting");
410
+ cy.get(loginSelectors.loginViaEmailButton).click();
411
+ cy.clearAndType(loginSelectors.emailTextField, commonTexts.crossSiteScript);
412
+ cy.get(loginSelectors.submitButton).click();
413
+ cy.get(commonSelectors.windowAlert).should("not.exist");
414
+ cy.log("verify email login");
415
+ cy.get(commonSelectors.emailInputError).should("have.text", commonTexts.invalidEmailMessage);
416
+ cy.get(loginSelectors.emailTextField).clear();
417
+ cy.get(loginSelectors.submitButton).click();
418
+ cy.get(commonSelectors.emailInputError).should("have.text", commonTexts.invalidEmailMessage);
419
+ };
420
+ var logout = function logout(homeUrl) {
421
+ cy.get(profileSelectors.profileSidebar).click();
422
+ cy.get(profileSelectors.logoutLink).should("have.text", commonTexts.logout).invoke("click");
423
+ cy.url({
424
+ timeout: 15000
425
+ }).should("not.include", homeUrl);
426
+ };
427
+ var authUtils = {
428
+ verifySSOLoginPage: verifySSOLoginPage,
429
+ logout: logout
430
+ };
431
+
432
+ var currentDate = function currentDate() {
433
+ return dayjs().format("YYYY-MM-DD");
434
+ };
435
+ var futureDate = function futureDate() {
436
+ var numberOfDays = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
437
+ var now = dayjs().format("YYYY-MM-DD");
438
+ var date = now.add(numberOfDays, "day").format("YYYY-MM-DD");
439
+ return date;
440
+ };
441
+ var pastDate = function pastDate() {
442
+ var numberOfDays = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
443
+ var now = dayjs().format("YYYY-MM-DD");
444
+ var date = now.subtract(numberOfDays, "day").format("YYYY-MM-DD");
445
+ return date;
446
+ };
447
+ var dateUtils = {
448
+ currentDate: currentDate,
449
+ futureDate: futureDate,
450
+ pastDate: pastDate
451
+ };
452
+
453
+ var interceptMemberApi = function interceptMemberApi(alias) {
454
+ var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
455
+ return cy.intercept({
456
+ url: requestApis.teamMembers.all,
457
+ times: times
458
+ }).as(alias);
459
+ };
460
+ var navigateToMembersPage = function navigateToMembersPage() {
461
+ var waitForRequest = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
462
+ waitForRequest && interceptMemberApi("fetchMembers", 2);
463
+ cy.get(memberSelectors.membersTab).click();
464
+ cy.url().should("include", urlPaths.members);
465
+ waitForRequest && cy.waitForMultipleRequest("@fetchMembers", 2);
466
+ cy.get(commonSelectors.heading).should("have.text", memberTexts.activeMembersHeading);
467
+ };
468
+ var navigateToNewMemberPanel = function navigateToNewMemberPanel() {
469
+ var waitForRequest = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
470
+ navigateToMembersPage(waitForRequest);
471
+ cy.get(commonSelectors.heading).should("have.text", memberTexts.activeMembersHeading);
472
+ cy.get(memberSelectors.newButton).should("have.text", memberTexts.addMember).click();
473
+ cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.newHeading);
474
+ };
475
+ var addMemberViaUI = function addMemberViaUI(email) {
476
+ var role = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : memberTexts.agent;
477
+ cy.get(memberSelectors.newButton).should("be.visible").click();
478
+ cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.newHeading);
479
+ cy.get(memberFormSelectors.emailTextField).should("be.focused");
480
+ cy.typeAndEnter(memberFormSelectors.emailTextField, email);
481
+ role === memberTexts.agent ? cy.get(memberSelectors.agentRoleLabel).click() : cy.get(memberSelectors.adminRoleLabel).click();
482
+ cy.get(memberSelectors.continueButton).click();
483
+ if (isStagingEnv) {
484
+ cy.get(commonSelectors.checkboxLabel).should("have.text", memberTexts.addMemberToProducts(email));
485
+ cy.get(commonSelectors.paneBody).within(function () {
486
+ return cy.get(commonSelectors.checkbox).uncheck();
487
+ });
488
+ cy.get(memberSelectors.continueButton).click();
489
+ }
490
+ cy.get(commonSelectors.paneBody).should("contain.text", memberTexts.inviteMessage({
491
+ email: email,
492
+ role: role,
493
+ appName: "neetoDesk"
494
+ }));
495
+ interceptMemberApi("createAndFetchMember", 2);
496
+ cy.get(memberSelectors.submitButton).click();
497
+ cy.wait("@createAndFetchMember");
498
+ cy.verifyToastMessage(memberTexts.memberAddedMessage);
499
+ cy.wait("@createAndFetchMember");
500
+ cy.clearAndType(memberSelectors.searchTextField, email);
501
+ interceptMemberApi("searchRequest");
502
+ cy.clearAndType(memberSelectors.searchTextField, email);
503
+ cy.wait("@searchRequest");
504
+ cy.contains(tableSelectors.tableRow, email).should("be.visible");
505
+ };
506
+ var editMember = function editMember(_ref) {
507
+ var email = _ref.email,
508
+ role = _ref.role,
509
+ skipSearchRequest = _ref.skipSearchRequest;
510
+ verifyMemberDetails({
511
+ email: email,
512
+ skipSearchRequest: skipSearchRequest
513
+ }).within(function () {
514
+ return cy.clickDropdownOption(commonTexts.edit);
515
+ });
516
+ cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.editMember);
517
+ role === memberTexts.admin ? cy.get(memberSelectors.adminRoleLabel).click() : cy.get(memberSelectors.agentRoleLabel).click();
518
+ interceptMemberApi("updateAndFetchMember", 2);
519
+ cy.get(memberSelectors.submitButton).click();
520
+ cy.wait("@updateAndFetchMember");
521
+ cy.verifyToastMessage(memberTexts.updatedMemberRole(email, role.toLocaleLowerCase()));
522
+ cy.wait("@updateAndFetchMember");
523
+ verifyMemberDetails({
524
+ email: email,
525
+ role: memberTexts.admin
526
+ });
527
+ };
528
+ var verifyMemberDetails = function verifyMemberDetails(_ref2) {
529
+ var email = _ref2.email,
530
+ role = _ref2.role,
531
+ _ref2$skipSearchReque = _ref2.skipSearchRequest,
532
+ skipSearchRequest = _ref2$skipSearchReque === void 0 ? true : _ref2$skipSearchReque;
533
+ !skipSearchRequest && interceptMemberApi("searchRequest");
534
+ cy.clearAndTypeFast(memberSelectors.searchTextField, email);
535
+ !skipSearchRequest && cy.wait("@searchRequest");
536
+ return cy.contains(commonSelectors.tableRow, email).within(function () {
537
+ cy.get(memberSelectors.email).should("have.text", email);
538
+ role && cy.get(memberSelectors.role).should("have.text", role);
539
+ });
540
+ };
541
+ var verifyActivatedMember = function verifyActivatedMember(_ref3) {
542
+ var email = _ref3.email,
543
+ _ref3$skipFetchReques = _ref3.skipFetchRequest,
544
+ skipFetchRequest = _ref3$skipFetchReques === void 0 ? false : _ref3$skipFetchReques,
545
+ _ref3$skipSearchReque = _ref3.skipSearchRequest,
546
+ skipSearchRequest = _ref3$skipSearchReque === void 0 ? true : _ref3$skipSearchReque;
547
+ cy.get(commonSelectors.toggleButton).click();
548
+ cy.get(memberSelectors.menuBarHeading).should("have.text", memberTexts.members);
549
+ !skipFetchRequest && interceptMemberApi("fetchActivatedMembers");
550
+ cy.get(memberSelectors.activatedMembersButton).click();
551
+ !skipFetchRequest && cy.wait("@fetchActivatedMembers");
552
+ verifyMemberDetails({
553
+ email: email,
554
+ skipSearchRequest: skipSearchRequest
555
+ });
556
+ cy.get(commonSelectors.toggleButton).click();
557
+ };
558
+ var verifyDeactivatedMember = function verifyDeactivatedMember(_ref4) {
559
+ var email = _ref4.email,
560
+ _ref4$skipFetchReques = _ref4.skipFetchRequest,
561
+ skipFetchRequest = _ref4$skipFetchReques === void 0 ? false : _ref4$skipFetchReques,
562
+ _ref4$skipSearchReque = _ref4.skipSearchRequest,
563
+ skipSearchRequest = _ref4$skipSearchReque === void 0 ? true : _ref4$skipSearchReque;
564
+ cy.get(commonSelectors.toggleButton).click();
565
+ cy.get(memberSelectors.menuBarHeading).should("have.text", memberTexts.members);
566
+ !skipFetchRequest && interceptMemberApi("fetchDeactivatedMembers");
567
+ cy.get(memberSelectors.deactivatedAgentsButton).click();
568
+ !skipFetchRequest && cy.wait("@fetchDeactivatedMembers");
569
+ verifyMemberDetails({
570
+ email: email,
571
+ skipSearchRequest: skipSearchRequest
572
+ });
573
+ cy.get(commonSelectors.toggleButton).click();
574
+ };
575
+ var verifyActivateAlert = function verifyActivateAlert(email) {
576
+ var skipSearchRequest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
577
+ verifyMemberDetails({
578
+ email: email,
579
+ skipSearchRequest: skipSearchRequest
580
+ }).within(function () {
581
+ return cy.clickDropdownOption(commonTexts.activate);
582
+ });
583
+ cy.get(commonSelectors.alertTitle).should("have.text", memberTexts.activateMember);
584
+ cy.get(commonSelectors.alertModalMessage).should("have.text", memberTexts.activateMemberAlertMessage(email));
585
+ };
586
+ var deactivateMember = function deactivateMember(_ref5) {
587
+ var email = _ref5.email,
588
+ _ref5$skipSearchReque = _ref5.skipSearchRequest,
589
+ skipSearchRequest = _ref5$skipSearchReque === void 0 ? true : _ref5$skipSearchReque;
590
+ verifyMemberDetails({
591
+ email: email,
592
+ skipSearchRequest: skipSearchRequest
593
+ }).within(function () {
594
+ return cy.clickDropdownOption(commonTexts.deactivate);
595
+ });
596
+ interceptMemberApi("deactivateAndFetchMember", 2);
597
+ cy.get(commonSelectors.alertModalSubmitButton).click();
598
+ cy.wait("@deactivateAndFetchMember");
599
+ cy.verifyToastMessage(memberTexts.deactivateAccountToastMessage(email));
600
+ cy.wait("@deactivateAndFetchMember");
601
+ verifyDeactivatedMember({
602
+ email: email
603
+ });
604
+ };
605
+ var activateMember = function activateMember(_ref6) {
606
+ var email = _ref6.email,
607
+ _ref6$skipSearchReque = _ref6.skipSearchRequest,
608
+ skipSearchRequest = _ref6$skipSearchReque === void 0 ? true : _ref6$skipSearchReque;
609
+ verifyActivateAlert(email, skipSearchRequest);
610
+ interceptMemberApi("activateAndFetchMember", 2);
611
+ cy.get(commonSelectors.alertModalSubmitButton).click();
612
+ cy.wait("@activateAndFetchMember");
613
+ cy.verifyToastMessage(memberTexts.accountActivatedToastMessage(email));
614
+ cy.wait("@activateAndFetchMember");
615
+ verifyActivatedMember({
616
+ email: email
617
+ });
618
+ };
619
+ var checkColumnCheckBox = function checkColumnCheckBox(fieldSelector) {
620
+ return cy.get(fieldSelector).parent().within(function () {
621
+ cy.get(memberSelectors.columnCheckBox).should("be.checked").uncheck().should("not.be.checked");
622
+ });
623
+ };
624
+ var unCheckColumnCheckBox = function unCheckColumnCheckBox(fieldSelector) {
625
+ return cy.get(fieldSelector).parent().within(function () {
626
+ cy.get(memberSelectors.columnCheckBox).should("not.be.checked").check().should("be.checked");
627
+ });
628
+ };
629
+ var addMemberViaRequest = function addMemberViaRequest(_ref7) {
630
+ var email = _ref7.email,
631
+ _ref7$role = _ref7.role,
632
+ role = _ref7$role === void 0 ? memberTexts.agent : _ref7$role,
633
+ _ref7$requestCount = _ref7.requestCount,
634
+ requestCount = _ref7$requestCount === void 0 ? 0 : _ref7$requestCount,
635
+ appName = _ref7.appName;
636
+ cy.apiRequest({
637
+ method: "POST",
638
+ url: requestApis.teamMembers.index,
639
+ body: {
640
+ user: {
641
+ emails: [email],
642
+ organization_role: role,
643
+ app_roles: [{
644
+ app_name: appName,
645
+ active_role: role,
646
+ is_enabled: true
647
+ }]
648
+ }
649
+ }
650
+ });
651
+ cy.reloadAndWait(requestCount);
652
+ };
653
+ var deactivateMemberViaRequest = function deactivateMemberViaRequest(email) {
654
+ var requestCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
655
+ cy.apiRequest({
656
+ method: "PATCH",
657
+ url: requestApis.teamMembers.bulkUpdate,
658
+ body: {
659
+ users: {
660
+ active: false,
661
+ emails: [email]
662
+ }
663
+ }
664
+ });
665
+ cy.reloadAndWait(requestCount);
666
+ };
667
+ var memberUtils = {
668
+ addMemberViaRequest: addMemberViaRequest,
669
+ addMemberViaUI: addMemberViaUI,
670
+ activateMember: activateMember,
671
+ checkColumnCheckBox: checkColumnCheckBox,
672
+ deactivateMember: deactivateMember,
673
+ deactivateMemberViaRequest: deactivateMemberViaRequest,
674
+ editMember: editMember,
675
+ interceptMemberApi: interceptMemberApi,
676
+ navigateToMembersPage: navigateToMembersPage,
677
+ navigateToNewMemberPanel: navigateToNewMemberPanel,
678
+ unCheckColumnCheckBox: unCheckColumnCheckBox,
679
+ verifyActivatedMember: verifyActivatedMember,
680
+ verifyActivateAlert: verifyActivateAlert,
681
+ verifyDeactivatedMember: verifyDeactivatedMember,
682
+ verifyMemberDetails: verifyMemberDetails
683
+ };
684
+
685
+ var createOrganization = function createOrganization(_ref) {
686
+ var email = _ref.email,
687
+ businessName = _ref.businessName,
688
+ subdomainName = _ref.subdomainName,
689
+ firstName = _ref.firstName,
690
+ lastName = _ref.lastName,
691
+ baseUrl = _ref.baseUrl;
692
+ var otp = "123456";
693
+ cy.visit(baseUrl);
694
+ cy.contains(signUpTexts.tryItFree).click();
695
+ cy.get(signUpSelectors.signupViaEmailButton).should("contain.text", signUpTexts.email).click();
696
+ cy.clearAndType(signUpSelectors.emailTextField, email);
697
+ cy.intercept({
698
+ url: requestApis.signUp,
699
+ times: 2
700
+ }).as("signupRequest");
701
+ cy.get(signUpSelectors.submitButton).click();
702
+ cy.wait("@signupRequest");
703
+ cy.get(signUpSelectors.otpTextBox).type(otp);
704
+ cy.wait("@signupRequest");
705
+ cy.clearAndType(signUpSelectors.organizationNameTextField, businessName);
706
+ cy.intercept({
707
+ url: requestApis.subdomainAvailablity,
708
+ times: 1
709
+ }).as("subdomainRequest");
710
+ cy.clearAndType(signUpSelectors.subdomainNameTextField, subdomainName);
711
+ cy.wait("@subdomainRequest");
712
+ cy.get(signUpSelectors.organizationNameTextField).should("have.value", businessName);
713
+ cy.get(signUpSelectors.subdomainNameTextField).should("have.value", subdomainName);
714
+ cy.intercept({
715
+ url: requestApis.signUp,
716
+ times: 1
717
+ }).as("signupRequest");
718
+ cy.intercept({
719
+ url: requestApis.countries,
720
+ times: 1
721
+ }).as("fetchCountries");
722
+ cy.get(signUpSelectors.organizationSubmitButton).click();
723
+ cy.wait("@signupRequest");
724
+ cy.url({
725
+ timeout: 15000
726
+ }).should("include", signUpTexts.profile);
727
+ cy.wait("@fetchCountries");
728
+ cy.clearAndType(signUpSelectors.firstNameTextField, firstName);
729
+ cy.clearAndType(signUpSelectors.lastNameTextField, lastName);
730
+ cy.intercept({
731
+ url: requestApis.signUp,
732
+ times: 1
733
+ }).as("setupProfile");
734
+ cy.get(signUpSelectors.profileSubmitButton).click();
735
+ cy.wait("@setupProfile");
736
+ };
737
+
738
+ var verifyCrossSiteScript = function verifyCrossSiteScript(inputSelector, submitSelector) {
739
+ cy.interceptApi("searchRequest");
740
+ cy.clearAndType(inputSelector, commonTexts.crossSiteScript);
741
+ submitSelector && cy.get(submitSelector).click();
742
+ cy.wait("@searchRequest");
743
+ cy.get(commonSelectors.windowAlert).should("not.exist");
744
+ };
745
+
746
+ export { authUtils, commonSelectors, commonTexts, createOrganization, dataCy, dateUtils, environment, getTestTitle, getUrl, initializeCredentials, isStagingEnv, loginSelectors, memberFormSelectors, memberSelectors, memberTableTexts, memberTexts, memberUtils, profileSelectors, setListCount, signUpSelectors, signUpTexts, tableSelectors, verifyCrossSiteScript, verifyListCount };