@bigbinary/neeto-playwright-commons 4.1.9 → 4.1.11
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.d.ts +52 -4
- package/index.js +64 -5
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ interface VerifyToastParams {
|
|
|
33
33
|
timeout?: number;
|
|
34
34
|
toastCloseTimeout?: number;
|
|
35
35
|
closeAfterVerification: boolean;
|
|
36
|
-
toastType: "success" | "error";
|
|
36
|
+
toastType: "success" | "error" | "info" | "warning";
|
|
37
37
|
customPageContext?: Page;
|
|
38
38
|
}
|
|
39
39
|
interface AssertCardDetailsProps {
|
|
@@ -212,6 +212,12 @@ declare class CustomCommands {
|
|
|
212
212
|
condition,
|
|
213
213
|
timeout
|
|
214
214
|
}: ExecuteRecursivelyParams) => Promise<unknown>;
|
|
215
|
+
/**
|
|
216
|
+
* @deprecated Targets the react-toastify-based Toastr from
|
|
217
|
+
* @bigbinary/neetoui. Use verifyToastV2 instead for apps whose Toastr
|
|
218
|
+
* comes from @bigbinary/neeto-atoms (sonner-based, e.g. neeto-engage-web).
|
|
219
|
+
* Kept only for apps still on the legacy neetoui Toastr.
|
|
220
|
+
*/
|
|
215
221
|
/**
|
|
216
222
|
*
|
|
217
223
|
* Command to assert the toastr message. It takes the following parameters:
|
|
@@ -220,7 +226,7 @@ declare class CustomCommands {
|
|
|
220
226
|
*
|
|
221
227
|
* message(optional): Text that should be on toast.
|
|
222
228
|
*
|
|
223
|
-
* toastType(optional): Type of toast. It takes
|
|
229
|
+
* toastType(optional): Type of toast. It takes success, error, info or warning as it's value. Default is success.
|
|
224
230
|
*
|
|
225
231
|
* timeout(optional): Timeout in milliseconds to wait for the toast to appear. Default is 10_000.
|
|
226
232
|
*
|
|
@@ -248,6 +254,42 @@ declare class CustomCommands {
|
|
|
248
254
|
toastCloseTimeout,
|
|
249
255
|
customPageContext
|
|
250
256
|
}?: Partial<VerifyToastParams>) => Promise<void>;
|
|
257
|
+
/**
|
|
258
|
+
*
|
|
259
|
+
* Command to assert the toastr message rendered by @bigbinary/neeto-atoms's sonner-based Toastr. Use this instead of verifyToast for apps that have moved to @bigbinary/neeto-atoms (e.g. neeto-engage-web). It takes the following parameters:
|
|
260
|
+
*
|
|
261
|
+
* closeAfterVerification(optional): Boolean to close the toast after verification. Default is true.
|
|
262
|
+
*
|
|
263
|
+
* message(optional): Text that should be on toast.
|
|
264
|
+
*
|
|
265
|
+
* toastType(optional): Type of toast. It takes success, error, info or warning as it's value. Default is success.
|
|
266
|
+
*
|
|
267
|
+
* timeout(optional): Timeout in milliseconds to wait for the toast to appear. Default is 10_000.
|
|
268
|
+
*
|
|
269
|
+
* toastCloseTimeout(optional): Timeout in milliseconds to wait for the toast to disappear after closing. Default is 10_000.
|
|
270
|
+
*
|
|
271
|
+
* customPageContext(optional): Custom page context on which to verify the toast.
|
|
272
|
+
*
|
|
273
|
+
* @example
|
|
274
|
+
*
|
|
275
|
+
* await neetoPlaywrightUtilities.verifyToastV2({
|
|
276
|
+
* message: "Toastr message",
|
|
277
|
+
* closeAfterVerification: false,
|
|
278
|
+
* toastType: "error",
|
|
279
|
+
* timeout: 20_000,
|
|
280
|
+
* toastCloseTimeout: 15_000,
|
|
281
|
+
* customPageContext: this.page,
|
|
282
|
+
* });
|
|
283
|
+
* @endexample
|
|
284
|
+
*/
|
|
285
|
+
verifyToastV2: ({
|
|
286
|
+
message,
|
|
287
|
+
toastType,
|
|
288
|
+
closeAfterVerification,
|
|
289
|
+
timeout,
|
|
290
|
+
toastCloseTimeout,
|
|
291
|
+
customPageContext
|
|
292
|
+
}?: Partial<VerifyToastParams>) => Promise<void>;
|
|
251
293
|
/**
|
|
252
294
|
*
|
|
253
295
|
* Command to wait until the page has no loaders or spinners.
|
|
@@ -255,7 +297,7 @@ declare class CustomCommands {
|
|
|
255
297
|
* @example
|
|
256
298
|
*
|
|
257
299
|
* await neetoPlaywrightUtilities.waitForPageLoad({
|
|
258
|
-
*
|
|
300
|
+
* visibilityTimeout: 35_000,
|
|
259
301
|
* customPageContext,
|
|
260
302
|
* });
|
|
261
303
|
* @endexample
|
|
@@ -3612,6 +3654,7 @@ declare class EditorPage {
|
|
|
3612
3654
|
calloutSelector: Locator;
|
|
3613
3655
|
videoUploadOption: Locator;
|
|
3614
3656
|
todoListSelector: Locator;
|
|
3657
|
+
textColorSelector: Locator;
|
|
3615
3658
|
filePath: string;
|
|
3616
3659
|
videoPath: string;
|
|
3617
3660
|
linkUrl: string;
|
|
@@ -3643,6 +3686,7 @@ declare class EditorPage {
|
|
|
3643
3686
|
private verifyVideoUploadOption;
|
|
3644
3687
|
private verifyTodoListSelector;
|
|
3645
3688
|
verifyDynamicVariables: (dynamicVariables: KeyValuePair[]) => Promise<void>;
|
|
3689
|
+
private verifyTextColor;
|
|
3646
3690
|
private verifyCalloutSelector;
|
|
3647
3691
|
private buttonsAndVerifications;
|
|
3648
3692
|
private fillRandomText;
|
|
@@ -6201,6 +6245,7 @@ declare const LIST_MODIFIER_TAGS: {
|
|
|
6201
6245
|
bulletList: string;
|
|
6202
6246
|
orderedList: string;
|
|
6203
6247
|
};
|
|
6248
|
+
declare const EDITOR_VERIFY_TEXT_COLOR = "#e60000";
|
|
6204
6249
|
declare const PHONE_NUMBER_FORMATS: {
|
|
6205
6250
|
name: string;
|
|
6206
6251
|
code: string;
|
|
@@ -6676,6 +6721,8 @@ declare const THANK_YOU_SELECTORS: {
|
|
|
6676
6721
|
thankYouMessageWrapper: string;
|
|
6677
6722
|
countLabel: string;
|
|
6678
6723
|
};
|
|
6724
|
+
declare const optionSelector: (option: string) => string;
|
|
6725
|
+
declare const fixedMenuSelector: (selector: string) => string;
|
|
6679
6726
|
/**
|
|
6680
6727
|
*
|
|
6681
6728
|
* Selectors for Neeto editor components.
|
|
@@ -6755,6 +6802,7 @@ declare const NEETO_EDITOR_SELECTORS: {
|
|
|
6755
6802
|
strikeOption: string;
|
|
6756
6803
|
codeBlockOption: string;
|
|
6757
6804
|
highlightOption: string;
|
|
6805
|
+
textColorOption: string;
|
|
6758
6806
|
emojiOption: string;
|
|
6759
6807
|
emojiDropdownIcon: string;
|
|
6760
6808
|
linkInput: string;
|
|
@@ -9295,5 +9343,5 @@ interface Overrides {
|
|
|
9295
9343
|
* @endexample
|
|
9296
9344
|
*/
|
|
9297
9345
|
declare const definePlaywrightConfig: (overrides: Overrides) => PlaywrightTestConfig<{}, {}>;
|
|
9298
|
-
export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, 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, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, 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, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, 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, 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, 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, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, authenticateUser, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, 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, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
|
|
9346
|
+
export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, 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, 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, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, 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, 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, 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, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, 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, networkConditions, networkThrottlingUsingCDP, optionSelector, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
|
|
9299
9347
|
export type { BaseThemeStyle, BaseThemeStyleType, ColumnMenuAction, CountryProps, CustomFixture, EmailDeliveryConnectParams, EmailDeliveryProvider, EmailDeliveryVerifiedEmail, EmailDeliveryVerifyEmailParams, EmailDeliveryVerifyEmailResponse, EmailMatchCriteria, IntroPageThemeStyle, IntroPageThemeStyleType, OAuthEmailDeliveryProvider, ProjectName, ThemeCategory, ValueOf };
|
package/index.js
CHANGED
|
@@ -1302,7 +1302,6 @@ const imageRegex = (imageName) => {
|
|
|
1302
1302
|
|
|
1303
1303
|
const optionSelector = (option) => `neeto-editor-fixed-menu-${option}-option`;
|
|
1304
1304
|
const fixedMenuSelector = (selector) => `neeto-editor-fixed-menu-${selector}`;
|
|
1305
|
-
|
|
1306
1305
|
const NEETO_EDITOR_SELECTORS = {
|
|
1307
1306
|
fontSize: optionSelector("font-size"),
|
|
1308
1307
|
boldOption: optionSelector("bold"),
|
|
@@ -1311,6 +1310,7 @@ const NEETO_EDITOR_SELECTORS = {
|
|
|
1311
1310
|
strikeOption: optionSelector("strike"),
|
|
1312
1311
|
codeBlockOption: optionSelector("code"),
|
|
1313
1312
|
highlightOption: optionSelector("highlight"),
|
|
1313
|
+
textColorOption: optionSelector("text-color"),
|
|
1314
1314
|
emojiOption: optionSelector("emoji"),
|
|
1315
1315
|
emojiDropdownIcon: "emoji-dropdown-icon",
|
|
1316
1316
|
linkInput: fixedMenuSelector("link-option-input"),
|
|
@@ -1988,6 +1988,7 @@ const getImagePathAndName = (localImagePath) => {
|
|
|
1988
1988
|
};
|
|
1989
1989
|
|
|
1990
1990
|
const __dirname$5 = getDirname(import.meta.url);
|
|
1991
|
+
const TOAST_DEFAULT_MESSAGE = "👍";
|
|
1991
1992
|
class CustomCommands {
|
|
1992
1993
|
page;
|
|
1993
1994
|
t;
|
|
@@ -2048,8 +2049,13 @@ class CustomCommands {
|
|
|
2048
2049
|
const startTime = Date.now();
|
|
2049
2050
|
return await this.recursiveMethod(callback, condition, timeout, startTime, 1);
|
|
2050
2051
|
};
|
|
2052
|
+
/**
|
|
2053
|
+
* @deprecated Targets the react-toastify-based Toastr from
|
|
2054
|
+
* @bigbinary/neetoui. Use verifyToastV2 instead for apps whose Toastr
|
|
2055
|
+
* comes from @bigbinary/neeto-atoms (sonner-based, e.g. neeto-engage-web).
|
|
2056
|
+
* Kept only for apps still on the legacy neetoui Toastr.
|
|
2057
|
+
*/
|
|
2051
2058
|
verifyToast = async ({ message = "", toastType = "success", closeAfterVerification = true, timeout = 10_000, toastCloseTimeout = 10_000, customPageContext = this.page, } = {}) => {
|
|
2052
|
-
// React-toastify does not support adding data-* attributes to toast DOM elements: https://github.com/fkhadra/react-toastify/issues/1106
|
|
2053
2059
|
const toastrLocator = customPageContext
|
|
2054
2060
|
.locator(COMMON_SELECTORS.neetoUiToastr)
|
|
2055
2061
|
.filter({
|
|
@@ -2060,10 +2066,10 @@ class CustomCommands {
|
|
|
2060
2066
|
: toastrLocator.filter({ hasText: message }))
|
|
2061
2067
|
// eslint-disable-next-line playwright/no-nth-methods
|
|
2062
2068
|
.first();
|
|
2063
|
-
await expect(filteredToastrLocator).toContainText(isEmpty(message) ?
|
|
2064
|
-
const toastrCloseButton = filteredToastrLocator.getByTestId(COMMON_SELECTORS.toastCloseButton);
|
|
2069
|
+
await expect(filteredToastrLocator).toContainText(isEmpty(message) ? TOAST_DEFAULT_MESSAGE : message, { timeout });
|
|
2065
2070
|
if (!closeAfterVerification)
|
|
2066
2071
|
return;
|
|
2072
|
+
const toastrCloseButton = filteredToastrLocator.getByTestId(COMMON_SELECTORS.toastCloseButton);
|
|
2067
2073
|
const buttonHandle = await toastrCloseButton.elementHandle();
|
|
2068
2074
|
if (buttonHandle) {
|
|
2069
2075
|
await customPageContext.evaluate(button => {
|
|
@@ -2074,6 +2080,27 @@ class CustomCommands {
|
|
|
2074
2080
|
});
|
|
2075
2081
|
}
|
|
2076
2082
|
};
|
|
2083
|
+
verifyToastV2 = async ({ message = "", toastType = "success", closeAfterVerification = true, timeout = 10_000, toastCloseTimeout = 10_000, customPageContext = this.page, } = {}) => {
|
|
2084
|
+
const toastLocator = customPageContext.getByTestId(COMMON_SELECTORS.toastMessage(toastType));
|
|
2085
|
+
const filteredToastLocator = (isEmpty(message)
|
|
2086
|
+
? toastLocator
|
|
2087
|
+
: toastLocator.filter({ hasText: message }))
|
|
2088
|
+
// eslint-disable-next-line playwright/no-nth-methods
|
|
2089
|
+
.first();
|
|
2090
|
+
await expect(filteredToastLocator).toContainText(isEmpty(message) ? TOAST_DEFAULT_MESSAGE : message, { timeout });
|
|
2091
|
+
if (!closeAfterVerification)
|
|
2092
|
+
return;
|
|
2093
|
+
const toastCloseButton = filteredToastLocator.getByTestId(COMMON_SELECTORS.toastCloseButton);
|
|
2094
|
+
const buttonHandle = await toastCloseButton.elementHandle();
|
|
2095
|
+
if (buttonHandle) {
|
|
2096
|
+
await customPageContext.evaluate(button => {
|
|
2097
|
+
button.dispatchEvent(new Event("click", { bubbles: true }));
|
|
2098
|
+
}, buttonHandle);
|
|
2099
|
+
await expect(toastCloseButton).toBeHidden({
|
|
2100
|
+
timeout: toastCloseTimeout,
|
|
2101
|
+
});
|
|
2102
|
+
}
|
|
2103
|
+
};
|
|
2077
2104
|
waitForPageLoad = async ({ visibilityTimeout = 35_000, customPageContext = this.page, waitForOption = "serial", } = {}) => {
|
|
2078
2105
|
await customPageContext.waitForLoadState();
|
|
2079
2106
|
const loaders = [
|
|
@@ -119574,6 +119601,7 @@ const LIST_MODIFIER_TAGS = {
|
|
|
119574
119601
|
bulletList: "ul",
|
|
119575
119602
|
orderedList: "ol",
|
|
119576
119603
|
};
|
|
119604
|
+
const EDITOR_VERIFY_TEXT_COLOR = "#e60000";
|
|
119577
119605
|
|
|
119578
119606
|
const __dirname$4 = getDirname(import.meta.url);
|
|
119579
119607
|
class SlashCommandEditorPage {
|
|
@@ -119798,6 +119826,7 @@ class EditorPage {
|
|
|
119798
119826
|
calloutSelector;
|
|
119799
119827
|
videoUploadOption;
|
|
119800
119828
|
todoListSelector;
|
|
119829
|
+
textColorSelector;
|
|
119801
119830
|
filePath = "../../../e2e/assets/images/sample.png";
|
|
119802
119831
|
videoPath = "../../../e2e/assets/files/sample.mp4";
|
|
119803
119832
|
linkUrl = faker.internet.url();
|
|
@@ -119835,6 +119864,7 @@ class EditorPage {
|
|
|
119835
119864
|
this.tableOption = this.editorWrapper.getByTestId(NEETO_EDITOR_SELECTORS.tableOption);
|
|
119836
119865
|
this.videoUploadOption = this.editorWrapper.getByTestId(NEETO_EDITOR_SELECTORS.videoUploadOption);
|
|
119837
119866
|
this.todoListSelector = this.editorWrapper.getByTestId(NEETO_EDITOR_SELECTORS.todoListOption);
|
|
119867
|
+
this.textColorSelector = this.editorWrapper.getByTestId(NEETO_EDITOR_SELECTORS.textColorOption);
|
|
119838
119868
|
}
|
|
119839
119869
|
cleanString = (selector = "") => selector?.replace("neeto-editor-fixed-menu-", "").replace("-option", "") ||
|
|
119840
119870
|
"";
|
|
@@ -120171,6 +120201,31 @@ class EditorPage {
|
|
|
120171
120201
|
await expect(this.contentField.getByText(truncate(`${key}:${value}`, 25))).toBeVisible();
|
|
120172
120202
|
}
|
|
120173
120203
|
};
|
|
120204
|
+
verifyTextColor = async (isButtonInMoreMenu) => {
|
|
120205
|
+
const randomText = await this.fillRandomText();
|
|
120206
|
+
const colorPickerInput = this.page
|
|
120207
|
+
.getByTestId(COMMON_SELECTORS.customDropdownContainer())
|
|
120208
|
+
.getByTestId(COMMON_SELECTORS.inputField);
|
|
120209
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
120210
|
+
await expect(async () => {
|
|
120211
|
+
await this.textColorSelector.click();
|
|
120212
|
+
await expect(colorPickerInput).toBeVisible({ timeout: 5_000 });
|
|
120213
|
+
await colorPickerInput.fill(EDITOR_VERIFY_TEXT_COLOR);
|
|
120214
|
+
// Using .first() to target the button rendered by the Formik editor.
|
|
120215
|
+
await this.page
|
|
120216
|
+
.getByTestId(COMMON_SELECTORS.customDropdownContainer())
|
|
120217
|
+
.getByRole("button")
|
|
120218
|
+
// eslint-disable-next-line playwright/no-nth-methods
|
|
120219
|
+
.first()
|
|
120220
|
+
.click();
|
|
120221
|
+
await expect(colorPickerInput).toBeHidden({ timeout: 5_000 });
|
|
120222
|
+
}).toPass({ timeout: 20_000 });
|
|
120223
|
+
const coloredText = this.contentField.locator("[style]", {
|
|
120224
|
+
hasText: randomText,
|
|
120225
|
+
});
|
|
120226
|
+
await expect(coloredText).toHaveCSS("color", hexToRGB(EDITOR_VERIFY_TEXT_COLOR));
|
|
120227
|
+
return [{ key: "text-color", value: randomText }];
|
|
120228
|
+
};
|
|
120174
120229
|
verifyCalloutSelector = async (isButtonInMoreMenu) => {
|
|
120175
120230
|
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
120176
120231
|
const calloutTypes = ["default", "info", "warning", "error", "success"];
|
|
@@ -120206,6 +120261,7 @@ class EditorPage {
|
|
|
120206
120261
|
underline: isButtonInMoreMenu => this.verifyTextDeskModifier("underline", isButtonInMoreMenu),
|
|
120207
120262
|
strike: isButtonInMoreMenu => this.verifyTextDeskModifier("strike", isButtonInMoreMenu),
|
|
120208
120263
|
highlight: isButtonInMoreMenu => this.verifyTextHighlighter(isButtonInMoreMenu),
|
|
120264
|
+
"text-color": isButtonInMoreMenu => this.verifyTextColor(isButtonInMoreMenu),
|
|
120209
120265
|
bulletList: isButtonInMoreMenu => this.verifyListModifiers("bulletList", isButtonInMoreMenu),
|
|
120210
120266
|
orderedList: isButtonInMoreMenu => this.verifyListModifiers("orderedList", isButtonInMoreMenu),
|
|
120211
120267
|
link: isButtonInMoreMenu => this.verifyEditorLinkButton(this.linkUrl, isButtonInMoreMenu),
|
|
@@ -120266,6 +120322,9 @@ class EditorPage {
|
|
|
120266
120322
|
hasText: value,
|
|
120267
120323
|
})).toBeVisible();
|
|
120268
120324
|
}
|
|
120325
|
+
if (key === "text-color") {
|
|
120326
|
+
return expect(previewLocator.locator("[style]", { hasText: value })).toHaveCSS("color", hexToRGB(EDITOR_VERIFY_TEXT_COLOR));
|
|
120327
|
+
}
|
|
120269
120328
|
const replacement = elementReplacement?.[key] ?? key;
|
|
120270
120329
|
if (value === undefined) {
|
|
120271
120330
|
return expect(
|
|
@@ -126101,4 +126160,4 @@ const definePlaywrightConfig = (overrides) => {
|
|
|
126101
126160
|
});
|
|
126102
126161
|
};
|
|
126103
126162
|
|
|
126104
|
-
export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, 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, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, 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, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, 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, 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, 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, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, authenticateUser, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, 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, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
|
|
126163
|
+
export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, 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, 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, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, 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, 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, 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, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, 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, networkConditions, networkThrottlingUsingCDP, optionSelector, 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.1.
|
|
3
|
+
"version": "4.1.11",
|
|
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",
|