@bigbinary/neeto-playwright-commons 1.8.45 → 1.8.47
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 +158 -76
- package/index.cjs.js.map +1 -1
- package/index.d.ts +61 -4
- package/index.js +158 -77
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -356,14 +356,26 @@ declare class ZapierPage extends IntegrationBase {
|
|
|
356
356
|
disconnectAndVerify: () => Promise<void>;
|
|
357
357
|
}
|
|
358
358
|
|
|
359
|
-
interface
|
|
359
|
+
interface BasicUserInfo {
|
|
360
|
+
firstName: string;
|
|
361
|
+
lastName: string;
|
|
360
362
|
email: string;
|
|
363
|
+
}
|
|
364
|
+
interface CreateOrganizationProps extends BasicUserInfo {
|
|
361
365
|
businessName: string;
|
|
362
366
|
subdomainName: string;
|
|
363
|
-
firstName: string;
|
|
364
|
-
lastName: string;
|
|
365
367
|
appName: string;
|
|
366
368
|
}
|
|
369
|
+
interface LoginAndOnboardParams extends BasicUserInfo {
|
|
370
|
+
handleOnboarding: () => Promise<void>;
|
|
371
|
+
}
|
|
372
|
+
interface Credentials extends BasicUserInfo {
|
|
373
|
+
otp?: number;
|
|
374
|
+
domain: string;
|
|
375
|
+
currentUserName: string;
|
|
376
|
+
businessName: string;
|
|
377
|
+
subdomainName: string;
|
|
378
|
+
}
|
|
367
379
|
declare class OrganizationPage {
|
|
368
380
|
page: Page;
|
|
369
381
|
neetoPlaywrightUtilities: CustomCommands;
|
|
@@ -372,6 +384,45 @@ declare class OrganizationPage {
|
|
|
372
384
|
createOrganization: ({ email, businessName, subdomainName, firstName, lastName, appName, }: CreateOrganizationProps) => Promise<void>;
|
|
373
385
|
setupOrganization: (product: string) => Promise<void>;
|
|
374
386
|
updateSubdomainIfExists: (appName: string) => Promise<void>;
|
|
387
|
+
loginViaSSO: (email?: string) => Promise<void>;
|
|
388
|
+
setupProfile: ({ firstName, lastName, }?: {
|
|
389
|
+
firstName?: string | undefined;
|
|
390
|
+
lastName?: string | undefined;
|
|
391
|
+
}) => Promise<void>;
|
|
392
|
+
loginAndOnboard: ({ email, firstName, lastName, handleOnboarding, }: LoginAndOnboardParams) => Promise<void>;
|
|
393
|
+
signUp: ({ credentials, fetchOtpFromEmail, appName, }: {
|
|
394
|
+
credentials: Credentials;
|
|
395
|
+
fetchOtpFromEmail?: ((params: {
|
|
396
|
+
email: string;
|
|
397
|
+
timeout: number;
|
|
398
|
+
}) => Promise<string>) | undefined;
|
|
399
|
+
appName: string;
|
|
400
|
+
}) => Promise<{
|
|
401
|
+
STORAGE_STATE: {
|
|
402
|
+
cookies: {
|
|
403
|
+
name: string;
|
|
404
|
+
value: string;
|
|
405
|
+
domain: string;
|
|
406
|
+
path: string;
|
|
407
|
+
expires: number;
|
|
408
|
+
httpOnly: boolean;
|
|
409
|
+
secure: boolean;
|
|
410
|
+
sameSite: "Strict" | "Lax" | "None";
|
|
411
|
+
}[];
|
|
412
|
+
origins: {
|
|
413
|
+
origin: string;
|
|
414
|
+
localStorage: {
|
|
415
|
+
name: string;
|
|
416
|
+
value: string;
|
|
417
|
+
}[];
|
|
418
|
+
}[];
|
|
419
|
+
};
|
|
420
|
+
baseURL: string | undefined;
|
|
421
|
+
}>;
|
|
422
|
+
fillOrganizationDetails: ({ credentials, appName, }: {
|
|
423
|
+
credentials: Credentials;
|
|
424
|
+
appName: string;
|
|
425
|
+
}) => Promise<void>;
|
|
375
426
|
}
|
|
376
427
|
|
|
377
428
|
declare class SidebarSection {
|
|
@@ -413,6 +464,7 @@ declare const ROUTES: {
|
|
|
413
464
|
neetoAuth: string;
|
|
414
465
|
loginLink: string;
|
|
415
466
|
profile: string;
|
|
467
|
+
admin: string;
|
|
416
468
|
myProfile: string;
|
|
417
469
|
authSettings: string;
|
|
418
470
|
webhooks: string;
|
|
@@ -523,6 +575,7 @@ declare const COMMON_SELECTORS: {
|
|
|
523
575
|
header: string;
|
|
524
576
|
sidebarSubLink: (label: string) => string;
|
|
525
577
|
sidebarGoBackButton: (label: string) => string;
|
|
578
|
+
selectSingleValue: string;
|
|
526
579
|
};
|
|
527
580
|
|
|
528
581
|
declare const NEETO_EDITOR_SELECTORS: {
|
|
@@ -982,6 +1035,10 @@ declare const executeWithThrottledResources: ({ code: emulatedCode, kind, networ
|
|
|
982
1035
|
declare const basicHTMLContent: (content: string) => string;
|
|
983
1036
|
declare const hexToRGB: (hex: string) => string;
|
|
984
1037
|
|
|
1038
|
+
declare const filterUtils: {
|
|
1039
|
+
openFilterPane: (page: Page) => Promise<void>;
|
|
1040
|
+
};
|
|
1041
|
+
|
|
985
1042
|
interface CurrentsOverrides {
|
|
986
1043
|
projectId: string;
|
|
987
1044
|
}
|
|
@@ -994,4 +1051,4 @@ interface Overrides {
|
|
|
994
1051
|
}
|
|
995
1052
|
declare const definePlaywrightConfig: (overrides: Overrides) => _playwright_test.PlaywrightTestConfig<{}, {}>;
|
|
996
1053
|
|
|
997
|
-
export { API_ROUTES, BASE_URL, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COMMON_SELECTORS, CREDENTIALS, CustomCommands, type CustomFixture, EMBED_SELECTORS, ENVIRONMENT, EmbedBase, GLOBAL_TRANSLATIONS_PATTERN, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IS_STAGING_ENV, IntegrationBase, KEYBOARD_SHORTCUTS_SELECTORS, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MailosaurUtils, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, OTP_EMAIL_PATTERN, OrganizationPage, PROFILE_SECTION_SELECTORS, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, SIGNUP_SELECTORS, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STORAGE_STATE, SidebarSection, SlackPage, TAGS_SELECTORS, THIRD_PARTY_ROUTES, TOASTR_MESSAGES, USER_AGENTS, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, generateRandomBypassEmail, generateStagingData, getByDataQA, getGlobalUserState, headerUtils, hexToRGB, hyphenize, i18nFixture, initializeCredentials, initializeTotp, joinHyphenCase, joinString, login, loginWithoutSSO, memberUtils, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, shouldSkipSetupAndTeardown, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
|
|
1054
|
+
export { API_ROUTES, BASE_URL, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COMMON_SELECTORS, CREDENTIALS, CustomCommands, type CustomFixture, EMBED_SELECTORS, ENVIRONMENT, EmbedBase, GLOBAL_TRANSLATIONS_PATTERN, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IS_STAGING_ENV, IntegrationBase, KEYBOARD_SHORTCUTS_SELECTORS, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MailosaurUtils, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, OTP_EMAIL_PATTERN, OrganizationPage, PROFILE_SECTION_SELECTORS, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, SIGNUP_SELECTORS, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STORAGE_STATE, SidebarSection, SlackPage, TAGS_SELECTORS, THIRD_PARTY_ROUTES, TOASTR_MESSAGES, USER_AGENTS, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, generateRandomBypassEmail, generateStagingData, getByDataQA, getGlobalUserState, headerUtils, hexToRGB, hyphenize, i18nFixture, initializeCredentials, initializeTotp, joinHyphenCase, joinString, login, loginWithoutSSO, memberUtils, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, shouldSkipSetupAndTeardown, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
|
package/index.js
CHANGED
|
@@ -204,6 +204,7 @@ const COMMON_SELECTORS = {
|
|
|
204
204
|
header: "neeto-molecules-header",
|
|
205
205
|
sidebarSubLink: (label) => `${hyphenize(label)}-sub-link`,
|
|
206
206
|
sidebarGoBackButton: (label) => `${hyphenize(label)}-go-back-button`,
|
|
207
|
+
selectSingleValue: "select-single-value",
|
|
207
208
|
};
|
|
208
209
|
|
|
209
210
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
@@ -12378,7 +12379,7 @@ class EmbedBase {
|
|
|
12378
12379
|
await expect(popUpButton).toBeVisible();
|
|
12379
12380
|
await popUpButton.click();
|
|
12380
12381
|
await expect(this.embedTestPage.locator(EMBED_SELECTORS.loader(this.appName))).toBeHidden({
|
|
12381
|
-
timeout:
|
|
12382
|
+
timeout: 40000,
|
|
12382
12383
|
});
|
|
12383
12384
|
};
|
|
12384
12385
|
this.copyEmbedScript = async ({ embedLabel }) => {
|
|
@@ -12522,6 +12523,7 @@ const ROUTES = {
|
|
|
12522
12523
|
neetoAuth: NEETO_AUTH_BASE_URL(),
|
|
12523
12524
|
loginLink: "/login",
|
|
12524
12525
|
profile: "/profile",
|
|
12526
|
+
admin: "/admin",
|
|
12525
12527
|
myProfile: "/my/profile",
|
|
12526
12528
|
authSettings: "/settings",
|
|
12527
12529
|
webhooks: "/webhooks",
|
|
@@ -13446,6 +13448,18 @@ class ZapierPage extends IntegrationBase {
|
|
|
13446
13448
|
}
|
|
13447
13449
|
}
|
|
13448
13450
|
|
|
13451
|
+
const LOGIN_SELECTORS = {
|
|
13452
|
+
appleAuthenticationButton: "apple-authentication-button",
|
|
13453
|
+
emailTextField: "login-email-text-field",
|
|
13454
|
+
googleAuthenticationButton: "google-authentication-button",
|
|
13455
|
+
githubAuthenticationButton: "github-authentication-button",
|
|
13456
|
+
loginViaEmailButton: "login-via-email-button",
|
|
13457
|
+
passwordTextField: "login-password-text-field",
|
|
13458
|
+
rememberMeCheckBox: "login-remember-me-check-box",
|
|
13459
|
+
submitButton: "login-submit-button",
|
|
13460
|
+
twitterAuthenticationButton: "twitter-authentication-button",
|
|
13461
|
+
};
|
|
13462
|
+
|
|
13449
13463
|
const SIGNUP_SELECTORS = {
|
|
13450
13464
|
emailTextField: "signup-email-text-field",
|
|
13451
13465
|
firstNameTextField: "signup-profile-first-name-text-field",
|
|
@@ -13462,6 +13476,29 @@ const SIGNUP_SELECTORS = {
|
|
|
13462
13476
|
unregisterdEmailError: "unregisterd-email-error",
|
|
13463
13477
|
};
|
|
13464
13478
|
|
|
13479
|
+
const loginWithoutSSO = async ({ page, neetoPlaywrightUtilities, loginPath = "/", }) => {
|
|
13480
|
+
if (shouldSkipSetupAndTeardown())
|
|
13481
|
+
return;
|
|
13482
|
+
await page.goto(loginPath);
|
|
13483
|
+
await page.getByTestId("login-email-text-field").fill(CREDENTIALS.email);
|
|
13484
|
+
await page
|
|
13485
|
+
.getByTestId("login-password-text-field")
|
|
13486
|
+
.fill(CREDENTIALS.password);
|
|
13487
|
+
const login = neetoPlaywrightUtilities.interceptMultipleResponses({
|
|
13488
|
+
times: 1,
|
|
13489
|
+
});
|
|
13490
|
+
await page.getByTestId(LOGIN_SELECTORS.submitButton).click();
|
|
13491
|
+
await login;
|
|
13492
|
+
const userCredentials = readFileSyncIfExists();
|
|
13493
|
+
await page.context().storageState({ path: STORAGE_STATE });
|
|
13494
|
+
const mergedCredentials = mergeAll([readFileSyncIfExists(), userCredentials]);
|
|
13495
|
+
writeDataToFile(JSON.stringify(mergedCredentials, null, 2));
|
|
13496
|
+
updateCredentials({ key: "isLoggedIn", value: "true" });
|
|
13497
|
+
};
|
|
13498
|
+
const login = async ({ page, neetoPlaywrightUtilities, loginPath, }) => !IS_STAGING_ENV &&
|
|
13499
|
+
(await loginWithoutSSO({ page, neetoPlaywrightUtilities, loginPath }));
|
|
13500
|
+
const generateRandomBypassEmail = () => `cpt${process.env.OTP_BYPASS_KEY}+${faker.number.int()}@bigbinary.com`;
|
|
13501
|
+
|
|
13465
13502
|
const extractSubdomainFromError = (errorString) => {
|
|
13466
13503
|
const regex = /cpt[a-zA-Z0-9-]+/g;
|
|
13467
13504
|
const matches = errorString.match(regex);
|
|
@@ -13494,47 +13531,18 @@ class OrganizationPage {
|
|
|
13494
13531
|
await this.page.getByTestId(SIGNUP_SELECTORS.submitButton).click();
|
|
13495
13532
|
await signup;
|
|
13496
13533
|
await this.page.getByTestId(SIGNUP_SELECTORS.otpTextBox).fill(defaultOtp);
|
|
13497
|
-
await this.
|
|
13498
|
-
|
|
13499
|
-
|
|
13500
|
-
|
|
13501
|
-
|
|
13502
|
-
|
|
13503
|
-
|
|
13504
|
-
|
|
13505
|
-
|
|
13506
|
-
|
|
13507
|
-
|
|
13508
|
-
await fetchSubdomainAvailability;
|
|
13509
|
-
const subdomainError = this.page.getByTestId(SIGNUP_SELECTORS.subdomainError);
|
|
13510
|
-
const subdomainErrorCount = await subdomainError.count();
|
|
13511
|
-
if (subdomainErrorCount !== 0) {
|
|
13512
|
-
await this.updateSubdomainIfExists(appNameInLowerCase);
|
|
13513
|
-
}
|
|
13514
|
-
const fetchProfile = this.neetoPlaywrightUtilities.interceptMultipleResponses({
|
|
13515
|
-
times: 2,
|
|
13516
|
-
timeout: 60 * 1000,
|
|
13517
|
-
baseUrl: NEETO_AUTH_BASE_URL(),
|
|
13518
|
-
});
|
|
13519
|
-
await this.page
|
|
13520
|
-
.getByTestId(SIGNUP_SELECTORS.organizationSubmitButton)
|
|
13521
|
-
.click();
|
|
13522
|
-
await fetchProfile;
|
|
13523
|
-
await this.page.waitForURL(`**${ROUTES.profile}`, { timeout: 60 * 1000 });
|
|
13524
|
-
await this.page
|
|
13525
|
-
.getByTestId(SIGNUP_SELECTORS.firstNameTextField)
|
|
13526
|
-
.fill(firstName);
|
|
13527
|
-
await this.page
|
|
13528
|
-
.getByTestId(SIGNUP_SELECTORS.lastNameTextField)
|
|
13529
|
-
.fill(lastName);
|
|
13530
|
-
await this.page.getByTestId(COMMON_SELECTORS.checkbox).click();
|
|
13531
|
-
const submitProfile = this.neetoPlaywrightUtilities.interceptMultipleResponses({
|
|
13532
|
-
responseUrl: ROUTES.signup,
|
|
13533
|
-
timeout: 1000 * 60,
|
|
13534
|
-
baseUrl: NEETO_AUTH_BASE_URL(),
|
|
13534
|
+
await this.fillOrganizationDetails({
|
|
13535
|
+
credentials: {
|
|
13536
|
+
firstName,
|
|
13537
|
+
lastName,
|
|
13538
|
+
email,
|
|
13539
|
+
currentUserName: email,
|
|
13540
|
+
businessName,
|
|
13541
|
+
subdomainName,
|
|
13542
|
+
domain: appNameInLowerCase,
|
|
13543
|
+
},
|
|
13544
|
+
appName: appNameInLowerCase,
|
|
13535
13545
|
});
|
|
13536
|
-
await this.page.getByTestId(SIGNUP_SELECTORS.profileSubmitButton).click();
|
|
13537
|
-
await submitProfile;
|
|
13538
13546
|
await this.page.waitForURL(new RegExp(getGlobalUserState().domain), {
|
|
13539
13547
|
waitUntil: "load",
|
|
13540
13548
|
});
|
|
@@ -13603,6 +13611,106 @@ class OrganizationPage {
|
|
|
13603
13611
|
}
|
|
13604
13612
|
}
|
|
13605
13613
|
};
|
|
13614
|
+
this.loginViaSSO = async (email = generateRandomBypassEmail()) => {
|
|
13615
|
+
await this.page.getByTestId(LOGIN_SELECTORS.emailTextField).fill(email);
|
|
13616
|
+
await expect(async () => {
|
|
13617
|
+
await this.page.getByTestId(LOGIN_SELECTORS.submitButton).click();
|
|
13618
|
+
await expect(this.page.getByTestId(SIGNUP_SELECTORS.unregisterdEmailError)).toBeHidden();
|
|
13619
|
+
}).toPass({ timeout: 15000 });
|
|
13620
|
+
await this.page
|
|
13621
|
+
.getByTestId(SIGNUP_SELECTORS.otpTextBox)
|
|
13622
|
+
.fill(faker.string.numeric(6));
|
|
13623
|
+
};
|
|
13624
|
+
this.setupProfile = async ({ firstName = faker.person.firstName(), lastName = faker.person.lastName(), } = {}) => {
|
|
13625
|
+
await this.page
|
|
13626
|
+
.getByTestId(SIGNUP_SELECTORS.firstNameTextField)
|
|
13627
|
+
.fill(firstName);
|
|
13628
|
+
await this.page
|
|
13629
|
+
.getByTestId(SIGNUP_SELECTORS.lastNameTextField)
|
|
13630
|
+
.fill(lastName);
|
|
13631
|
+
await this.page.getByTestId(COMMON_SELECTORS.checkbox).click();
|
|
13632
|
+
const submitProfile = this.neetoPlaywrightUtilities.interceptMultipleResponses({
|
|
13633
|
+
customPageContext: this.page,
|
|
13634
|
+
responseUrl: ROUTES.signup,
|
|
13635
|
+
baseUrl: NEETO_AUTH_BASE_URL(),
|
|
13636
|
+
timeout: 60000,
|
|
13637
|
+
});
|
|
13638
|
+
await this.page.getByTestId(SIGNUP_SELECTORS.profileSubmitButton).click();
|
|
13639
|
+
await submitProfile;
|
|
13640
|
+
await expect(this.page.getByTestId(COMMON_SELECTORS.pageLoader)).toBeHidden();
|
|
13641
|
+
};
|
|
13642
|
+
this.loginAndOnboard = async ({ email, firstName, lastName, handleOnboarding, }) => {
|
|
13643
|
+
await this.page.goto(ROUTES.admin);
|
|
13644
|
+
await this.loginViaSSO(email);
|
|
13645
|
+
await this.setupProfile({ firstName, lastName });
|
|
13646
|
+
await this.page.waitForURL(new RegExp(getGlobalUserState().domain), {
|
|
13647
|
+
waitUntil: "load",
|
|
13648
|
+
});
|
|
13649
|
+
await handleOnboarding();
|
|
13650
|
+
};
|
|
13651
|
+
this.signUp = async ({ credentials, fetchOtpFromEmail, appName, }) => {
|
|
13652
|
+
let otp = "123456";
|
|
13653
|
+
await this.page.goto(`${ROUTES.neetoAuthSignup}?redirect_uri=${credentials.domain}`);
|
|
13654
|
+
await this.page
|
|
13655
|
+
.getByTestId(SIGNUP_SELECTORS.emailTextField)
|
|
13656
|
+
.fill(credentials.email);
|
|
13657
|
+
const signup = this.neetoPlaywrightUtilities.interceptMultipleResponses({
|
|
13658
|
+
responseUrl: ROUTES.signup,
|
|
13659
|
+
timeout: 60 * 1000,
|
|
13660
|
+
baseUrl: NEETO_AUTH_BASE_URL(),
|
|
13661
|
+
});
|
|
13662
|
+
await this.page.getByTestId(SIGNUP_SELECTORS.submitButton).click();
|
|
13663
|
+
await signup;
|
|
13664
|
+
if (fetchOtpFromEmail !== undefined) {
|
|
13665
|
+
otp = await fetchOtpFromEmail({
|
|
13666
|
+
email: credentials.email,
|
|
13667
|
+
timeout: 4 * 60 * 1000,
|
|
13668
|
+
});
|
|
13669
|
+
}
|
|
13670
|
+
await this.page.getByTestId(SIGNUP_SELECTORS.otpTextBox).fill(otp);
|
|
13671
|
+
await this.fillOrganizationDetails({
|
|
13672
|
+
credentials,
|
|
13673
|
+
appName,
|
|
13674
|
+
});
|
|
13675
|
+
await this.page.waitForURL(new RegExp(credentials.domain));
|
|
13676
|
+
const STORAGE_STATE = await this.page.context().storageState();
|
|
13677
|
+
return { STORAGE_STATE, baseURL: process.env.BASE_URL };
|
|
13678
|
+
};
|
|
13679
|
+
this.fillOrganizationDetails = async ({ credentials, appName, }) => {
|
|
13680
|
+
await this.page
|
|
13681
|
+
.getByTestId(SIGNUP_SELECTORS.organizationNameTextField)
|
|
13682
|
+
.fill(credentials.businessName);
|
|
13683
|
+
const fetchSubdomainAvailability = this.neetoPlaywrightUtilities.interceptMultipleResponses({
|
|
13684
|
+
responseUrl: ROUTES.subdomainAvailability,
|
|
13685
|
+
timeout: 60 * 1000,
|
|
13686
|
+
baseUrl: NEETO_AUTH_BASE_URL(),
|
|
13687
|
+
});
|
|
13688
|
+
await this.page
|
|
13689
|
+
.getByTestId(SIGNUP_SELECTORS.subdomainNameTextField)
|
|
13690
|
+
.fill(credentials.subdomainName);
|
|
13691
|
+
await fetchSubdomainAvailability;
|
|
13692
|
+
const subdomainError = this.page.getByTestId(SIGNUP_SELECTORS.subdomainError);
|
|
13693
|
+
const subdomainErrorCount = await subdomainError.count();
|
|
13694
|
+
if (subdomainErrorCount !== 0) {
|
|
13695
|
+
await this.updateSubdomainIfExists(appName);
|
|
13696
|
+
}
|
|
13697
|
+
const fetchProfile = this.neetoPlaywrightUtilities.interceptMultipleResponses({
|
|
13698
|
+
times: 2,
|
|
13699
|
+
timeout: 60 * 1000,
|
|
13700
|
+
baseUrl: NEETO_AUTH_BASE_URL(),
|
|
13701
|
+
});
|
|
13702
|
+
await this.page
|
|
13703
|
+
.getByTestId(SIGNUP_SELECTORS.organizationSubmitButton)
|
|
13704
|
+
.click();
|
|
13705
|
+
await fetchProfile;
|
|
13706
|
+
await this.page.waitForURL(`**${ROUTES.profile}`, {
|
|
13707
|
+
timeout: 60 * 1000,
|
|
13708
|
+
});
|
|
13709
|
+
await this.setupProfile({
|
|
13710
|
+
firstName: credentials.firstName,
|
|
13711
|
+
lastName: credentials.lastName,
|
|
13712
|
+
});
|
|
13713
|
+
};
|
|
13606
13714
|
this.page = page;
|
|
13607
13715
|
this.neetoPlaywrightUtilities = neetoPlaywrightUtilities;
|
|
13608
13716
|
}
|
|
@@ -13686,18 +13794,6 @@ const NEETO_FILTERS_SELECTORS = {
|
|
|
13686
13794
|
paneModalCrossIcon: "neeto-filters-close-button",
|
|
13687
13795
|
};
|
|
13688
13796
|
|
|
13689
|
-
const LOGIN_SELECTORS = {
|
|
13690
|
-
appleAuthenticationButton: "apple-authentication-button",
|
|
13691
|
-
emailTextField: "login-email-text-field",
|
|
13692
|
-
googleAuthenticationButton: "google-authentication-button",
|
|
13693
|
-
githubAuthenticationButton: "github-authentication-button",
|
|
13694
|
-
loginViaEmailButton: "login-via-email-button",
|
|
13695
|
-
passwordTextField: "login-password-text-field",
|
|
13696
|
-
rememberMeCheckBox: "login-remember-me-check-box",
|
|
13697
|
-
submitButton: "login-submit-button",
|
|
13698
|
-
twitterAuthenticationButton: "twitter-authentication-button",
|
|
13699
|
-
};
|
|
13700
|
-
|
|
13701
13797
|
const MEMBER_SELECTORS = {
|
|
13702
13798
|
membersTab: "members-nav-tab",
|
|
13703
13799
|
newButton: "ntm-add-member-button",
|
|
@@ -13801,29 +13897,6 @@ const initializeCredentials = (product) => {
|
|
|
13801
13897
|
}
|
|
13802
13898
|
};
|
|
13803
13899
|
|
|
13804
|
-
const loginWithoutSSO = async ({ page, neetoPlaywrightUtilities, loginPath = "/", }) => {
|
|
13805
|
-
if (shouldSkipSetupAndTeardown())
|
|
13806
|
-
return;
|
|
13807
|
-
await page.goto(loginPath);
|
|
13808
|
-
await page.getByTestId("login-email-text-field").fill(CREDENTIALS.email);
|
|
13809
|
-
await page
|
|
13810
|
-
.getByTestId("login-password-text-field")
|
|
13811
|
-
.fill(CREDENTIALS.password);
|
|
13812
|
-
const login = neetoPlaywrightUtilities.interceptMultipleResponses({
|
|
13813
|
-
times: 1,
|
|
13814
|
-
});
|
|
13815
|
-
await page.getByTestId(LOGIN_SELECTORS.submitButton).click();
|
|
13816
|
-
await login;
|
|
13817
|
-
const userCredentials = readFileSyncIfExists();
|
|
13818
|
-
await page.context().storageState({ path: STORAGE_STATE });
|
|
13819
|
-
const mergedCredentials = mergeAll([readFileSyncIfExists(), userCredentials]);
|
|
13820
|
-
writeDataToFile(JSON.stringify(mergedCredentials, null, 2));
|
|
13821
|
-
updateCredentials({ key: "isLoggedIn", value: "true" });
|
|
13822
|
-
};
|
|
13823
|
-
const login = async ({ page, neetoPlaywrightUtilities, loginPath, }) => !IS_STAGING_ENV &&
|
|
13824
|
-
(await loginWithoutSSO({ page, neetoPlaywrightUtilities, loginPath }));
|
|
13825
|
-
const generateRandomBypassEmail = () => `cpt${process.env.OTP_BYPASS_KEY}+${faker.number.int()}@bigbinary.com`;
|
|
13826
|
-
|
|
13827
13900
|
const addMemberViaRequest = ({ email, role = MEMBER_TEXTS.agent, appName, neetoPlaywrightUtilities, }) => neetoPlaywrightUtilities.apiRequest({
|
|
13828
13901
|
method: "post",
|
|
13829
13902
|
url: API_ROUTES.teamMembers.index,
|
|
@@ -146792,6 +146865,14 @@ const executeWithThrottledResources = async ({ code: emulatedCode, kind = "both"
|
|
|
146792
146865
|
await cpuThrottlingUsingCDP({ cdpSession, rate: 1 });
|
|
146793
146866
|
};
|
|
146794
146867
|
|
|
146868
|
+
const openFilterPane = async (page) => {
|
|
146869
|
+
await page.getByTestId(NEETO_FILTERS_SELECTORS.filterButton).click();
|
|
146870
|
+
await expect(page.getByTestId(COMMON_SELECTORS.paneHeader)).toHaveText(getI18nInstance().t("neetoFilters.common.filters"));
|
|
146871
|
+
};
|
|
146872
|
+
const filterUtils = {
|
|
146873
|
+
openFilterPane,
|
|
146874
|
+
};
|
|
146875
|
+
|
|
146795
146876
|
var main$2 = {exports: {}};
|
|
146796
146877
|
|
|
146797
146878
|
var name = "dotenv";
|
|
@@ -147391,5 +147472,5 @@ const definePlaywrightConfig = (overrides) => {
|
|
|
147391
147472
|
});
|
|
147392
147473
|
};
|
|
147393
147474
|
|
|
147394
|
-
export { API_ROUTES, BASE_URL, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COMMON_SELECTORS, CREDENTIALS, CustomCommands, EMBED_SELECTORS, ENVIRONMENT, EmbedBase, GLOBAL_TRANSLATIONS_PATTERN, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IS_STAGING_ENV, IntegrationBase, KEYBOARD_SHORTCUTS_SELECTORS, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MailosaurUtils, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, OTP_EMAIL_PATTERN, OrganizationPage, PROFILE_SECTION_SELECTORS, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, SIGNUP_SELECTORS, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STORAGE_STATE, SidebarSection, SlackPage, TAGS_SELECTORS, THIRD_PARTY_ROUTES, TOASTR_MESSAGES, USER_AGENTS, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, generateRandomBypassEmail, generateStagingData, getByDataQA, getGlobalUserState, headerUtils, hexToRGB, hyphenize, i18nFixture, initializeCredentials, initializeTotp, joinHyphenCase, joinString, login, loginWithoutSSO, memberUtils, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, shouldSkipSetupAndTeardown, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
|
|
147475
|
+
export { API_ROUTES, BASE_URL, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COMMON_SELECTORS, CREDENTIALS, CustomCommands, EMBED_SELECTORS, ENVIRONMENT, EmbedBase, GLOBAL_TRANSLATIONS_PATTERN, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IS_STAGING_ENV, IntegrationBase, KEYBOARD_SHORTCUTS_SELECTORS, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MailosaurUtils, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, OTP_EMAIL_PATTERN, OrganizationPage, PROFILE_SECTION_SELECTORS, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, SIGNUP_SELECTORS, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STORAGE_STATE, SidebarSection, SlackPage, TAGS_SELECTORS, THIRD_PARTY_ROUTES, TOASTR_MESSAGES, USER_AGENTS, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, generateRandomBypassEmail, generateStagingData, getByDataQA, getGlobalUserState, headerUtils, hexToRGB, hyphenize, i18nFixture, initializeCredentials, initializeTotp, joinHyphenCase, joinString, login, loginWithoutSSO, memberUtils, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, shouldSkipSetupAndTeardown, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
|
|
147395
147476
|
//# sourceMappingURL=index.js.map
|