@bigbinary/neeto-playwright-commons 1.24.4 → 1.24.5

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.js CHANGED
@@ -6,7 +6,7 @@ import test, { expect, test as test$1, chromium as chromium$1, defineConfig, dev
6
6
  import { getI18nInstance, initI18n } from 'playwright-i18next-fixture';
7
7
  import require$$0$4 from 'util';
8
8
  import { curry, not, isEmpty, pluck, mergeDeepLeft, isNil, isNotNil, mergeAll } from 'ramda';
9
- import { hyphenate, isPresent, isNotPresent, humanize, keysToSnakeCase, dynamicArray, truncate, isNotEmpty, findBy, isNotEqualDeep, randomPick } from '@bigbinary/neeto-cist';
9
+ import { hyphenate, isPresent, isNotPresent, humanize, keysToSnakeCase, dynamicArray, findBy, truncate, isNotEmpty, isNotEqualDeep, randomPick } from '@bigbinary/neeto-cist';
10
10
  import { execSync } from 'child_process';
11
11
  import { faker } from '@faker-js/faker';
12
12
  import dayjs from 'dayjs';
@@ -4424,6 +4424,11 @@ const DATE_RANGES = {
4424
4424
  };
4425
4425
  const CERTIFICATE_LIMIT_EXCEEDED_REGEXP = `too many certificates \\(\\d+\\) already issued for "${CUSTOM_DOMAIN_SUFFIX}"`;
4426
4426
  const CERTIFICATE_LIMIT_EXCEEDED_MESSAGE = "Certificate limit exceeded for custom domain";
4427
+ const EXPORT_FILE_TYPES = {
4428
+ pdf: "pdf",
4429
+ excel: "excel",
4430
+ csv: "csv",
4431
+ };
4427
4432
 
4428
4433
  const COMMON_SELECTORS = {
4429
4434
  emailInputError: "email-input-error",
@@ -4577,6 +4582,7 @@ const COMMON_SELECTORS = {
4577
4582
  columnSortableItem: "column-sortable-item",
4578
4583
  columnsDropdownIcon: "columns-dropdown-icon",
4579
4584
  columnDragHandle: "column-drag-handle",
4585
+ reactSelectContainer: ".neeto-ui-react-select__container",
4580
4586
  };
4581
4587
 
4582
4588
  const THANK_YOU_SELECTORS = {
@@ -5631,15 +5637,18 @@ class CustomCommands {
5631
5637
  await expect(breadcrumbHeader).toHaveCount(titlesAndRoutes.length);
5632
5638
  await Promise.all(titlesAndRoutes.map(({ title, route }) => expect(breadcrumbHeader.getByRole("link", { name: title, exact: true })).toHaveAttribute("href", route)));
5633
5639
  };
5634
- this.uploadFileViaDispatchV2 = async ({ droppableZone = this.page.getByTestId(COMMON_SELECTORS.fileUploadBody), dispatchEvent = "drop", file, }) => {
5640
+ this.uploadFileViaDispatchV2 = async ({ droppableZone = this.page.getByTestId(COMMON_SELECTORS.fileUploadBody), dispatchEvent = "drop", timeout = 30000, file, }) => {
5635
5641
  const serializedFile = await serializeFileForBrowser(file);
5636
- const dataTransfer = await droppableZone.evaluateHandle(async (_, { name, type, buffer, lastModified }) => {
5637
- const uint8Array = new Uint8Array(buffer);
5638
- const file = new File([uint8Array], name, { type, lastModified });
5639
- const dataTransfer = new DataTransfer();
5640
- dataTransfer.items.add(file);
5641
- return dataTransfer;
5642
- }, serializedFile);
5642
+ const dataTransfer = await Promise.race([
5643
+ droppableZone.evaluateHandle(async (_, { name, type, buffer, lastModified }) => {
5644
+ const uint8Array = new Uint8Array(buffer);
5645
+ const file = new File([uint8Array], name, { type, lastModified });
5646
+ const dataTransfer = new DataTransfer();
5647
+ dataTransfer.items.add(file);
5648
+ return dataTransfer;
5649
+ }, serializedFile),
5650
+ new Promise((_, reject) => setTimeout(() => reject(new Error("File injection timed out")), timeout)),
5651
+ ]);
5643
5652
  await droppableZone.dispatchEvent(dispatchEvent, { dataTransfer });
5644
5653
  };
5645
5654
  this.verifyUnsavedChangesModal = async (shouldLeavePage = false) => {
@@ -116936,6 +116945,20 @@ class Member {
116936
116945
  email: faker.internet.exampleEmail(),
116937
116946
  role,
116938
116947
  }));
116948
+ this.getUserIdViaAPI = async (email) => {
116949
+ const response = await this.memberApis.fetch();
116950
+ const { members } = (await (response === null || response === void 0 ? void 0 : response.json()));
116951
+ const member = findBy({ email }, members);
116952
+ return member === null || member === void 0 ? void 0 : member.id;
116953
+ };
116954
+ this.updateEmailViaAPI = async ({ oldEmail, newEmail, role = "Admin", }) => {
116955
+ const userId = await this.getUserIdViaAPI(oldEmail);
116956
+ await this.memberApis.update(userId, keysToSnakeCase({
116957
+ organizationRole: role,
116958
+ email: newEmail,
116959
+ active: true,
116960
+ }));
116961
+ };
116939
116962
  this.memberApis = new MemberApis(neetoPlaywrightUtilities);
116940
116963
  }
116941
116964
  }
@@ -117609,6 +117632,31 @@ class ImageUploader {
117609
117632
  }
117610
117633
  }
