@bigbinary/neeto-playwright-commons 1.26.13 → 1.26.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs.js +141 -61
- package/index.cjs.js.map +1 -1
- package/index.d.ts +76 -22
- package/index.js +140 -63
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -3315,6 +3315,18 @@ declare const EXAMPLE_URL = "https://example.com";
|
|
|
3315
3315
|
* @endexample
|
|
3316
3316
|
*/
|
|
3317
3317
|
declare const IS_STAGING_ENV: boolean;
|
|
3318
|
+
/**
|
|
3319
|
+
*
|
|
3320
|
+
* Boolean value indicating whether the current environment is development.
|
|
3321
|
+
*
|
|
3322
|
+
* @example
|
|
3323
|
+
*
|
|
3324
|
+
* if(IS_DEV_ENV){
|
|
3325
|
+
* // Perform actions specific to the development environment
|
|
3326
|
+
* }
|
|
3327
|
+
* @endexample
|
|
3328
|
+
*/
|
|
3329
|
+
declare const IS_DEV_ENV: boolean;
|
|
3318
3330
|
/**
|
|
3319
3331
|
*
|
|
3320
3332
|
* Path to the JSON file for storing authentication data.
|
|
@@ -3335,13 +3347,16 @@ declare const GLOBAL_TRANSLATIONS_PATTERN = "../node_modules/@bigbinary/**/trans
|
|
|
3335
3347
|
declare const PROJECT_TRANSLATIONS_PATH = "../app/javascript/src/translations/en.json";
|
|
3336
3348
|
/**
|
|
3337
3349
|
*
|
|
3338
|
-
* Default credentials for testing purposes.
|
|
3350
|
+
* Default credentials for testing purposes for development env.
|
|
3339
3351
|
*
|
|
3340
3352
|
*/
|
|
3341
3353
|
declare const CREDENTIALS: {
|
|
3354
|
+
firstName: string;
|
|
3355
|
+
lastName: string;
|
|
3342
3356
|
name: string;
|
|
3343
3357
|
email: string;
|
|
3344
3358
|
password: string;
|
|
3359
|
+
subdomainName: string;
|
|
3345
3360
|
};
|
|
3346
3361
|
/**
|
|
3347
3362
|
*
|
|
@@ -3893,7 +3908,7 @@ interface BasicUserInfo {
|
|
|
3893
3908
|
email: string;
|
|
3894
3909
|
country?: string;
|
|
3895
3910
|
}
|
|
3896
|
-
interface CreateOrganizationProps extends BasicUserInfo {
|
|
3911
|
+
interface CreateOrganizationProps$1 extends BasicUserInfo {
|
|
3897
3912
|
businessName: string;
|
|
3898
3913
|
subdomainName: string;
|
|
3899
3914
|
appName: string;
|
|
@@ -3923,20 +3938,6 @@ declare class OrganizationPage {
|
|
|
3923
3938
|
page: Page;
|
|
3924
3939
|
neetoPlaywrightUtilities: CustomCommands;
|
|
3925
3940
|
constructor(page: Page, neetoPlaywrightUtilities: CustomCommands);
|
|
3926
|
-
/**
|
|
3927
|
-
*
|
|
3928
|
-
* Used to generate the subdomain URL. It takes the following parameters:
|
|
3929
|
-
*
|
|
3930
|
-
* appName(required): Name of the app.
|
|
3931
|
-
*
|
|
3932
|
-
* @example
|
|
3933
|
-
*
|
|
3934
|
-
* const domain = organizationPage.baseUrlGenerator(appName)
|
|
3935
|
-
* console.log(domain) // https://${subdomainName}.${appName}.net
|
|
3936
|
-
* // "subdomainName" is the loggedIn user name
|
|
3937
|
-
* @endexample
|
|
3938
|
-
*/
|
|
3939
|
-
baseUrlGenerator: (appName: string) => string;
|
|
3940
3941
|
private fillOTP;
|
|
3941
3942
|
private submitEmail;
|
|
3942
3943
|
/**
|
|
@@ -3974,7 +3975,7 @@ declare class OrganizationPage {
|
|
|
3974
3975
|
firstName,
|
|
3975
3976
|
lastName,
|
|
3976
3977
|
appName
|
|
3977
|
-
}: CreateOrganizationProps) => Promise<void>;
|
|
3978
|
+
}: CreateOrganizationProps$1) => Promise<void>;
|
|
3978
3979
|
/**
|
|
3979
3980
|
*
|
|
3980
3981
|
* Used to set up an Organization. Works only with staging env. It takes the following parameters:
|
|
@@ -7750,7 +7751,13 @@ interface LoginProps {
|
|
|
7750
7751
|
*/
|
|
7751
7752
|
neetoPlaywrightUtilities?: CustomCommands;
|
|
7752
7753
|
loginPath?: string;
|
|
7754
|
+
email?: string;
|
|
7753
7755
|
}
|
|
7756
|
+
declare const fillCredentialsAndSubmit: ({
|
|
7757
|
+
page,
|
|
7758
|
+
loginPath,
|
|
7759
|
+
email
|
|
7760
|
+
}: LoginProps) => Promise<void>;
|
|
7754
7761
|
/**
|
|
7755
7762
|
*
|
|
7756
7763
|
* Used to login by using email and password. It takes the following parameters:
|
|
@@ -7768,8 +7775,8 @@ interface LoginProps {
|
|
|
7768
7775
|
*/
|
|
7769
7776
|
declare const loginWithoutSSO: ({
|
|
7770
7777
|
page,
|
|
7771
|
-
|
|
7772
|
-
|
|
7778
|
+
loginPath,
|
|
7779
|
+
email
|
|
7773
7780
|
}: LoginProps) => Promise<void>;
|
|
7774
7781
|
/**
|
|
7775
7782
|
*
|
|
@@ -7789,7 +7796,8 @@ declare const loginWithoutSSO: ({
|
|
|
7789
7796
|
declare const login: ({
|
|
7790
7797
|
page,
|
|
7791
7798
|
neetoPlaywrightUtilities,
|
|
7792
|
-
loginPath
|
|
7799
|
+
loginPath,
|
|
7800
|
+
email
|
|
7793
7801
|
}: LoginProps) => Promise<false | void>;
|
|
7794
7802
|
/**
|
|
7795
7803
|
*
|
|
@@ -7811,10 +7819,56 @@ declare const generateRandomBypassEmail: () => string;
|
|
|
7811
7819
|
*
|
|
7812
7820
|
* @example
|
|
7813
7821
|
*
|
|
7814
|
-
*
|
|
7822
|
+
* extractSubdomainFromError("https://wwww.bb.neetoChat.com"); // bb
|
|
7815
7823
|
* @endexample
|
|
7816
7824
|
*/
|
|
7817
7825
|
declare const extractSubdomainFromError: (errorString: string) => string;
|
|
7826
|
+
interface CreateOrganizationProps {
|
|
7827
|
+
email: string;
|
|
7828
|
+
firstName: string;
|
|
7829
|
+
lastName: string;
|
|
7830
|
+
subdomainName: string;
|
|
7831
|
+
}
|
|
7832
|
+
/**
|
|
7833
|
+
*
|
|
7834
|
+
* Creates an organization via a rake task. This method executes the
|
|
7835
|
+
*
|
|
7836
|
+
* playwright:create_organization rake task asynchronously and returns the
|
|
7837
|
+
*
|
|
7838
|
+
* output. It takes the following parameters:
|
|
7839
|
+
*
|
|
7840
|
+
* email: The email address for the organization owner.
|
|
7841
|
+
*
|
|
7842
|
+
* firstName: The first name of the organization owner.
|
|
7843
|
+
*
|
|
7844
|
+
* lastName: The last name of the organization owner.
|
|
7845
|
+
*
|
|
7846
|
+
* subdomainName: The subdomain name for the organization.
|
|
7847
|
+
*
|
|
7848
|
+
* A Promise that resolves to a string containing the rake task output.
|
|
7849
|
+
*
|
|
7850
|
+
* @example
|
|
7851
|
+
*
|
|
7852
|
+
* import { createOrganizationViaRake } from "@bigbinary/neeto-playwright-commons";
|
|
7853
|
+
*
|
|
7854
|
+
* await createOrganizationViaRake({
|
|
7855
|
+
* email: "user@example.com",
|
|
7856
|
+
* firstName: "John",
|
|
7857
|
+
* lastName: "Doe",
|
|
7858
|
+
* subdomainName: "myorganization",
|
|
7859
|
+
* });
|
|
7860
|
+
* @endexample
|
|
7861
|
+
* Note: The working directory defaults to process.env.RAILS_ROOT or ".." if not set. Make sure the Rails application is available at the specified
|
|
7862
|
+
*
|
|
7863
|
+
* working directory.
|
|
7864
|
+
*
|
|
7865
|
+
*/
|
|
7866
|
+
declare const createOrganizationViaRake: ({
|
|
7867
|
+
email,
|
|
7868
|
+
firstName,
|
|
7869
|
+
lastName,
|
|
7870
|
+
subdomainName
|
|
7871
|
+
}: CreateOrganizationProps) => Promise<string>;
|
|
7818
7872
|
interface AssertColumnHeaderVisibilityProps {
|
|
7819
7873
|
page: Page;
|
|
7820
7874
|
columnName: string;
|
|
@@ -8330,5 +8384,5 @@ interface Overrides {
|
|
|
8330
8384
|
* @endexample
|
|
8331
8385
|
*/
|
|
8332
8386
|
declare const definePlaywrightConfig: (overrides: Overrides) => PlaywrightTestConfig<{}, {}>;
|
|
8333
|
-
export { ACTIONS, ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, AUDIT_LOGS_SELECTORS, 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, EXAMPLE_URL, 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, 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_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouApi, ThankYouPage, TwilioApi, 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, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
|
|
8387
|
+
export { ACTIONS, ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, AUDIT_LOGS_SELECTORS, 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, EXAMPLE_URL, 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_DEV_ENV, 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, 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_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, fillCredentialsAndSubmit, 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, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
|
|
8334
8388
|
export type { BaseThemeStyle, BaseThemeStyleType, CountryProps, CustomFixture, IntroPageThemeStyle, IntroPageThemeStyleType, ThemeCategory, ValueOf };
|
package/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import test, { expect, test as test$1, chromium as chromium$1, defineConfig, dev
|
|
|
9
9
|
import { getI18nInstance, initI18n } from 'playwright-i18next-fixture';
|
|
10
10
|
import require$$0$4 from 'util';
|
|
11
11
|
import { curry, isNotNil, not, isEmpty, pluck, mergeDeepLeft, isNil, mergeAll } from 'ramda';
|
|
12
|
-
import { execSync } from 'child_process';
|
|
12
|
+
import { execSync, spawn } from 'child_process';
|
|
13
13
|
import dayjs from 'dayjs';
|
|
14
14
|
import require$$0$7 from 'stream';
|
|
15
15
|
import { createRequire } from 'node:module';
|
|
@@ -285,14 +285,18 @@ const ENVIRONMENT = {
|
|
|
285
285
|
review: "review",
|
|
286
286
|
};
|
|
287
287
|
const EXAMPLE_URL = "https://example.com";
|
|
288
|
-
const IS_STAGING_ENV = process.env.TEST_ENV ===
|
|
288
|
+
const IS_STAGING_ENV = process.env.TEST_ENV === ENVIRONMENT.staging;
|
|
289
|
+
const IS_DEV_ENV = process.env.TEST_ENV === ENVIRONMENT.development;
|
|
289
290
|
const STORAGE_STATE = "./e2e/auth/user.json";
|
|
290
291
|
const GLOBAL_TRANSLATIONS_PATTERN = "../node_modules/@bigbinary/**/translations/en.json";
|
|
291
292
|
const PROJECT_TRANSLATIONS_PATH = "../app/javascript/src/translations/en.json";
|
|
292
293
|
const CREDENTIALS = {
|
|
294
|
+
firstName: "Oliver",
|
|
295
|
+
lastName: "Smith",
|
|
293
296
|
name: "Oliver Smith",
|
|
294
297
|
email: "oliver@example.com",
|
|
295
298
|
password: "welcome",
|
|
299
|
+
subdomainName: "spinkart",
|
|
296
300
|
};
|
|
297
301
|
const OTP_EMAIL_PATTERN = "is your login code";
|
|
298
302
|
const SLACK_DEFAULT_CHANNEL = "general";
|
|
@@ -4829,23 +4833,26 @@ const generateStagingData = (product = "invoice") => {
|
|
|
4829
4833
|
const timestamp = jobCompletionIndex
|
|
4830
4834
|
? `${dateTimeString}-${jobCompletionIndex}`
|
|
4831
4835
|
: dateTimeString;
|
|
4832
|
-
const firstName = "André";
|
|
4833
|
-
const lastName = "O'Reilly";
|
|
4836
|
+
const firstName = IS_STAGING_ENV ? "André" : CREDENTIALS.firstName;
|
|
4837
|
+
const lastName = IS_STAGING_ENV ? "O'Reilly" : CREDENTIALS.lastName;
|
|
4834
4838
|
const otpBypassKey = process.env.OTP_BYPASS_KEY;
|
|
4835
|
-
const
|
|
4839
|
+
const isGlobalSetup = !getGlobalUserState(); // For dev global setup staging data, we use the default subdomain `spinkart`.
|
|
4840
|
+
const shouldKeepDefaultDataForDevEnv = isGlobalSetup && IS_DEV_ENV;
|
|
4841
|
+
const stagingOrganization = shouldKeepDefaultDataForDevEnv
|
|
4842
|
+
? CREDENTIALS.subdomainName
|
|
4843
|
+
: `cpt-${product}-${timestamp}`;
|
|
4844
|
+
const email = shouldKeepDefaultDataForDevEnv
|
|
4845
|
+
? CREDENTIALS.email
|
|
4846
|
+
: `cpt${otpBypassKey}+${product}+${timestamp}@bigbinary.com`;
|
|
4836
4847
|
return {
|
|
4837
4848
|
firstName,
|
|
4838
4849
|
lastName,
|
|
4839
4850
|
otp: 111111,
|
|
4840
|
-
domain: `neeto${product}.net`,
|
|
4841
|
-
currentUserName:
|
|
4842
|
-
? joinString(firstName, lastName)
|
|
4843
|
-
: CREDENTIALS.name,
|
|
4851
|
+
domain: IS_STAGING_ENV ? `neeto${product}.net` : `lvh.me`,
|
|
4852
|
+
currentUserName: joinString(firstName, lastName),
|
|
4844
4853
|
businessName: stagingOrganization,
|
|
4845
|
-
subdomainName:
|
|
4846
|
-
email
|
|
4847
|
-
? `cpt${otpBypassKey}+${product}+${timestamp}@bigbinary.com`
|
|
4848
|
-
: CREDENTIALS.email,
|
|
4854
|
+
subdomainName: stagingOrganization,
|
|
4855
|
+
email,
|
|
4849
4856
|
};
|
|
4850
4857
|
};
|
|
4851
4858
|
|
|
@@ -4886,7 +4893,7 @@ const removeCredentialFile = () => {
|
|
|
4886
4893
|
require$$0$3.unlink(STORAGE_STATE, error => {
|
|
4887
4894
|
if (!error)
|
|
4888
4895
|
return;
|
|
4889
|
-
console.
|
|
4896
|
+
console.log(error);
|
|
4890
4897
|
});
|
|
4891
4898
|
};
|
|
4892
4899
|
const clearCredentials = () => {
|
|
@@ -4935,7 +4942,12 @@ const shouldSkipSetupAndTeardown = () => { var _a; return ((_a = getGlobalUserSt
|
|
|
4935
4942
|
const shouldSkipCustomDomainSetup = () => process.env.SETUP_CUSTOM_DOMAIN !== "true" || !IS_STAGING_ENV;
|
|
4936
4943
|
const baseURLGenerator = (product, customSubdomain) => {
|
|
4937
4944
|
const { subdomainName } = getGlobalUserState();
|
|
4938
|
-
|
|
4945
|
+
const subdomain = customSubdomain !== null && customSubdomain !== void 0 ? customSubdomain : subdomainName;
|
|
4946
|
+
const railsPort = process.env.RAILS_SERVER_PORT;
|
|
4947
|
+
const baseURL = IS_DEV_ENV
|
|
4948
|
+
? `http://${subdomain}.lvh.me:${railsPort}`
|
|
4949
|
+
: `https://${subdomain}.neeto${product.toLowerCase()}.net`;
|
|
4950
|
+
return baseURL;
|
|
4939
4951
|
};
|
|
4940
4952
|
// trims and replaces multiple whitespace characters in a string with a single space
|
|
4941
4953
|
const squish = (text) => text.trim().replace(/\s+/g, " ");
|
|
@@ -5015,7 +5027,7 @@ const globalShortcuts = (t) => [
|
|
|
5015
5027
|
const generatePhoneNumber = () => `${"+91"} 9${faker.string.numeric(4)} ${faker.string.numeric(5)}`;
|
|
5016
5028
|
const initializeTestData = (product) => {
|
|
5017
5029
|
const credentials = generateStagingData(product.toLowerCase());
|
|
5018
|
-
const baseURL =
|
|
5030
|
+
const baseURL = baseURLGenerator(product, credentials.subdomainName);
|
|
5019
5031
|
return { credentials, baseURL };
|
|
5020
5032
|
};
|
|
5021
5033
|
|
|
@@ -116651,7 +116663,7 @@ class MicrosoftPage extends IntegrationBase {
|
|
|
116651
116663
|
const acceptBtn = this.page.locator(MICROSOFT_LOGIN_SELECTORS.acceptButton);
|
|
116652
116664
|
await acceptBtn.click();
|
|
116653
116665
|
await expect(acceptBtn).toBeHidden({ timeout: 10000 });
|
|
116654
|
-
await this.page.waitForLoadState("load", { timeout:
|
|
116666
|
+
await this.page.waitForLoadState("load", { timeout: 50000 });
|
|
116655
116667
|
};
|
|
116656
116668
|
this.revokePermissions = async () => {
|
|
116657
116669
|
await this.page.goto(THIRD_PARTY_ROUTES.microsoft.myApps);
|
|
@@ -118478,30 +118490,30 @@ class TeamMembers {
|
|
|
118478
118490
|
}
|
|
118479
118491
|
}
|
|
118480
118492
|
|
|
118481
|
-
const
|
|
118482
|
-
|
|
118483
|
-
neetoPlaywrightUtilities, loginPath = "/", }) => {
|
|
118484
|
-
if (shouldSkipSetupAndTeardown())
|
|
118485
|
-
return;
|
|
118486
|
-
await page.goto(loginPath, { timeout: 20000 });
|
|
118493
|
+
const fillCredentialsAndSubmit = async ({ page, loginPath = "/", email = CREDENTIALS.email, }) => {
|
|
118494
|
+
await page.goto(loginPath, { timeout: 30000 });
|
|
118487
118495
|
await page.waitForLoadState("load", { timeout: 35000 });
|
|
118488
|
-
await page
|
|
118489
|
-
.getByTestId(LOGIN_SELECTORS.emailTextField)
|
|
118490
|
-
.fill(CREDENTIALS.email);
|
|
118496
|
+
await page.getByTestId(LOGIN_SELECTORS.emailTextField).fill(email);
|
|
118491
118497
|
await page
|
|
118492
118498
|
.getByTestId(LOGIN_SELECTORS.passwordTextField)
|
|
118493
118499
|
.fill(CREDENTIALS.password);
|
|
118494
118500
|
const submitButton = page.getByTestId(LOGIN_SELECTORS.submitButton);
|
|
118495
118501
|
await submitButton.click();
|
|
118496
118502
|
await expect(submitButton).toBeHidden({ timeout: 15000 });
|
|
118503
|
+
await expect(page.getByTestId(COMMON_SELECTORS.floatingActionMenuButton)).toBeVisible({ timeout: 60000 });
|
|
118504
|
+
};
|
|
118505
|
+
const loginWithoutSSO = async ({ page, loginPath = "/", email = CREDENTIALS.email, }) => {
|
|
118506
|
+
if (shouldSkipSetupAndTeardown())
|
|
118507
|
+
return;
|
|
118508
|
+
await fillCredentialsAndSubmit({ page, loginPath, email });
|
|
118497
118509
|
const userCredentials = readFileSyncIfExists();
|
|
118498
118510
|
await page.context().storageState({ path: STORAGE_STATE });
|
|
118499
118511
|
const mergedCredentials = mergeAll([readFileSyncIfExists(), userCredentials]);
|
|
118500
118512
|
writeDataToFile(JSON.stringify(mergedCredentials, null, 2));
|
|
118501
118513
|
updateCredentials({ key: "isLoggedIn", value: "true" });
|
|
118502
118514
|
};
|
|
118503
|
-
const login = async ({ page, neetoPlaywrightUtilities, loginPath, }) =>
|
|
118504
|
-
(await loginWithoutSSO({ page,
|
|
118515
|
+
const login = async ({ page, neetoPlaywrightUtilities, loginPath, email, }) => IS_DEV_ENV &&
|
|
118516
|
+
(await loginWithoutSSO({ page, loginPath, email }));
|
|
118505
118517
|
const generateRandomBypassEmail = () => `cpt${process.env.OTP_BYPASS_KEY}+${faker.number.int()}@bigbinary.com`;
|
|
118506
118518
|
|
|
118507
118519
|
const extractSubdomainFromError = (errorString) => {
|
|
@@ -118509,13 +118521,43 @@ const extractSubdomainFromError = (errorString) => {
|
|
|
118509
118521
|
const matches = errorString.match(regex);
|
|
118510
118522
|
return matches[1];
|
|
118511
118523
|
};
|
|
118524
|
+
const createOrganizationViaRake = async ({ email, firstName, lastName, subdomainName, }) => {
|
|
118525
|
+
var _a, _b;
|
|
118526
|
+
const workingDirectory = process.env.RAILS_ROOT || "..";
|
|
118527
|
+
const rakeTaskName = "playwright:create_organization";
|
|
118528
|
+
const childProcess = spawn("bundle", [
|
|
118529
|
+
"exec",
|
|
118530
|
+
"rake",
|
|
118531
|
+
rakeTaskName,
|
|
118532
|
+
"--",
|
|
118533
|
+
`--first_name=${firstName}`,
|
|
118534
|
+
`--last_name=${lastName}`,
|
|
118535
|
+
`--email=${email}`,
|
|
118536
|
+
`--subdomain=${subdomainName}`,
|
|
118537
|
+
], {
|
|
118538
|
+
cwd: workingDirectory,
|
|
118539
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
118540
|
+
});
|
|
118541
|
+
let stdout = "";
|
|
118542
|
+
let stderr = "";
|
|
118543
|
+
(_a = childProcess.stdout) === null || _a === void 0 ? void 0 : _a.on("data", data => {
|
|
118544
|
+
stdout += data.toString("utf-8");
|
|
118545
|
+
});
|
|
118546
|
+
(_b = childProcess.stderr) === null || _b === void 0 ? void 0 : _b.on("data", data => {
|
|
118547
|
+
stderr += data.toString("utf-8");
|
|
118548
|
+
});
|
|
118549
|
+
const exitCode = await new Promise((resolve, reject) => {
|
|
118550
|
+
childProcess.on("error", reject);
|
|
118551
|
+
childProcess.on("close", resolve);
|
|
118552
|
+
});
|
|
118553
|
+
if (exitCode !== 0) {
|
|
118554
|
+
throw new Error(`Failed to create organization: ${stderr || stdout || `Exit code ${exitCode}`}`);
|
|
118555
|
+
}
|
|
118556
|
+
return stdout.trim();
|
|
118557
|
+
};
|
|
118512
118558
|
|
|
118513
118559
|
class OrganizationPage {
|
|
118514
118560
|
constructor(page, neetoPlaywrightUtilities) {
|
|
118515
|
-
this.baseUrlGenerator = (appName) => {
|
|
118516
|
-
const { subdomainName } = getGlobalUserState();
|
|
118517
|
-
return `https://${subdomainName}.${appName}.net`;
|
|
118518
|
-
};
|
|
118519
118561
|
this.fillOTP = async (otp = faker.string.numeric(6)) => {
|
|
118520
118562
|
await this.neetoPlaywrightUtilities.waitForPageLoad();
|
|
118521
118563
|
const otpTextBox = this.page.getByTestId(SIGNUP_SELECTORS.otpTextBox);
|
|
@@ -118530,8 +118572,17 @@ class OrganizationPage {
|
|
|
118530
118572
|
await expect(submitButton).toBeHidden({ timeout: 35000 });
|
|
118531
118573
|
};
|
|
118532
118574
|
this.createOrganization = async ({ email, businessName, subdomainName, firstName, lastName, appName, }) => {
|
|
118533
|
-
if (
|
|
118575
|
+
if (shouldSkipSetupAndTeardown())
|
|
118576
|
+
return;
|
|
118577
|
+
if (IS_DEV_ENV) {
|
|
118578
|
+
await createOrganizationViaRake({
|
|
118579
|
+
email,
|
|
118580
|
+
firstName,
|
|
118581
|
+
lastName,
|
|
118582
|
+
subdomainName,
|
|
118583
|
+
});
|
|
118534
118584
|
return;
|
|
118585
|
+
}
|
|
118535
118586
|
const appNameInLowerCase = appName.toLowerCase();
|
|
118536
118587
|
const isNeetoAuth = appNameInLowerCase === "neetoauth";
|
|
118537
118588
|
isNeetoAuth
|
|
@@ -118567,7 +118618,9 @@ class OrganizationPage {
|
|
|
118567
118618
|
subdomainName: user.subdomainName,
|
|
118568
118619
|
appName: `neeto${product}`,
|
|
118569
118620
|
});
|
|
118570
|
-
await
|
|
118621
|
+
await this.neetoPlaywrightUtilities.waitForPageLoad({
|
|
118622
|
+
customPageContext: this.page,
|
|
118623
|
+
});
|
|
118571
118624
|
const userCredentials = readFileSyncIfExists();
|
|
118572
118625
|
await this.page.context().storageState({ path: STORAGE_STATE });
|
|
118573
118626
|
const mergedCredentials = mergeAll([
|
|
@@ -118578,7 +118631,7 @@ class OrganizationPage {
|
|
|
118578
118631
|
updateCredentials({ key: "isLoggedIn", value: "true" });
|
|
118579
118632
|
updateCredentials({
|
|
118580
118633
|
key: "baseUrl",
|
|
118581
|
-
value:
|
|
118634
|
+
value: baseURLGenerator(product),
|
|
118582
118635
|
});
|
|
118583
118636
|
};
|
|
118584
118637
|
this.updateSubdomainIfExists = async (appName) => {
|
|
@@ -118600,7 +118653,7 @@ class OrganizationPage {
|
|
|
118600
118653
|
key: "businessName",
|
|
118601
118654
|
value: newOrganizationName,
|
|
118602
118655
|
});
|
|
118603
|
-
process.env.BASE_URL =
|
|
118656
|
+
process.env.BASE_URL = baseURLGenerator(appName);
|
|
118604
118657
|
await this.page
|
|
118605
118658
|
.getByTestId(SIGNUP_SELECTORS.organizationNameTextField)
|
|
118606
118659
|
.fill(newOrganizationName);
|
|
@@ -118631,6 +118684,8 @@ class OrganizationPage {
|
|
|
118631
118684
|
await this.fillOTP(otp);
|
|
118632
118685
|
};
|
|
118633
118686
|
this.setupProfile = async ({ firstName = faker.person.firstName(), lastName = faker.person.lastName(), country, } = {}) => {
|
|
118687
|
+
if (IS_DEV_ENV)
|
|
118688
|
+
return;
|
|
118634
118689
|
await this.neetoPlaywrightUtilities.waitForPageLoad();
|
|
118635
118690
|
await this.page
|
|
118636
118691
|
.getByTestId(SIGNUP_SELECTORS.firstNameTextField)
|
|
@@ -118648,36 +118703,62 @@ class OrganizationPage {
|
|
|
118648
118703
|
});
|
|
118649
118704
|
};
|
|
118650
118705
|
this.loginAndOnboard = async ({ email, firstName, lastName, country, handleOnboarding, baseURL = process.env.BASE_URL, fetchOtpFromEmail, }) => {
|
|
118651
|
-
|
|
118652
|
-
|
|
118653
|
-
|
|
118654
|
-
|
|
118655
|
-
|
|
118656
|
-
|
|
118657
|
-
|
|
118658
|
-
|
|
118706
|
+
if (IS_DEV_ENV) {
|
|
118707
|
+
await fillCredentialsAndSubmit({
|
|
118708
|
+
page: this.page,
|
|
118709
|
+
email,
|
|
118710
|
+
loginPath: `${baseURL}${ROUTES.admin}`,
|
|
118711
|
+
});
|
|
118712
|
+
}
|
|
118713
|
+
else {
|
|
118714
|
+
await this.page.goto(`${baseURL}${ROUTES.admin}`, { timeout: 20000 });
|
|
118715
|
+
fetchOtpFromEmail === undefined
|
|
118716
|
+
? await this.loginViaSSO(email)
|
|
118717
|
+
: await this.loginWithFastmailEmail({ email, fetchOtpFromEmail });
|
|
118718
|
+
await this.setupProfile({ firstName, lastName, country });
|
|
118719
|
+
await this.page.waitForURL(new RegExp(getGlobalUserState().domain), {
|
|
118720
|
+
waitUntil: "load",
|
|
118721
|
+
});
|
|
118722
|
+
}
|
|
118659
118723
|
await handleOnboarding();
|
|
118660
118724
|
};
|
|
118661
118725
|
this.signUp = async ({ credentials, fetchOtpFromEmail, appName, }) => {
|
|
118662
|
-
|
|
118663
|
-
|
|
118664
|
-
await this.submitEmail(credentials.email);
|
|
118665
|
-
if (fetchOtpFromEmail !== undefined) {
|
|
118666
|
-
otp = await fetchOtpFromEmail({
|
|
118726
|
+
if (IS_DEV_ENV) {
|
|
118727
|
+
await createOrganizationViaRake({
|
|
118667
118728
|
email: credentials.email,
|
|
118668
|
-
|
|
118729
|
+
firstName: credentials.firstName,
|
|
118730
|
+
lastName: credentials.lastName,
|
|
118731
|
+
subdomainName: credentials.subdomainName,
|
|
118732
|
+
});
|
|
118733
|
+
await fillCredentialsAndSubmit({
|
|
118734
|
+
page: this.page,
|
|
118735
|
+
email: credentials.email,
|
|
118736
|
+
loginPath: `${baseURLGenerator(appName, credentials.subdomainName)}${ROUTES.admin}`,
|
|
118669
118737
|
});
|
|
118670
118738
|
}
|
|
118671
|
-
|
|
118672
|
-
|
|
118673
|
-
credentials
|
|
118674
|
-
|
|
118675
|
-
|
|
118676
|
-
|
|
118739
|
+
else {
|
|
118740
|
+
let otp = "123456";
|
|
118741
|
+
await this.page.goto(`${ROUTES.neetoAuthSignup}?redirect_uri=${credentials.domain}`, { timeout: 20000 });
|
|
118742
|
+
await this.submitEmail(credentials.email);
|
|
118743
|
+
if (fetchOtpFromEmail !== undefined) {
|
|
118744
|
+
otp = await fetchOtpFromEmail({
|
|
118745
|
+
email: credentials.email,
|
|
118746
|
+
timeout: 4 * 60 * 1000,
|
|
118747
|
+
});
|
|
118748
|
+
}
|
|
118749
|
+
await this.fillOTP(otp);
|
|
118750
|
+
await this.fillOrganizationDetails({
|
|
118751
|
+
credentials,
|
|
118752
|
+
appName,
|
|
118753
|
+
});
|
|
118754
|
+
await this.page.waitForURL(new RegExp(credentials.domain));
|
|
118755
|
+
}
|
|
118677
118756
|
const STORAGE_STATE = await this.page.context().storageState();
|
|
118678
118757
|
return { STORAGE_STATE, baseURL: process.env.BASE_URL };
|
|
118679
118758
|
};
|
|
118680
118759
|
this.fillOrganizationDetails = async ({ credentials, appName, }) => {
|
|
118760
|
+
if (IS_DEV_ENV)
|
|
118761
|
+
return;
|
|
118681
118762
|
const subdomainError = this.page.getByTestId(SIGNUP_SELECTORS.subdomainError);
|
|
118682
118763
|
const organizationSubmitButton = this.page.getByTestId(SIGNUP_SELECTORS.organizationSubmitButton);
|
|
118683
118764
|
await this.neetoPlaywrightUtilities.waitForPageLoad();
|
|
@@ -119656,10 +119737,7 @@ const initializeCredentials = (product) => {
|
|
|
119656
119737
|
}
|
|
119657
119738
|
const stagingData = generateStagingData(product);
|
|
119658
119739
|
writeDataToFile(JSON.stringify({ user: stagingData }, null, 2));
|
|
119659
|
-
|
|
119660
|
-
const baseUrl = `https://${stagingData.subdomainName}.${stagingData.domain}`;
|
|
119661
|
-
process.env.BASE_URL = baseUrl;
|
|
119662
|
-
}
|
|
119740
|
+
process.env.BASE_URL = baseURLGenerator(product, stagingData.subdomainName);
|
|
119663
119741
|
};
|
|
119664
119742
|
|
|
119665
119743
|
const assertColumnHeaderVisibility = async ({ page, columnName, shouldBeVisible, }) => {
|
|
@@ -124602,7 +124680,6 @@ const playdashLighthouseConfig = {
|
|
|
124602
124680
|
tags: process.env.TAG,
|
|
124603
124681
|
};
|
|
124604
124682
|
const isCI = isPresent(process.env.NEETO_CI_JOB_ID);
|
|
124605
|
-
const isDevEnv = process.env.TEST_ENV === ENVIRONMENT.development;
|
|
124606
124683
|
const railsPort = process.env.RAILS_SERVER_PORT;
|
|
124607
124684
|
const vitePort = process.env.VITE_PORT;
|
|
124608
124685
|
const definePlaywrightConfig = (overrides) => {
|
|
@@ -124645,7 +124722,7 @@ const definePlaywrightConfig = (overrides) => {
|
|
|
124645
124722
|
timeout: 5 * 60 * 1000,
|
|
124646
124723
|
workers: isCI ? 6 : 5,
|
|
124647
124724
|
reporter: isCI ? reporter : [["line"]],
|
|
124648
|
-
...(
|
|
124725
|
+
...(IS_DEV_ENV && {
|
|
124649
124726
|
webServer: [
|
|
124650
124727
|
{
|
|
124651
124728
|
command: `bundle exec puma -b tcp://0.0.0.0:${railsPort} -C config/puma.rb`,
|
|
@@ -124709,5 +124786,5 @@ const definePlaywrightConfig = (overrides) => {
|
|
|
124709
124786
|
});
|
|
124710
124787
|
};
|
|
124711
124788
|
|
|
124712
|
-
export { ACTIONS, ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, AUDIT_LOGS_SELECTORS, 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, EXAMPLE_URL, 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, 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_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouApi, ThankYouPage, TwilioApi, 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 };
|
|
124789
|
+
export { ACTIONS, ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, AUDIT_LOGS_SELECTORS, 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, EXAMPLE_URL, 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_DEV_ENV, 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, 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_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, fillCredentialsAndSubmit, 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 };
|
|
124713
124790
|
//# sourceMappingURL=index.js.map
|