@bigbinary/neeto-playwright-commons 4.5.0 → 4.6.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.
Files changed (3) hide show
  1. package/index.d.ts +104 -4
  2. package/index.js +78 -21
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -4379,6 +4379,7 @@ declare const DEFAULT_WEBHOOKS_RESPONSE_TEXT: string;
4379
4379
  *
4380
4380
  */
4381
4381
  declare const STORAGE_STATE = "./e2e/auth/user.json";
4382
+ declare const DEFAULT_TIMEZONE_ID = "Asia/Calcutta";
4382
4383
  /**
4383
4384
  *
4384
4385
  * Pattern for global translations file path.
@@ -5152,6 +5153,7 @@ interface CreateOrganizationProps$1 extends BasicUserInfo {
5152
5153
  businessName: string;
5153
5154
  subdomainName: string;
5154
5155
  appName: string;
5156
+ shouldSignupViaApi?: boolean;
5155
5157
  }
5156
5158
  interface LoginAndOnboardParams extends BasicUserInfo {
5157
5159
  handleOnboarding: () => Promise<void>;
@@ -5239,7 +5241,8 @@ declare class OrganizationPage {
5239
5241
  subdomainName,
5240
5242
  firstName,
5241
5243
  lastName,
5242
- appName
5244
+ appName,
5245
+ shouldSignupViaApi
5243
5246
  }: CreateOrganizationProps$1) => Promise<void>;
5244
5247
  /**
5245
5248
  *
@@ -5252,7 +5255,11 @@ declare class OrganizationPage {
5252
5255
  * await organizationPage.setupOrganization("Chat")
5253
5256
  * @endexample
5254
5257
  */