117611
117634
 
117635
+ const openFilterPane = async (page) => {
117636
+ await page.getByTestId(NEETO_FILTERS_SELECTORS.filterButton).click();
117637
+ await expect(page.getByTestId(COMMON_SELECTORS.paneHeader)).toHaveText(getI18nInstance().t("neetoFilters.common.filters"));
117638
+ };
117639
+ const clearFiltersFromActionBlock = async (page) => {
117640
+ const isClearButtonVisible = await page
117641
+ .getByTestId(NEETO_FILTERS_SELECTORS.neetoFiltersBarClearButton)
117642
+ .isVisible();
117643
+ if (isClearButtonVisible) {
117644
+ await page
117645
+ .getByTestId(NEETO_FILTERS_SELECTORS.neetoFiltersBarClearButton)
117646
+ .click();
117647
+ await Promise.all([
117648
+ expect(page.getByTestId(NEETO_FILTERS_SELECTORS.neetoFiltersBarClearButton)).toBeHidden(),
117649
+ expect(page.locator(COMMON_SELECTORS.tableSpinner)).toHaveCount(0, {
117650
+ timeout: 15000,
117651
+ }),
117652
+ ]);
117653
+ }
117654
+ };
117655
+ const filterUtils = {
117656
+ openFilterPane,
117657
+ clearFiltersFromActionBlock,
117658
+ };
117659
+
117612
117660
  class TeamMembers {
117613
117661
  constructor({ page, neetoPlaywrightUtilities, }) {
117614
117662
  this.navigateToTeamMembers = async () => {
@@ -117808,6 +117856,26 @@ class TeamMembers {
117808
117856
  .getByTestId(NEETO_FILTERS_SELECTORS.filterDoneButton)
117809
117857
  .click();
117810
117858
  };
117859
+ this.exportDetails = async (fileType, adminEmail) => {
117860
+ await this.page.getByTestId(MEMBER_SELECTORS.downloadButton).click();
117861
+ await expect(this.page.getByTestId(MEMBER_SELECTORS.exportMemberHeading)).toHaveText(this.t("neetoTeamMembers.exportPane.title"));
117862
+ await this.page
117863
+ .getByTestId(MEMBER_SELECTORS.downloadAsRadioItem(fileType))
117864
+ .check();
117865
+ const exportStartTime = new Date();
117866
+ await this.page.getByTestId(MEMBER_SELECTORS.exportSubmitBtn).click();
117867
+ await this.neetoPlaywrightUtilities.verifyToast({
117868
+ message: this.t("toastr.success.exportMembers", { email: adminEmail }),
117869
+ });
117870
+ return exportStartTime;
117871
+ };
117872
+ this.verifyNoDataTitle = async (email) => {
117873
+ await this.neetoPlaywrightUtilities.waitForPageLoad();
117874
+ await this.page.getByTestId(MEMBER_SELECTORS.searchTextField).fill(email);
117875
+ await expect(this.page.getByTestId(NEETO_FILTERS_SELECTORS.neetoFiltersBarClearButton)).toBeVisible();
117876
+ await expect(this.page.getByTestId(COMMON_SELECTORS.noDataTitle)).toBeVisible({ timeout: 10000 });
117877
+ await filterUtils.clearFiltersFromActionBlock(this.page);
117878
+ };
117811
117879
  this.page = page;
117812
117880
  this.neetoPlaywrightUtilities = neetoPlaywrightUtilities;
117813
117881
  this.t = getI18nInstance().t;
@@ -118640,6 +118708,10 @@ const FILE_FORMATS = {
118640
118708
  gif: "gif",
118641
118709
  };
118642
118710
 
118711
+ const TEAM_MEMBER_TEXTS = {
118712
+ emailSubject: "Your team members export is here",
118713
+ };
118714
+
118643
118715
  const PHONE_NUMBER_FORMATS = [
118644
118716
  { name: "Afghanistan", code: "+93", format: "70#######", flag: "🇦🇫" },
118645
118717
  { name: "Aland", code: "+358", format: "5####", flag: "🇦🇽" },
@@ -119149,31 +119221,6 @@ const executeWithThrottledResources = async ({ code: emulatedCode, kind = "both"
119149
119221
  await cpuThrottlingUsingCDP({ cdpSession, rate: 1 });
119150
119222
  };
119151
119223
 
119152
- const openFilterPane = async (page) => {
119153
- await page.getByTestId(NEETO_FILTERS_SELECTORS.filterButton).click();
119154
- await expect(page.getByTestId(COMMON_SELECTORS.paneHeader)).toHaveText(getI18nInstance().t("neetoFilters.common.filters"));
119155
- };
119156
- const clearFiltersFromActionBlock = async (page) => {
119157
- const isClearButtonVisible = await page
119158
- .getByTestId(NEETO_FILTERS_SELECTORS.neetoFiltersBarClearButton)
119159
- .isVisible();
119160
- if (isClearButtonVisible) {
119161
- await page
119162
- .getByTestId(NEETO_FILTERS_SELECTORS.neetoFiltersBarClearButton)
119163
- .click();
119164
- await Promise.all([
119165
- expect(page.getByTestId(NEETO_FILTERS_SELECTORS.neetoFiltersBarClearButton)).toBeHidden(),
119166
- expect(page.locator(COMMON_SELECTORS.tableSpinner)).toHaveCount(0, {
119167
- timeout: 15000,
119168
- }),
119169
- ]);
119170
- }
119171
- };
119172
- const filterUtils = {
119173
- openFilterPane,
119174
- clearFiltersFromActionBlock,
119175
- };
119176
-
119177
119224
  const getAmountWithSymbol = (amount, options) => {
119178
119225
  const formatter = new Intl.NumberFormat(dayjs.locale(), {
119179
119226
  ...options,
@@ -124013,5 +124060,5 @@ const definePlaywrightConfig = (overrides) => {
124013
124060
  });
124014
124061
  };
124015
124062
 
124016
- export { ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, AUDIT_LOGS_TEXTS, AdminPanelPage, ApiKeysApi, ApiKeysPage, AuditLogsPage, BASE_URL, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, CustomCommands, CustomDomainApi, CustomDomainPage, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DESCRIPTION_EDITOR_TEXTS, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXPANDED_FONT_SIZE, EditorPage, EmbedBase, FILE_FORMATS, FONT_SIZE_SELECTORS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RoleApis, RolesPage, SELECT_COUNTRY, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SidebarSection, SlackPage, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouPage, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, headerUtils, hexToRGB, hexToRGBA, hyphenize, i18nFixture, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
124063
+ export { ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, AUDIT_LOGS_TEXTS, AdminPanelPage, ApiKeysApi, ApiKeysPage, AuditLogsPage, BASE_URL, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, CustomCommands, CustomDomainApi, CustomDomainPage, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DESCRIPTION_EDITOR_TEXTS, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmbedBase, FILE_FORMATS, FONT_SIZE_SELECTORS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RoleApis, RolesPage, SELECT_COUNTRY, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SidebarSection, SlackPage, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEAM_MEMBER_TEXTS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouPage, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, headerUtils, hexToRGB, hexToRGBA, hyphenize, i18nFixture, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
124017
124064
  //# sourceMappingURL=index.js.map