@bigbinary/neeto-commons-frontend 2.1.36 → 2.1.38

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.
@@ -24,16 +24,32 @@ type CommonSelectors = {
24
24
  cancelButton: string;
25
25
  inputFieldError: string;
26
26
  selectDropDownError: string;
27
- subTitleHeading: (index: string) => string;
27
+ subTitleHeading: (index: number) => string;
28
28
  noDataTitle: string;
29
29
  noDataDescription: string;
30
- backDrop: string;
30
+ backdrop: string;
31
31
  menuBarHeading: string;
32
- tabItem: (index: string) => string;
33
- dropdownWrapper: (index: string) => string;
32
+ tabItem: string;
33
+ dropdownWrapper: (index: number) => string;
34
34
  toggleButton: string;
35
35
  tooltip: string;
36
36
  articlePageTitle: string;
37
+ labelInputError: string;
38
+ urlInputError: string;
39
+ noDataPrimaryButton: string;
40
+ modalHeader: string;
41
+ nameInputError: string;
42
+ selectContainer: string;
43
+ dropdownMenu: string;
44
+ nthDropdownIcon: (index: number) => string;
45
+ sidebarToggle: string;
46
+ customDataCy: (name: string) => string;
47
+ leftSubHeader: string;
48
+ subheader: string;
49
+ settingsLink: string;
50
+ nthInputField: (index: number) => string;
51
+ nthTabItem: (index: number) => string;
52
+ ticketFieldTextInput: (label: string) => string;
37
53
  };