5255
- setupOrganization: (product: string) => Promise<void>;
5258
+ setupOrganization: (product: string, {
5259
+ shouldSignupViaApi
5260
+ }?: {
5261
+ shouldSignupViaApi?: boolean;
5262
+ }) => Promise<void>;
5256
5263
  /**
5257
5264
  *
5258
5265
  * Used to update already existing subdomain name. It takes the following parameters:
@@ -5395,11 +5402,13 @@ declare class OrganizationPage {
5395
5402
  signUp: ({
5396
5403
  credentials,
5397
5404
  fetchOtpFromEmail,
5398
- appName
5405
+ appName,
5406
+ shouldSignupViaApi
5399
5407
  }: {
5400
5408
  credentials: Credentials;
5401
5409
  fetchOtpFromEmail?: FetchOtpFromEmail;
5402
5410
  appName: string;
5411
+ shouldSignupViaApi?: boolean;
5403
5412
  }) => Promise<{
5404
5413
  STORAGE_STATE: {
5405
5414
  cookies: Array<{
@@ -9415,6 +9424,97 @@ declare const createOrganizationViaRake: ({
9415
9424
  lastName,
9416
9425
  subdomainName
9417
9426
  }: CreateOrganizationProps) => Promise<string>;
9427
+ interface CreateOrganizationViaApiProps extends CreateOrganizationProps {
9428
+ page: Page;
9429
+ businessName: string;
9430
+ redirectUri?: string;
9431
+ timeZone?: string;
9432
+ }
9433
+ /**
9434
+ *
9435
+ * Creates a fully signed-up organization (org + owner + product sync) in a single
9436
+ *
9437
+ * request to neeto-auth-web's non-production POST /api/v1/internal/quick_setups
9438
+ *
9439
+ * endpoint, then navigates the page to the returned one-time-token login URL so
9440
+ *
9441
+ * the session cookie is set. Staging-only replacement for the multi-step UI
9442
+ *
9443
+ * signup flow. The request is authenticated with process.env.OTP_BYPASS_KEY
9444
+ *
9445
+ * and the email must follow the cypress bypass convention
9446
+ *
9447
+ * (cpt<key>...@bigbinary.com).
9448
+ *
9449
+ * page: A page object.
9450
+ *
9451
+ * email: The email address for the organization owner.
9452
+ *
9453
+ * firstName: The first name of the organization owner.
9454
+ *
9455
+ * lastName: The last name of the organization owner.
9456
+ *
9457
+ * businessName: The organization name.
9458
+ *
9459
+ * subdomainName: The subdomain name for the organization.
9460
+ *
9461
+ * redirectUri (optional): Bare host+path the login should land on, e.g.
9462
+ *
9463
+ * neetocal.net/admin. Omit for neetoAuth itself.
9464
+ *
9465
+ * timeZone (optional): Time zone applied to the owner's neetoAuth profile,
9466
+ *
9467
+ * mirroring what the signup form auto-detects from the browser. Defaults to
9468
+ *
9469
+ * Asia/Calcutta — the timezoneId the Playwright browsers run with.
9470
+ *
9471
+ * Staging signups performed by OrganizationPage.createOrganization,
9472
+ *
9473
+ * OrganizationPage.setupOrganization, and OrganizationPage.signUp use this
9474
+ *
9475
+ * API by default (shouldSignupViaApi defaults to true). Pass
9476
+ *
9477
+ * shouldSignupViaApi: false to fall back to the full UI signup flow (signup
9478
+ *
9479
+ * page → OTP → organization form → profile form) — useful when the signup UI
9480
+ *
9481
+ * itself is under test:
9482
+ *
9483
+ * @example
9484
+ *
9485
+ * await organizationPage.setupOrganization(PRODUCT, { shouldSignupViaApi: false });
9486
+ *
9487
+ * await organizationPage.signUp({ credentials, appName, shouldSignupViaApi: false });
9488
+ * @endexample
9489
+ * Signups with fetchOtpFromEmail always use the UI flow regardless of the
9490
+ *
9491
+ * mode, since real-mailbox emails cannot use the cypress OTP bypass.
9492
+ *
9493
+ * @example
9494
+ *
9495
+ * import { createOrganizationViaApi } from "@neetoplaywright";
9496
+ *
9497
+ * await createOrganizationViaApi({
9498
+ * page,
9499
+ * email: "cptkey+cal@bigbinary.com",
9500
+ * firstName: "John",
9501
+ * lastName: "Doe",
9502
+ * businessName: "myorganization",
9503
+ * subdomainName: "myorganization",
9504
+ * redirectUri: "neetocal.net/admin",
9505
+ * });
9506
+ * @endexample
9507
+ */
9508
+ declare const createOrganizationViaApi: ({
9509
+ page,
9510
+ email,
9511
+ firstName,
9512
+ lastName,
9513
+ businessName,
9514
+ subdomainName,
9515
+ redirectUri,
9516
+ timeZone
9517
+ }: CreateOrganizationViaApiProps) => Promise<void>;
9418
9518
  interface AssertColumnHeaderVisibilityProps {
9419
9519
  page: Page;
9420
9520
  columnName: string;
@@ -10118,5 +10218,5 @@ declare class InboundEmailApis {
10118
10218
  reply: (emailParams: ReplyInboundEmailParams) => Promise<playwright_core.APIResponse | undefined>;
10119
10219
  private deliverSource;
10120
10220
  }
10121
- export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, ApiKeysPageV2, AuditLogsPage, BASE_URL, CALENDAR_LABELS, 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, ColorPickerUtils, CustomCommands, CustomCommandsV2, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EDITOR_VERIFY_TEXT_COLOR, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmailDeliveryUtils, EmbedBase, FILE_FORMATS, FONTS_RESOURCES, FONT_SIZE_SELECTORS, FROM_EMAIL_ENV_KEYS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, HelpAndProfilePageV2, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_MAILPIT_ENABLED, IS_STAGING_ENV, ImageUploader, InboundEmailApis, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MAILPIT_BASE_URL, MAILPIT_DOMAIN_NAME, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, MailpitApi, 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, NeetoAuthServer, NeetoChatWidget, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PRODUCT_ROLES_ROUTE_MAP, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailApiClient, RailsEmailUtils, RoleApis, RolesPage, RolesPageV2, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, 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_RESOURCES, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, TeamMembersV2, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_TEST_EMAIL_V2, ZAPIER_WEB_TEXTS, ZapierPage, authenticateUser, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, fixedMenuSelector, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getDirname, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, isStagingOrganizationExpired, joinHyphenCase, joinString, login, mailpitDomainName, networkConditions, networkThrottlingUsingCDP, optionSelector, readFileAsBrowserFile, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
10221
+ export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, ApiKeysPageV2, AuditLogsPage, BASE_URL, CALENDAR_LABELS, 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, ColorPickerUtils, CustomCommands, CustomCommandsV2, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_TIMEZONE_ID, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EDITOR_VERIFY_TEXT_COLOR, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmailDeliveryUtils, EmbedBase, FILE_FORMATS, FONTS_RESOURCES, FONT_SIZE_SELECTORS, FROM_EMAIL_ENV_KEYS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, HelpAndProfilePageV2, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_MAILPIT_ENABLED, IS_STAGING_ENV, ImageUploader, InboundEmailApis, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MAILPIT_BASE_URL, MAILPIT_DOMAIN_NAME, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, MailpitApi, 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, NeetoAuthServer, NeetoChatWidget, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PRODUCT_ROLES_ROUTE_MAP, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailApiClient, RailsEmailUtils, RoleApis, RolesPage, RolesPageV2, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, 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_RESOURCES, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, TeamMembersV2, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_TEST_EMAIL_V2, ZAPIER_WEB_TEXTS, ZapierPage, authenticateUser, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaApi, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, fixedMenuSelector, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getDirname, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, isStagingOrganizationExpired, joinHyphenCase, joinString, login, mailpitDomainName, networkConditions, networkThrottlingUsingCDP, optionSelector, readFileAsBrowserFile, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
10122
10222
  export type { BaseThemeStyle, BaseThemeStyleType, ColumnMenuAction, CountryProps, CustomFixture, EmailDeliveryConnectParams, EmailDeliveryProvider, EmailDeliveryVerifiedEmail, EmailDeliveryVerifyEmailParams, EmailDeliveryVerifyEmailResponse, EmailMatchCriteria, InboundEmailParams, IntroPageThemeStyle, IntroPageThemeStyleType, OAuthEmailDeliveryProvider, ProjectName, ReplyInboundEmailParams, ThemeCategory, ValueOf };
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { isPresent, keysToSnakeCase, hyphenate, isNotPresent, noop as noop$2, humanize, findBy, dynamicArray, truncate, isNotEmpty, isNotEqualDeep, randomPick } from '@bigbinary/neeto-cist';
1
+ import { isPresent, keysToSnakeCase, hyphenate, humanize, isNotPresent, noop as noop$2, findBy, dynamicArray, truncate, isNotEmpty, isNotEqualDeep, randomPick } from '@bigbinary/neeto-cist';
2
2
  import { faker } from '@faker-js/faker';
3
3
  import * as fs from 'fs';
4
4
  import fs__default, { readFileSync, promises, existsSync, writeFileSync, unlinkSync, mkdirSync, rmSync, createWriteStream } from 'fs';
@@ -310,6 +310,7 @@ const IS_DEV_ENV = process.env.TEST_ENV === ENVIRONMENT.development;
310
310
  const IS_CI = isPresent(process.env.NEETO_CI_JOB_ID);
311
311
  const DEFAULT_WEBHOOKS_RESPONSE_TEXT = JSON.stringify({ success: true });
312
312
  const STORAGE_STATE = "./e2e/auth/user.json";
313
+ const DEFAULT_TIMEZONE_ID = "Asia/Calcutta";
313
314
  const GLOBAL_TRANSLATIONS_PATTERN = "../node_modules/@bigbinary/**/translations/en.json";
314
315
  const PROJECT_TRANSLATIONS_PATH = "../app/javascript/src/translations/en.json";
315
316
  const CREDENTIALS = {
@@ -2796,6 +2797,34 @@ const createOrganizationViaRake = async ({ email, firstName, lastName, subdomain
2796
2797
  }
2797
2798
  return stdout.trim();
2798
2799
  };
2800
+ const createOrganizationViaApi = async ({ page, email, firstName, lastName, businessName, subdomainName, redirectUri, timeZone = DEFAULT_TIMEZONE_ID, }) => {
2801
+ if (!process.env.OTP_BYPASS_KEY) {
2802
+ throw new Error("OTP_BYPASS_KEY environment variable is required to create organizations via the quick setups API.");
2803
+ }
2804
+ const response = await page.request.post(`${NEETO_AUTH_BASE_URL()}/api/v1/internal/quick_setups`, {
2805
+ headers: {
2806
+ Authorization: `Token token="${process.env.OTP_BYPASS_KEY}"`,
2807
+ },
2808
+ data: {
2809
+ setup: {
2810
+ email,
2811
+ first_name: firstName,
2812
+ last_name: lastName,
2813
+ organization_name: humanize(businessName),
2814
+ subdomain: subdomainName,
2815
+ redirect_uri: redirectUri,
2816
+ time_zone: timeZone,
2817
+ },
2818
+ },
2819
+ timeout: 120_000,
2820
+ });
2821
+ if (!response.ok()) {
2822
+ throw new Error(`Quick organization setup failed with status ${response.status()}: ${await response.text()}`);
2823
+ }
2824
+ // The OTT in the login URL expires in 150 seconds; navigate immediately.
2825
+ const { login_url: loginUrl } = await response.json();
2826
+ await page.goto(loginUrl, { timeout: 30_000 });
2827
+ };
2799
2828
 
2800
2829
  //! otpauth 9.5.0 | (c) Héctor Molinero Fernández | MIT | https://github.com/hectorm/otpauth
2801
2830
  //! noble-hashes 2.0.1 | (c) Paul Miller | MIT | https://github.com/paulmillr/noble-hashes
@@ -18028,7 +18057,7 @@ class OrganizationPage {
18028
18057
  const maybeLaterButton = this.page.getByTestId(LOGIN_SELECTORS.authenticatorAppLaterButton);
18029
18058
  (await maybeLaterButton.isVisible()) && (await maybeLaterButton.click());
18030
18059
  };
18031
- createOrganization = async ({ email, businessName, subdomainName, firstName, lastName, appName, }) => {
18060
+ createOrganization = async ({ email, businessName, subdomainName, firstName, lastName, appName, shouldSignupViaApi = true, }) => {
18032
18061
  if (shouldSkipSetupAndTeardown())
18033
18062
  return;
18034
18063
  if (IS_DEV_ENV) {
@@ -18042,28 +18071,43 @@ class OrganizationPage {
18042
18071
  }
18043
18072
  const appNameInLowerCase = appName.toLowerCase();
18044
18073
  const isNeetoAuth = appNameInLowerCase === "neetoauth";
18045
- isNeetoAuth
18046
- ? await this.page.goto(ROUTES.neetoAuthSignup, { timeout: 20_000 })
18047
- : await this.page.goto(`${ROUTES.neetoAuthSignup}?redirect_uri=${appNameInLowerCase}.net/admin`, { timeout: 20_000 });
18048
- await this.submitEmail(email);
18049
- await this.fillOTP();
18050
- await this.fillOrganizationDetails({
18051
- credentials: {
18074
+ if (!shouldSignupViaApi) {
18075
+ isNeetoAuth
18076
+ ? await this.page.goto(ROUTES.neetoAuthSignup, { timeout: 20_000 })
18077
+ : await this.page.goto(`${ROUTES.neetoAuthSignup}?redirect_uri=${appNameInLowerCase}.net/admin`, { timeout: 20_000 });
18078
+ await this.submitEmail(email);
18079
+ await this.fillOTP();
18080
+ await this.fillOrganizationDetails({
18081
+ credentials: {
18082
+ firstName,
18083
+ lastName,
18084
+ email,
18085
+ currentUserName: email,
18086
+ businessName,
18087
+ subdomainName,
18088
+ domain: appNameInLowerCase,
18089
+ },
18090
+ appName: appNameInLowerCase,
18091
+ });
18092
+ }
18093
+ else {
18094
+ await createOrganizationViaApi({
18095
+ page: this.page,
18096
+ email,
18052
18097
  firstName,
18053
18098
  lastName,
18054
- email,
18055
- currentUserName: email,
18056
18099
  businessName,
18057
18100
  subdomainName,
18058
- domain: appNameInLowerCase,
18059
- },
18060
- appName: appNameInLowerCase,
18061
- });
18101
+ redirectUri: isNeetoAuth
18102
+ ? undefined
18103
+ : `${appNameInLowerCase}.net/admin`,
18104
+ });
18105
+ }
18062
18106
  await this.page.waitForURL(new RegExp(getGlobalUserState().domain), {
18063
18107
  waitUntil: "load",
18064
18108
  });
18065
18109
  };
18066
- setupOrganization = async (product) => {
18110
+ setupOrganization = async (product, { shouldSignupViaApi } = {}) => {
18067
18111
  if (!IS_STAGING_ENV || shouldSkipSetupAndTeardown())
18068
18112
  return;
18069
18113
  const { user } = readFileSyncIfExists();
@@ -18074,6 +18118,7 @@ class OrganizationPage {
18074
18118
  lastName: user.lastName,
18075
18119
  subdomainName: user.subdomainName,
18076
18120
  appName: `neeto${product}`,
18121
+ shouldSignupViaApi,
18077
18122
  });
18078
18123
  await this.neetoPlaywrightUtilities.waitForPageLoad({
18079
18124
  customPageContext: this.page,
@@ -18218,7 +18263,7 @@ class OrganizationPage {
18218
18263
  }
18219
18264
  await handleOnboarding();
18220
18265
  };
18221
- signUp = async ({ credentials, fetchOtpFromEmail, appName, }) => {
18266
+ signUp = async ({ credentials, fetchOtpFromEmail, appName, shouldSignupViaApi = true, }) => {
18222
18267
  if (IS_DEV_ENV) {
18223
18268
  await createOrganizationViaRake({
18224
18269
  email: credentials.email,
@@ -18232,7 +18277,7 @@ class OrganizationPage {
18232
18277
  loginPath: `${baseURLGenerator(appName, credentials.subdomainName)}${ROUTES.admin}`,
18233
18278
  });
18234
18279
  }
18235
- else {
18280
+ else if (fetchOtpFromEmail !== undefined || !shouldSignupViaApi) {
18236
18281
  let otp = "123456";
18237
18282
  await this.page.goto(`${ROUTES.neetoAuthSignup}?redirect_uri=${credentials.domain}`, { timeout: 20_000 });
18238
18283
  await this.submitEmail(credentials.email);
@@ -18249,6 +18294,18 @@ class OrganizationPage {
18249
18294
  });
18250
18295
  await this.page.waitForURL(new RegExp(credentials.domain));
18251
18296
  }
18297
+ else {
18298
+ await createOrganizationViaApi({
18299
+ page: this.page,
18300
+ email: credentials.email,
18301
+ firstName: credentials.firstName,
18302
+ lastName: credentials.lastName,
18303
+ businessName: credentials.businessName,
18304
+ subdomainName: credentials.subdomainName,
18305
+ redirectUri: credentials.domain,
18306
+ });
18307
+ await this.page.waitForURL(new RegExp(credentials.domain));
18308
+ }
18252
18309
  const STORAGE_STATE = await this.page.context().storageState();
18253
18310
  return { STORAGE_STATE, baseURL: process.env.BASE_URL };
18254
18311
  };
@@ -122145,7 +122202,7 @@ class TagsPage {
122145
122202
  await this.page
122146
122203
  .getByTestId(NEETO_FILTERS_SELECTORS.neetoFiltersBarClearButton)
122147
122204
  .click();
122148
- await this.page.getByTestId(NEETO_FILTERS_SELECTORS.filterButton).click();
122205
+ await this.page.getByTestId(COMMON_SELECTORS.filterButon).click();
122149
122206
  await this.page
122150
122207
  .getByTestId(NEETO_FILTERS_SELECTORS.neetoFiltersNameFilterField)
122151
122208
  .fill(tagName);
@@ -126950,7 +127007,7 @@ const definePlaywrightConfig = (overrides) => {
126950
127007
  screenshot: "only-on-failure",
126951
127008
  navigationTimeout: 35_000,
126952
127009
  actionTimeout: 10 * 1000,
126953
- timezoneId: "Asia/Calcutta",
127010
+ timezoneId: DEFAULT_TIMEZONE_ID,
126954
127011
  geolocation: { latitude: 18.553187, longitude: 73.948313 }, // BB Pune office
126955
127012
  permissions: ["geolocation"],
126956
127013
  ...useOverrides,
@@ -127101,4 +127158,4 @@ class InboundEmailApis {
127101
127158
  };
127102
127159
  }
127103
127160
 
127104
- export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, ApiKeysPageV2, AuditLogsPage, BASE_URL, CALENDAR_LABELS, 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, ColorPickerUtils, CustomCommands, CustomCommandsV2, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EDITOR_VERIFY_TEXT_COLOR, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmailDeliveryUtils, EmbedBase, FILE_FORMATS, FONTS_RESOURCES, FONT_SIZE_SELECTORS, FROM_EMAIL_ENV_KEYS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, HelpAndProfilePageV2, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_MAILPIT_ENABLED, IS_STAGING_ENV, ImageUploader, InboundEmailApis, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MAILPIT_BASE_URL, MAILPIT_DOMAIN_NAME, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, MailpitApi, 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, NeetoAuthServer, NeetoChatWidget, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PRODUCT_ROLES_ROUTE_MAP, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailApiClient, RailsEmailUtils, RoleApis, RolesPage, RolesPageV2, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, 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_RESOURCES, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, TeamMembersV2, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_TEST_EMAIL_V2, ZAPIER_WEB_TEXTS, ZapierPage, authenticateUser, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, fixedMenuSelector, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getDirname, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, isStagingOrganizationExpired, joinHyphenCase, joinString, login, mailpitDomainName, networkConditions, networkThrottlingUsingCDP, optionSelector, readFileAsBrowserFile, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
127161
+ export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, ApiKeysPageV2, AuditLogsPage, BASE_URL, CALENDAR_LABELS, 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, ColorPickerUtils, CustomCommands, CustomCommandsV2, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_TIMEZONE_ID, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EDITOR_VERIFY_TEXT_COLOR, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmailDeliveryUtils, EmbedBase, FILE_FORMATS, FONTS_RESOURCES, FONT_SIZE_SELECTORS, FROM_EMAIL_ENV_KEYS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, HelpAndProfilePageV2, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_MAILPIT_ENABLED, IS_STAGING_ENV, ImageUploader, InboundEmailApis, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MAILPIT_BASE_URL, MAILPIT_DOMAIN_NAME, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, MailpitApi, 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, NeetoAuthServer, NeetoChatWidget, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PRODUCT_ROLES_ROUTE_MAP, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailApiClient, RailsEmailUtils, RoleApis, RolesPage, RolesPageV2, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, 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_RESOURCES, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, TeamMembersV2, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_TEST_EMAIL_V2, ZAPIER_WEB_TEXTS, ZapierPage, authenticateUser, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaApi, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, fixedMenuSelector, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getDirname, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, isStagingOrganizationExpired, joinHyphenCase, joinString, login, mailpitDomainName, networkConditions, networkThrottlingUsingCDP, optionSelector, readFileAsBrowserFile, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-playwright-commons",
3
- "version": "4.5.0",
3
+ "version": "4.6.0",
4
4
  "description": "A package encapsulating common playwright code across neeto projects.",
5
5
  "repository": "git@github.com:bigbinary/neeto-playwright-commons.git",
6
6
  "license": "apache-2.0",