38
54
  type MemberSelectors = {
39
55
  activatedMembersButton: string;
@@ -52,7 +68,6 @@ type MemberSelectors = {
52
68
  roleLabel: (role: string) => string;
53
69
  searchTextField: string;
54
70
  submitButton: string;
55
- subHeader: string;
56
71
  columnsButton: string;
57
72
  columnsDropdownContainer: string;
58
73
  emailDropdownItemLabel: string;
@@ -90,6 +105,9 @@ type ProfileSelectors = {
90
105
  profileOptionsContainer: string;
91
106
  myProfileButton: string;
92
107
  organizationSettingsButton: string;
108
+ appSwitcherBody: string;
109
+ sidebarInfo: string;
110
+ appSwitcherBackButton: string;
93
111
  };
94
112
  interface TableSelectors {
95
113
  nthColumn: (n: number) => string;
@@ -130,6 +148,85 @@ type ChatWidgetSelectors = {
130
148
  chatCloseButton: string;
131
149
  widgetIframe: string;
132
150
  };
151
+ type NeetoEditorSelectors = {
152
+ boldOption: string;
153
+ italicOption: string;
154
+ underlineOption: string;
155
+ strikeOption: string;
156
+ codeBlockOption: string;
157
+ highlightOption: string;
158
+ linkInput: string;
159
+ linkSubmitButton: string;
160
+ commandList: (index: number) => string;
161
+ imageUploadUrlSubmitButton: string;
162
+ imageUploadUrlInputTextField: string;
163
+ uploadInput: string;
164
+ editorMenuBarWrapper: string;
165
+ undoOption: string;
166
+ redoOption: string;
167
+ imageWrapper: string;
168
+ };
169
+ type IpRestrictionSelectors = {
170
+ addButton: string;
171
+ ipStartTextField: (index: number) => string;
172
+ ipEndTextField: string;
173
+ cancelButton: string;
174
+ ipRangeRow: string;
175
+ enableIpRestrictionCheckbox: string;
176
+ };
177
+ type RolesSelectors = {
178
+ newButton: string;
179
+ proceedButton: string;
180
+ cancelButton: string;
181
+ tableHeaderRoleName: string;
182
+ nameTextField: string;
183
+ searchTextField: string;
184
+ updateRolePaneHeading: string;
185
+ updateRoleCancelButton: string;
186
+ descriptionTextField: string;
187
+ permissionCategoryTitle: string;
188
+ headerColumn: string;
189
+ dropDownIcon: string;
190
+ tableHeaderRoleTitle: string;
191
+ };
192
+ type TagsSelectors = {
193
+ newTagButton: string;
194
+ tagNameTextField: string;
195
+ editButton: string;
196
+ deleteButton: string;
197
+ cancelButton: string;
198
+ submitButton: string;
199
+ searchTextField: string;
200
+ descriptionTextArea: string;
201
+ };
202
+ type MergeTagsSelectors = {
203
+ mergeTagsButton: string;
204
+ mergeButton: string;
205
+ sourceSearchTextField: string;
206
+ sourceTagsList: string;
207
+ destinationTagsList: string;
208
+ destinationSearchTextField: string;
209
+ cancelButton: string;
210
+ proceedButton: string;
211
+ disabledTag: string;
212
+ };
213
+ type NeetoFiltersSelectors = {
214
+ emailSelectContainer: string;
215
+ filterPaneHeading: string;
216
+ neetoFiltersEmailBlock: string;
217
+ neetoFiltersRoleBlock: string;
218
+ neetoFiltersBarClearButton: string;
219
+ neetoFiltersNameFilterField: string;
220
+ neetoFilterNameBlock: string;
221
+ roleSelectContainer: string;
222
+ filterButton: string;
223
+ filtersClearButton: string;
224
+ filterDoneButton: string;
225
+ filteredMembersCount: string;
226
+ allMenubarBlock: string;
227
+ filtersEmailFilter: string;
228
+ paneModalCrossIcon: string;
229
+ };
133
230
 
134
231
  // texts ------------------------------------------------
135
232
  type CommonTexts = {
@@ -157,6 +254,11 @@ type CommonTexts = {
157
254
  unsavedChangesAlertMessage: string;
158
255
  clearFilters: string;
159
256
  filters: string;
257
+ descriptionRequiredMessage: string;
258
+ deactivated: string;
259
+ nameExistsMsg: string;
260
+ cancel: string;
261
+ continue: string;
160
262
  };
161
263
  type MemberText = {
162
264
  addMember: string;
@@ -223,6 +325,37 @@ type ProfileTexts = {
223
325
  profileSettings: string;
224
326
  myOrganization: string;
225
327
  };
328
+ type RolesTexts = {
329
+ newRole: string;
330
+ editRole: string;
331
+ nameRequiredErrorMessage: string;
332
+ deleteRole: string;
333
+ alertMessage: (roleName: string) => string;
334
+ adminPermissionsNotBeChangeMessage: string;
335
+ manageRoles: string;
336
+ manageRolesAndPermissions: string;
337
+ roles: string;
338
+ noRolesText: string;
339
+ searchRoles: string;
340
+ namePlaceholder: string;
341
+ descriptionPlaceholder: string;
342
+ };
343
+ type TagsTexts = {
344
+ articleTags: string;
345
+ addNewTag: string;
346
+ createTag: string;
347
+ editTag: string;
348
+ alertMessage: (tagName: string) => string;
349
+ tagNameRequiredMessage: string;
350
+ alertTitle: string;
351
+ noTagsFoundText: string;
352
+ manageTags: string;
353
+ createAndManageTags: string;
354
+ searchPlaceHolder: string;
355
+ noTagsText: string;
356
+ mergeTags: string;
357
+ mergeTagsAlertMessage: (sourceTag: string, destinationTag: string) => string;
358
+ };
226
359
 
227
360
  // fixtures ---------------------------------------------
228
361
 
@@ -477,6 +610,12 @@ export const signUpSelectors: SignUpSelectors;
477
610
  export const memberFormSelectors: MemberFormSelectors;
478
611
  export const helpIconSelectors: HelpIconSelectors;
479
612
  export const chatWidgetSelectors: ChatWidgetSelectors;
613
+ export const mergeTagsSelectors: MergeTagsSelectors;
614
+ export const tagsSelectors: TagsSelectors;
615
+ export const rolesSelectors: RolesSelectors;
616
+ export const ipRestrictionSelectors: IpRestrictionSelectors;
617
+ export const neetoEditorSelectors: NeetoEditorSelectors;
618
+ export const neetoFiltersSelectors: NeetoFiltersSelectors;
480
619
 
481
620
  // exporting all texts
482
621
 
@@ -489,6 +628,8 @@ export const environment: Environment;
489
628
  export const isStagingEnv: boolean;
490
629
  export const helpIconTexts: HelpIconTexts;
491
630
  export const profileTexts: ProfileTexts;
631
+ export const rolesTexts: RolesTexts;
632
+ export const tagsTexts: TagsTexts;
492
633
  export const env: Environments;
493
634
 
494
635
  //exporting fixtures
package/cypress-utils.js CHANGED
@@ -125,6 +125,14 @@ var joinHyphenCase = function joinHyphenCase() {
125
125
  }
126
126
  return args.join(" ").replace(/\s+/g, "-").toLowerCase();
127
127
  };
128
+ var hyphenize = function hyphenize(input) {
129
+ var fallbackString = "";
130
+ if (typeof input === "number") return String(input);
131
+ if (input && typeof input === "string" && input.replace) {
132
+ return input.replace(/[\s_]/g, "-").replace(/([a-z])([A-Z])/g, "$1-$2").replace(/-+/g, "-").toLowerCase();
133
+ }
134
+ return fallbackString;
135
+ };
128
136
  var initializeCredentials = function initializeCredentials(stagingData) {
129
137
  cy.task("getGlobalState").then(function (state) {
130
138
  var newState = _objectSpread$2(_objectSpread$2({}, state), {}, {
@@ -175,31 +183,43 @@ Object.defineProperty(requestApis, "allPath", {
175
183
  get: allPath
176
184
  });
177
185
 
186
+ function _taggedTemplateLiteral(strings, raw) {
187
+ if (!raw) {
188
+ raw = strings.slice(0);
189
+ }
190
+ return Object.freeze(Object.defineProperties(strings, {
191
+ raw: {
192
+ value: Object.freeze(raw)
193
+ }
194
+ }));
195
+ }
196
+
197
+ var _templateObject;
178
198
  var commonSelectors = {
179
199
  alertTitle: dataCy("alert-title"),
180
200
  alertModalMessage: dataCy("alert-message"),
181
201
  alertModalSubmitButton: dataCy("alert-submit-button"),
182
- checkbox: ".neeto-ui-checkbox",
202
+ checkbox: dataCy("nui-checkbox-input"),
183
203
  checkboxLabel: dataCy("nui-checkbox-label"),
184
204
  dropdownContainer: dataCy("nui-dropdown-container"),
185
205
  dropdownIcon: dataCy("nui-dropdown-icon"),
186
206
  heading: dataCy("main-header"),
187
- paneBody: ".neeto-ui-pane__body",
188
- paneHeader: ".neeto-ui-pane__header",
189
- profileSidebar: ".neeto-ui-profile-sidebar",
207
+ paneBody: dataCy("pane-body"),
208
+ paneHeader: dataCy("pane-header"),
209
+ profileSidebar: dataCy("profile-section"),
190
210
  selectOption: function selectOption(label) {
191
- return dataCy("".concat(joinHyphenCase(label), "-select-option"));
211
+ return dataCy("".concat(hyphenize(label), "-select-option"));
192
212
  },
193
213
  toastMessage: dataCy("toastr-message-container"),
194
- toastCloseButton: ".neeto-ui-toastr__close-button",
214
+ toastCloseButton: dataCy("toastr-close-button"),
195
215
  windowAlert: "#alert-box",
196
216
  body: "body",
197
217
  toastIcon: ".Toastify__toast-icon",
198
- paneModalCrossIcon: ".neeto-ui-pane__close",
218
+ paneModalCrossIcon: dataCy("pane-close-button"),
199
219
  inputField: dataCy("nui-input-field"),
200
220
  alertConfirmationText: dataCy("alert-confirmation-text"),
201
221
  alertCancelButton: dataCy("alert-cancel-button"),
202
- alertModalCrossIcon: ".neeto-ui-modal__close",
222
+ alertModalCrossIcon: dataCy("modal-close-button"),
203
223
  saveChangesButton: dataCy("save-changes-button"),
204
224
  cancelButton: dataCy("cancel-button"),
205
225
  inputFieldError: dataCy("nui-input-error"),
@@ -209,17 +229,41 @@ var commonSelectors = {
209
229
  },
210
230
  noDataTitle: dataCy("no-data-title"),
211
231
  noDataDescription: dataCy("no-data-description"),
212
- backDrop: "[data-testid='backdrop']",
232
+ backdrop: dataCy("neeto-backdrop"),
213
233
  menuBarHeading: dataCy("menubar-heading"),
214
- tabItem: function tabItem(index) {
234
+ nthTabItem: function nthTabItem(index) {
215
235
  return dataCy("tab-item", ":eq(".concat(index, ")"));
216
236
  },
217
237
  dropdownWrapper: function dropdownWrapper(index) {
218
238
  return dataCy("nui-select-container-wrapper", ":eq(".concat(index, ")"));
219
239
  },
220
240
  toggleButton: dataCy("menubar-toggle-button"),
221
- tooltip: ".tippy-box",
222
- articlePageTitle: ".serene-article__title"
241
+ tooltip: dataCy("tooltip-box"),
242
+ articlePageTitle: ".serene-article__title",
243
+ tabItem: dataCy("tab-item"),
244
+ labelInputError: dataCy("label-input-error"),
245
+ urlInputError: dataCy("url-input-error"),
246
+ noDataPrimaryButton: dataCy("no-data-primary-button"),
247
+ modalHeader: dataCy("modal-header"),
248
+ nameInputError: dataCy("name-input-error"),
249
+ selectContainer: dataCy("nui-select-container"),
250
+ dropdownMenu: dataCy("nui-select-menu"),
251
+ nthDropdownIcon: function nthDropdownIcon(index) {
252
+ return dataCy("nui-dropdown-icon", ":eq(".concat(index, ")"));
253
+ },
254
+ sidebarToggle: dataCy("neeto-molecules-sidebar-toggler"),
255
+ customDataCy: function customDataCy(name) {
256
+ return dataCy(name);
257
+ },
258
+ leftSubHeader: dataCy("subheader-left"),
259
+ subheader: dataCy("subheader"),
260
+ settingsLink: dataCy("Settings"),
261
+ nthInputField: function nthInputField(index) {
262
+ return dataCy("nui-input-field"(_templateObject || (_templateObject = _taggedTemplateLiteral([":eq(", ")"])), index));
263
+ },
264
+ ticketFieldTextInput: function ticketFieldTextInput(label) {
265
+ return dataCy("".concat(hyphenize(label), "-text-input"));
266
+ }
223
267
  };
224
268
  var tableSelectors = {
225
269
  nthColumn: function nthColumn(n) {
@@ -236,10 +280,12 @@ var tableSelectors = {
236
280
  var profileSelectors = {
237
281
  tab: dataCy("profile-section"),
238
282
  logoutLink: dataCy("profile-logout-button"),
239
- profileOptionsContainer: '[class="tippy-box sidebar-featured-tooltip__content"]',
240
283
  myProfileButton: dataCy("my-profile-button"),
241
284
  organizationSettingsButton: dataCy("profile-organization-settings-button"),
242
- loader: dataTestId("spinner")
285
+ loader: dataTestId("spinner"),
286
+ appSwitcherBody: dataCy("app-switcher-body-wrapper"),
287
+ sidebarInfo: dataCy("sidebar-info"),
288
+ appSwitcherBackButton: dataCy("app-switcher-back-button")
243
289
  };
244
290
 
245
291
  var commonTexts = {
@@ -266,7 +312,13 @@ var commonTexts = {
266
312
  unsavedChangesAlertTitle: "You have unsaved changes!",
267
313
  unsavedChangesAlertMessage: "Are you sure you want to continue? All of your unsaved changes will be lost.",
268
314
  clearFilters: "Clear filters",
269
- filters: "Filters"
315
+ filters: "Filters",
316
+ descriptionRequiredMessage: "Description is required.",
317
+ active: "active",
318
+ deactivated: "deactivated",
319
+ nameExistsMsg: "Name already exists",
320
+ cancel: "Cancel",
321
+ "continue": "Continue"
270
322
  };
271
323
 
272
324
  function ownKeys$1(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; }
@@ -358,7 +410,7 @@ var initCustomCommands = function initCustomCommands() {
358
410
  });
359
411
  Cypress.Commands.add("selectOption", function (containerSelector, optionText) {
360
412
  cy.get(containerSelector).click().type(optionText);
361
- cy.get(commonSelectors.selectOption(optionText.split("_").join("-").toLowerCase())).invoke("click");
413
+ cy.get(commonSelectors.selectOption(optionText)).invoke("click");
362
414
  });
363
415
  Cypress.Commands.add("clickDropdownOption", function (optionText) {
364
416
  var dropdownSelector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : commonSelectors.dropdownIcon;
@@ -550,9 +602,6 @@ var memberSelectors = {
550
602
  continueButton: dataCy("ntm-manage-member-continue-button"),
551
603
  submitButton: dataCy("ntm-manage-member-submit-button"),
552
604
  searchTextField: dataCy("ntm-search-members-input"),
553
- email: "td:nth-child(3)",
554
- name: "td:nth-child(2)",
555
- role: "td:nth-child(4)",
556
605
  deactivatedAgentsButton: dataCy("ntm-members-menubar-deactivated-block"),
557
606
  activatedMembersButton: dataCy("ntm-members-menubar-active-block"),
558
607
  columnCheckBox: dataCy("neeto-ui-columns-checkbox"),
@@ -563,7 +612,6 @@ var memberSelectors = {
563
612
  editButton: dataCy("ntm-edit-member-button"),
564
613
  menuBarHeading: dataCy("ntm-members-menubar-heading"),
565
614
  activateOrDeactivateMember: dataCy("ntm-deactivate-member-button"),
566
- subHeader: "[data-testid='subheader']",
567
615
  columnsButton: dataCy("columns-dropdown-button"),
568
616
  columnsDropdownContainer: dataCy("columns-dropdown-container"),
569
617
  emailDropdownItemLabel: dataCy("email-checkbox-label"),
@@ -578,13 +626,30 @@ var memberSelectors = {
578
626
  statusTag: dataCy("ntm-member-status-tag")
579
627
  };
580
628
  var memberFormSelectors = {
581
- emailTextField: "input.neeto-ui-react-select__input:eq(0)",
629
+ emailTextField: dataCy("email-select-input-field"),
582
630
  firstNameTextField: dataCy("ntm-edit-member-first-name-text-field"),
583
631
  lastNameTextField: dataCy("ntm-edit-member-last-name-text-field"),
584
632
  emailInput: dataCy("ntm-manage-member-email-input"),
585
633
  emailErrorField: dataCy("emails-input-error"),
586
634
  cancelButton: dataCy("ntm-manage-member-cancel-button")
587
635
  };
636
+ var neetoFiltersSelectors = {
637
+ emailSelectContainer: dataCy("email-select-container-wrapper"),
638
+ filterPaneHeading: dataCy("neeto-filters-pane-header"),
639
+ neetoFiltersEmailBlock: dataCy("neeto-filters-email-block"),
640
+ neetoFiltersRoleBlock: dataCy("neeto-filters-role-block"),
641
+ neetoFiltersBarClearButton: dataCy("neeto-filters-bar-clear-btn"),
642
+ neetoFiltersNameFilterField: dataCy("neeto-filters-name-filter"),
643
+ neetoFilterNameBlock: dataCy("neeto-filters-name-block"),
644
+ roleSelectContainer: dataCy("role-select-container-wrapper"),
645
+ filterButton: dataCy("neeto-filters-toggle-btn"),
646
+ filtersClearButton: dataCy("neeto-filters-clear-btn"),
647
+ filterDoneButton: dataCy("neeto-filters-done-btn"),
648
+ filteredMembersCount: dataCy("ntm-filtered-members-count"),
649
+ allMenubarBlock: dataCy("ntm-members-menubar-all-block"),
650
+ filtersEmailFilter: dataCy("neeto-filters-email-filter"),
651
+ paneModalCrossIcon: dataCy("neeto-filters-close-button")
652
+ };
588
653
 
589
654
  var signUpSelectors = {
590
655
  emailTextField: dataCy("signup-email-text-field"),
@@ -609,13 +674,13 @@ var helpIconSelectors = {
609
674
  whatsNewButton: dataCy("help-link-changelog-button"),
610
675
  whatsNewWidgetInfo: "h1",
611
676
  whatsNewWidgetCloseButton: ".nc-widget-header__btn",
612
- keyboardShortcutPaneHeading: ".h-full > .neeto-ui-border-gray-300",
613
- keyboardShortcutPaneCrossIcon: ".neeto-ui-border-gray-300 > .neeto-ui-btn"
677
+ keyboardShortcutPaneHeading: dataCy("keyboard-shortcuts-pane-title"),
678
+ keyboardShortcutPaneCrossIcon: dataCy("keyboard-shortcuts-pane-close-button")
614
679
  };
615
680
  var chatWidgetSelectors = {
616
681
  chatWidgetHomeCard: ".neeto-chat-widget-home__card-content",
617
- widgetSubmitButton: ".neeto-chat-widget-button",
618
- chatBubbleMessage: ".neeto-chat-widget-chat-bubble__message",
682
+ widgetSubmitButton: dataCy("neeto-chat-widget-pre-chat-submit-btn"),
683
+ chatBubbleMessage: dataCy("neeto-chat-widget-chat-message-bubble"),
619
684
  chatCloseButton: ".neeto-chat-widget-icon--close",
620
685
  widgetIframe: "#neetochat-iframe"
621
686
  };
@@ -1235,11 +1300,11 @@ var verifyMemberDetails = function verifyMemberDetails(_ref3) {
1235
1300
  });
1236
1301
  !skipSearchRequest && cy.wait("@searchMember");
1237
1302
  return cy.contains(tableSelectors.tableRow, email).within(function () {
1238
- cy.get(memberSelectors.email).should("have.text", email);
1239
- cy.get(memberSelectors.name).within(function () {
1303
+ cy.get(tableSelectors.nthColumn(3)).should("have.text", email);
1304
+ cy.get(tableSelectors.nthColumn(2)).within(function () {
1240
1305
  name && cy.get("p").should("have.text", name);
1241
1306
  });
1242
- role && cy.get(memberSelectors.role).should("have.text", role);
1307
+ role && cy.get(tableSelectors.nthColumn(4)).should("have.text", role);
1243
1308
  statusTag && cy.get(memberSelectors.statusTag).should("have.text", statusTag);
1244
1309
  });
1245
1310
  };
@@ -1434,7 +1499,7 @@ var deactivateMemberViaRequest = function deactivateMemberViaRequest(email) {
1434
1499
  cy.reloadAndWait(requestCount);
1435
1500
  };
1436
1501
  var clickOnColumnIcon = function clickOnColumnIcon() {
1437
- cy.get(memberSelectors.subHeader).should("exist").within(function () {
1502
+ cy.get(commonSelectors.subheader).should("exist").within(function () {
1438
1503
  cy.get(memberSelectors.columnsButton).click();
1439
1504
  });
1440
1505
  };
@@ -1715,5 +1780,5 @@ var emailUtils = {
1715
1780
  sendEmail: sendEmail
1716
1781
  };
1717
1782
 
1718
- export { authUtils, chatWidgetSelectors, commonSelectors, commonTexts, createOrganization, dataCy, dataTestId, dateUtils, emailUtils, env, environment, fake, getTestTitle, getUrl, helpIconSelectors, helpIconTexts, initCustomCommands, initializeCredentials, isStagingEnv, joinHyphenCase, loginSelectors, memberFormErrorTexts, memberFormSelectors, memberSelectors, memberTableTexts, memberTexts, memberUtils, navigationUtils, profileSelectors, profileTexts, sendEmail, setListCount, signUpSelectors, signUpTexts, tableSelectors, verifyCrossSiteScript, verifyListCount };
1783
+ export { authUtils, chatWidgetSelectors, commonSelectors, commonTexts, createOrganization, dataCy, dataTestId, dateUtils, emailUtils, env, environment, fake, getTestTitle, getUrl, helpIconSelectors, helpIconTexts, hyphenize, initCustomCommands, initializeCredentials, isStagingEnv, joinHyphenCase, loginSelectors, memberFormErrorTexts, memberFormSelectors, memberSelectors, memberTableTexts, memberTexts, memberUtils, navigationUtils, neetoFiltersSelectors, profileSelectors, profileTexts, sendEmail, setListCount, signUpSelectors, signUpTexts, tableSelectors, verifyCrossSiteScript, verifyListCount };
1719
1784
  //# sourceMappingURL=cypress-utils.js.map