@bigbinary/neeto-playwright-commons 4.7.3 → 4.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/index.d.ts +125 -2
- package/index.js +106 -11
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -127,6 +127,7 @@ This package is published as ESM-only. Use `import` syntax and avoid CommonJS `r
|
|
|
127
127
|
- [Routes](./docs/routes.md)
|
|
128
128
|
- [Custom commands](./docs/custom-commands.md)
|
|
129
129
|
- [MailerUtils](./docs/utils/mailer-utils.md)
|
|
130
|
+
- [SmsUtils](./docs/utils/sms-utils.md)
|
|
130
131
|
- [EmailDeliveryUtils](./docs/utils/email-delivery-utils.md)
|
|
131
132
|
- [InboundEmailApis](./docs/utils/inbound-email-apis.md)
|
|
132
133
|
- [NeetoAuthServer](./docs/utils/neeto-auth-server.md)
|
package/index.d.ts
CHANGED
|
@@ -2175,6 +2175,125 @@ declare class QRCodeUtils {
|
|
|
2175
2175
|
*/
|
|
2176
2176
|
decodeQRCodeFromFile: (filePath: string) => Promise<string | undefined>;
|
|
2177
2177
|
}
|
|
2178
|
+
type SmsProvider = "twilio" | "telnyx";
|
|
2179
|
+
interface SmsFilters {
|
|
2180
|
+
to: string;
|
|
2181
|
+
from: string;
|
|
2182
|
+
body: string;
|
|
2183
|
+
provider: SmsProvider;
|
|
2184
|
+
}
|
|
2185
|
+
type SmsSearchParams = Partial<SmsFilters & {
|
|
2186
|
+
receivedAfter: string;
|
|
2187
|
+
}>;
|
|
2188
|
+
interface Sms extends SmsFilters {
|
|
2189
|
+
options?: Record<string, unknown>;
|
|
2190
|
+
receivedAt: string;
|
|
2191
|
+
}
|
|
2192
|
+
declare class SmsApi {
|
|
2193
|
+
private neetoPlaywrightUtilities;
|
|
2194
|
+
constructor(neetoPlaywrightUtilities: CustomCommands);
|
|
2195
|
+
fetchSms: (searchParams?: SmsSearchParams) => Promise<Sms[]>;
|
|
2196
|
+
deleteSms: (receivedBefore: string) => Promise<playwright_core.APIResponse | undefined>;
|
|
2197
|
+
/**
|
|
2198
|
+
*
|
|
2199
|
+
* Deletes every captured SMS for the app. Use it only when no other test or parallel worker asserts on SMS at the same time.
|
|
2200
|
+
*
|
|
2201
|
+
* @example
|
|
2202
|
+
*
|
|
2203
|
+
* await smsUtils.purgeAllSms();
|
|
2204
|
+
* @endexample
|
|
2205
|
+
*/
|
|
2206
|
+
purgeAllSms: () => Promise<playwright_core.APIResponse | undefined>;
|
|
2207
|
+
}
|
|
2208
|
+
type SmsSearchCriteria = Omit<SmsSearchParams, "receivedAfter"> & {
|
|
2209
|
+
receivedAfter?: Date;
|
|
2210
|
+
};
|
|
2211
|
+
interface WaitForSmsOptions {
|
|
2212
|
+
timeout?: number;
|
|
2213
|
+
expectedSmsCount?: number;
|
|
2214
|
+
shouldThrowErrorOnTimeout?: boolean;
|
|
2215
|
+
}
|
|
2216
|
+
declare class SmsUtils {
|
|
2217
|
+
private neetoPlaywrightUtilities;
|
|
2218
|
+
smsApi: SmsApi;
|
|
2219
|
+
constructor(neetoPlaywrightUtilities: CustomCommands);
|
|
2220
|
+
private toSearchParams;
|
|
2221
|
+
/**
|
|
2222
|
+
*
|
|
2223
|
+
* Lists the captured SMS that match the criteria.
|
|
2224
|
+
*
|
|
2225
|
+
* @example
|
|
2226
|
+
*
|
|
2227
|
+
* const messages = await smsUtils.listSms({
|
|
2228
|
+
* to: process.env.TWILIO_INCOMING_PHONE_NUMBER,
|
|
2229
|
+
* from: process.env.TWILIO_DEFAULT_PHONE_NUMBER,
|
|
2230
|
+
* body: smsContent,
|
|
2231
|
+
* provider: "twilio",
|
|
2232
|
+
* receivedAfter: bookingCreatedAt,
|
|
2233
|
+
* });
|
|
2234
|
+
* @endexample
|
|
2235
|
+
*/
|
|
2236
|
+
listSms: (criteria?: SmsSearchCriteria) => Promise<Sms[]>;
|
|
2237
|
+
/**
|
|
2238
|
+
*
|
|
2239
|
+
* Polls until a matching SMS arrives or the timeout fires. Returns the latest matching SMS.
|
|
2240
|
+
*
|
|
2241
|
+
* @example
|
|
2242
|
+
*
|
|
2243
|
+
* const receivedAfter = new Date();
|
|
2244
|
+
*
|
|
2245
|
+
* await automationRulesApis.triggerAutomationRules(bookingSid, "before_meeting_starts");
|
|
2246
|
+
*
|
|
2247
|
+
* const sms = await smsUtils.waitForSms(
|
|
2248
|
+
* {
|
|
2249
|
+
* to: process.env.TWILIO_INCOMING_PHONE_NUMBER,
|
|
2250
|
+
* from: process.env.TWILIO_DEFAULT_PHONE_NUMBER,
|
|
2251
|
+
* body: smsContents.client,
|
|
2252
|
+
* provider: "twilio",
|
|
2253
|
+
* receivedAfter,
|
|
2254
|
+
* },
|
|
2255
|
+
* { timeout: MESSAGE_DELIVERY_TIMEOUT_WITH_BUFFER }
|
|
2256
|
+
* );
|
|
2257
|
+
* @endexample
|
|
2258
|
+
*/
|
|
2259
|
+
waitForSms: (criteria?: SmsSearchCriteria, {
|
|
2260
|
+
timeout,
|
|
2261
|
+
expectedSmsCount,
|
|
2262
|
+
shouldThrowErrorOnTimeout
|
|
2263
|
+
}?: WaitForSmsOptions) => Promise<Sms | Record<string, never>>;
|
|
2264
|
+
/**
|
|
2265
|
+
*
|
|
2266
|
+
* Asserts that no matching SMS arrives: polls for the full timeout and throws as soon as any matching SMS is captured. On success (no SMS arrived) it returns {}.
|
|
2267
|
+
*
|
|
2268
|
+
* @example
|
|
2269
|
+
*
|
|
2270
|
+
* await smsUtils.expectNoSms({ to: unsubscribedPhoneNumber, receivedAfter });
|
|
2271
|
+
* @endexample
|
|
2272
|
+
*/
|
|
2273
|
+
expectNoSms: (criteria?: SmsSearchCriteria, {
|
|
2274
|
+
timeout
|
|
2275
|
+
}?: Pick<WaitForSmsOptions, "timeout">) => Promise<Record<string, never> | Sms>;
|
|
2276
|
+
/**
|
|
2277
|
+
*
|
|
2278
|
+
* Deletes the captured SMS that are older than the cutoff. Use this, not purgeAllSms, between tests. All parallel workers share one capture list. A full purge from one worker deletes the SMS that other workers still poll for.
|
|
2279
|
+
*
|
|
2280
|
+
* @example
|
|
2281
|
+
*
|
|
2282
|
+
* await smsUtils.clearStaleSms(minutesAgo(10));
|
|
2283
|
+
* @endexample
|
|
2284
|
+
*/
|
|
2285
|
+
clearStaleSms: (receivedBefore?: Date) => Promise<playwright_core.APIResponse | undefined>;
|
|
2286
|
+
/**
|
|
2287
|
+
*
|
|
2288
|
+
* Deletes every captured SMS for the app. Use it only when no other test or parallel worker asserts on SMS at the same time.
|
|
2289
|
+
*
|
|
2290
|
+
* @example
|
|
2291
|
+
*
|
|
2292
|
+
* await smsUtils.purgeAllSms();
|
|
2293
|
+
* @endexample
|
|
2294
|
+
*/
|
|
2295
|
+
purgeAllSms: () => Promise<playwright_core.APIResponse | undefined>;
|
|
2296
|
+
}
|
|
2178
2297
|
type Hex = Lowercase<`#${string}`>;
|
|
2179
2298
|
interface BaseThemeStyle {
|
|
2180
2299
|
primaryColor: Hex;
|
|
@@ -2248,6 +2367,7 @@ interface CustomFixture {
|
|
|
2248
2367
|
page: Page;
|
|
2249
2368
|
health: Health;
|
|
2250
2369
|
mailerUtils: MailerUtils;
|
|
2370
|
+
smsUtils: SmsUtils;
|
|
2251
2371
|
colorPicker: ColorPickerUtils;
|
|
2252
2372
|
qrCodeUtils: QRCodeUtils;
|
|
2253
2373
|
}
|
|
@@ -4386,6 +4506,8 @@ declare const IS_STAGING_ENV: boolean;
|
|
|
4386
4506
|
*/
|
|
4387
4507
|
declare const IS_DEV_ENV: boolean;
|
|
4388
4508
|
declare const IS_CI: boolean;
|
|
4509
|
+
declare const IS_DEV_CI: boolean;
|
|
4510
|
+
declare const IS_WEBKIT: boolean;
|
|
4389
4511
|
declare const DEFAULT_WEBHOOKS_RESPONSE_TEXT: string;
|
|
4390
4512
|
/**
|
|
4391
4513
|
*
|
|
@@ -9376,6 +9498,7 @@ declare const initializeTestData: (product: NeetoProducts) => {
|
|
|
9376
9498
|
baseURL: string;
|
|
9377
9499
|
};
|
|
9378
9500
|
declare const imageRegex: (imageName: string) => RegExp;
|
|
9501
|
+
declare const minutesAgo: (minutes: number) => Date;
|
|
9379
9502
|
/**
|
|
9380
9503
|
*
|
|
9381
9504
|
* Wraps a login function with a Redis-backed cookie cache so that only one Playwright shard per provider performs a full OAuth login. Subsequent shards skip the login by restoring the cached cookies from Redis.
|
|
@@ -10327,5 +10450,5 @@ declare class InboundEmailApis {
|
|
|
10327
10450
|
reply: (emailParams: ReplyInboundEmailParams) => Promise<playwright_core.APIResponse | undefined>;
|
|
10328
10451
|
private deliverSource;
|
|
10329
10452
|
}
|
|
10330
|
-
export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, ApiKeysPageV2, AuditLogsPage, BASE_URL, CALENDAR_LABELS, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, ColorPickerUtils, CustomCommands, CustomCommandsV2, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_TIMEZONE_ID, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EDITOR_VERIFY_TEXT_COLOR, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmailDeliveryUtils, EmbedBase, FILE_FORMATS, FONTS_RESOURCES, FONT_SIZE_SELECTORS, FROM_EMAIL_ENV_KEYS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, HelpAndProfilePageV2, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_MAILPIT_ENABLED, IS_SHADCN_UI, IS_STAGING_ENV, ImageUploader, InboundEmailApis, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MAILPIT_BASE_URL, MAILPIT_DOMAIN_NAME, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, MailpitApi, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, NeetoAuthServer, NeetoChatWidget, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PRODUCT_ROLES_ROUTE_MAP, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailApiClient, RailsEmailUtils, RoleApis, RolesPage, RolesPageV2, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, SlackPage, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEAM_MEMBER_TEXTS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_RESOURCES, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, TeamMembersV2, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_TEST_EMAIL_V2, ZAPIER_WEB_TEXTS, ZapierPage, authenticateUser, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaApi, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, fixedMenuSelector, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getDirname, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, isStagingOrganizationExpired, joinHyphenCase, joinString, login, mailpitDomainName, networkConditions, networkThrottlingUsingCDP, optionSelector, readFileAsBrowserFile, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
|
|
10331
|
-
export type { BaseThemeStyle, BaseThemeStyleType, ColumnMenuAction, CountryProps, CustomFixture, EmailDeliveryConnectParams, EmailDeliveryProvider, EmailDeliveryVerifiedEmail, EmailDeliveryVerifyEmailParams, EmailDeliveryVerifyEmailResponse, EmailMatchCriteria, InboundEmailParams, IntroPageThemeStyle, IntroPageThemeStyleType, OAuthEmailDeliveryProvider, ProjectName, ReplyInboundEmailParams, ThemeCategory, ValueOf };
|
|
10453
|
+
export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, ApiKeysPageV2, AuditLogsPage, BASE_URL, CALENDAR_LABELS, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, ColorPickerUtils, CustomCommands, CustomCommandsV2, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_TIMEZONE_ID, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EDITOR_VERIFY_TEXT_COLOR, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmailDeliveryUtils, EmbedBase, FILE_FORMATS, FONTS_RESOURCES, FONT_SIZE_SELECTORS, FROM_EMAIL_ENV_KEYS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, HelpAndProfilePageV2, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_CI, IS_DEV_ENV, IS_MAILPIT_ENABLED, IS_SHADCN_UI, IS_STAGING_ENV, IS_WEBKIT, ImageUploader, InboundEmailApis, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MAILPIT_BASE_URL, MAILPIT_DOMAIN_NAME, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, MailpitApi, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, NeetoAuthServer, NeetoChatWidget, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PRODUCT_ROLES_ROUTE_MAP, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailApiClient, RailsEmailUtils, RoleApis, RolesPage, RolesPageV2, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, SlackPage, SmsApi, SmsUtils, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEAM_MEMBER_TEXTS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_RESOURCES, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, TeamMembersV2, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_TEST_EMAIL_V2, ZAPIER_WEB_TEXTS, ZapierPage, authenticateUser, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaApi, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, fixedMenuSelector, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getDirname, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, isStagingOrganizationExpired, joinHyphenCase, joinString, login, mailpitDomainName, minutesAgo, networkConditions, networkThrottlingUsingCDP, optionSelector, readFileAsBrowserFile, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
|
|
10454
|
+
export type { BaseThemeStyle, BaseThemeStyleType, ColumnMenuAction, CountryProps, CustomFixture, EmailDeliveryConnectParams, EmailDeliveryProvider, EmailDeliveryVerifiedEmail, EmailDeliveryVerifyEmailParams, EmailDeliveryVerifyEmailResponse, EmailMatchCriteria, InboundEmailParams, IntroPageThemeStyle, IntroPageThemeStyleType, OAuthEmailDeliveryProvider, ProjectName, ReplyInboundEmailParams, Sms, SmsFilters, SmsProvider, SmsSearchCriteria, SmsSearchParams, ThemeCategory, ValueOf, WaitForSmsOptions };
|
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isPresent, keysToSnakeCase, hyphenate, humanize, isNotPresent, noop as noop$2, findBy, dynamicArray, truncate, isNotEmpty, isNotEqualDeep, randomPick } from '@bigbinary/neeto-cist';
|
|
1
|
+
import { isPresent, keysToSnakeCase, hyphenate, humanize, isNotPresent, noop as noop$2, keysToCamelCase, findBy, dynamicArray, truncate, isNotEmpty, isNotEqualDeep, randomPick } from '@bigbinary/neeto-cist';
|
|
2
2
|
import { faker } from '@faker-js/faker';
|
|
3
3
|
import * as fs from 'fs';
|
|
4
4
|
import fs__default, { readFileSync, promises, existsSync, writeFileSync, unlinkSync, mkdirSync, rmSync, createWriteStream } from 'fs';
|
|
@@ -308,6 +308,8 @@ const EXAMPLE_URL = "https://example.com";
|
|
|
308
308
|
const IS_STAGING_ENV = process.env.TEST_ENV === ENVIRONMENT.staging;
|
|
309
309
|
const IS_DEV_ENV = process.env.TEST_ENV === ENVIRONMENT.development;
|
|
310
310
|
const IS_CI = isPresent(process.env.NEETO_CI_JOB_ID);
|
|
311
|
+
const IS_DEV_CI = IS_DEV_ENV && IS_CI;
|
|
312
|
+
const IS_WEBKIT = process.env.PLAYWRIGHT_PROJECT === "webkit";
|
|
311
313
|
const DEFAULT_WEBHOOKS_RESPONSE_TEXT = JSON.stringify({ success: true });
|
|
312
314
|
const STORAGE_STATE = "./e2e/auth/user.json";
|
|
313
315
|
const DEFAULT_TIMEZONE_ID = "Asia/Calcutta";
|
|
@@ -1394,6 +1396,7 @@ const imageRegex = (imageName) => {
|
|
|
1394
1396
|
const [baseName, extension] = imageName.split(".");
|
|
1395
1397
|
return new RegExp(`${baseName}.*\\.${extension}$`);
|
|
1396
1398
|
};
|
|
1399
|
+
const minutesAgo = (minutes) => new Date(Date.now() - minutes * 60 * 1000);
|
|
1397
1400
|
|
|
1398
1401
|
const optionSelector = (option) => `neeto-editor-fixed-menu-${option}-option`;
|
|
1399
1402
|
const fixedMenuSelector = (selector) => `neeto-editor-fixed-menu-${selector}`;
|
|
@@ -117047,6 +117050,80 @@ class QRCodeUtils {
|
|
|
117047
117050
|
};
|
|
117048
117051
|
}
|
|
117049
117052
|
|
|
117053
|
+
const TESTING_SMS_PATH = "/api/v1/testing/sms";
|
|
117054
|
+
class SmsApi {
|
|
117055
|
+
neetoPlaywrightUtilities;
|
|
117056
|
+
constructor(neetoPlaywrightUtilities) {
|
|
117057
|
+
this.neetoPlaywrightUtilities = neetoPlaywrightUtilities;
|
|
117058
|
+
}
|
|
117059
|
+
fetchSms = async (searchParams = {}) => {
|
|
117060
|
+
const response = await this.neetoPlaywrightUtilities.apiRequest({
|
|
117061
|
+
url: TESTING_SMS_PATH,
|
|
117062
|
+
params: keysToSnakeCase(searchParams),
|
|
117063
|
+
});
|
|
117064
|
+
if (!response) {
|
|
117065
|
+
throw new Error(`Received no response from GET ${TESTING_SMS_PATH}.`);
|
|
117066
|
+
}
|
|
117067
|
+
return keysToCamelCase(await response.json());
|
|
117068
|
+
};
|
|
117069
|
+
deleteSms = (receivedBefore) => this.neetoPlaywrightUtilities.apiRequest({
|
|
117070
|
+
url: `${TESTING_SMS_PATH}/destroy`,
|
|
117071
|
+
method: "delete",
|
|
117072
|
+
params: keysToSnakeCase({ receivedBefore }),
|
|
117073
|
+
});
|
|
117074
|
+
purgeAllSms = () => this.neetoPlaywrightUtilities.apiRequest({
|
|
117075
|
+
url: `${TESTING_SMS_PATH}/purge_all`,
|
|
117076
|
+
method: "delete",
|
|
117077
|
+
});
|
|
117078
|
+
}
|
|
117079
|
+
|
|
117080
|
+
const toBackendTimestamp = (date) => new Date(Math.floor(date.valueOf() / 1000) * 1000 - 1).toISOString();
|
|
117081
|
+
const findLatestSms = (messages) => messages.reduce((latest, sms) => !latest || new Date(sms.receivedAt) > new Date(latest.receivedAt)
|
|
117082
|
+
? sms
|
|
117083
|
+
: latest, null);
|
|
117084
|
+
class SmsUtils {
|
|
117085
|
+
neetoPlaywrightUtilities;
|
|
117086
|
+
smsApi;
|
|
117087
|
+
constructor(neetoPlaywrightUtilities) {
|
|
117088
|
+
this.neetoPlaywrightUtilities = neetoPlaywrightUtilities;
|
|
117089
|
+
this.smsApi = new SmsApi(neetoPlaywrightUtilities);
|
|
117090
|
+
}
|
|
117091
|
+
toSearchParams = ({ receivedAfter = minutesAgo(60), ...filters }) => ({
|
|
117092
|
+
...filters,
|
|
117093
|
+
receivedAfter: toBackendTimestamp(receivedAfter),
|
|
117094
|
+
});
|
|
117095
|
+
listSms = (criteria = {}) => this.smsApi.fetchSms(this.toSearchParams(criteria));
|
|
117096
|
+
waitForSms = async (criteria = {}, { timeout = 10_000, expectedSmsCount = 1, shouldThrowErrorOnTimeout = true, } = {}) => {
|
|
117097
|
+
const searchParams = this.toSearchParams(criteria);
|
|
117098
|
+
let latestSms = null;
|
|
117099
|
+
const sms = (await this.neetoPlaywrightUtilities.executeRecursively({
|
|
117100
|
+
callback: () => latestSms,
|
|
117101
|
+
condition: async () => {
|
|
117102
|
+
const messages = await this.smsApi.fetchSms(searchParams);
|
|
117103
|
+
latestSms = findLatestSms(messages);
|
|
117104
|
+
return messages.length >= Math.max(expectedSmsCount, 1);
|
|
117105
|
+
},
|
|
117106
|
+
timeout,
|
|
117107
|
+
}));
|
|
117108
|
+
if (expectedSmsCount === 0) {
|
|
117109
|
+
if (sms) {
|
|
117110
|
+
throw new Error(`Expected no SMS matching ${JSON.stringify(searchParams)}, but received ${JSON.stringify(sms)}.`);
|
|
117111
|
+
}
|
|
117112
|
+
return {};
|
|
117113
|
+
}
|
|
117114
|
+
if (!sms) {
|
|
117115
|
+
if (shouldThrowErrorOnTimeout) {
|
|
117116
|
+
throw new Error(`Timed out waiting for SMS matching ${JSON.stringify(searchParams)}, expected at least ${expectedSmsCount}.`);
|
|
117117
|
+
}
|
|
117118
|
+
return {};
|
|
117119
|
+
}
|
|
117120
|
+
return sms;
|
|
117121
|
+
};
|
|
117122
|
+
expectNoSms = (criteria = {}, { timeout } = {}) => this.waitForSms(criteria, { timeout, expectedSmsCount: 0 });
|
|
117123
|
+
clearStaleSms = (receivedBefore = minutesAgo(10)) => this.smsApi.deleteSms(toBackendTimestamp(receivedBefore));
|
|
117124
|
+
purgeAllSms = () => this.smsApi.purgeAllSms();
|
|
117125
|
+
}
|
|
117126
|
+
|
|
117050
117127
|
const hexToRGBA = (hex) => {
|
|
117051
117128
|
let r = 0, g = 0, b = 0, a = 1;
|
|
117052
117129
|
if (hex.length === 5) {
|
|
@@ -117162,6 +117239,19 @@ const commands = {
|
|
|
117162
117239
|
await use(mailerUtils);
|
|
117163
117240
|
IS_DEV_ENV && (await mailerUtils.railsEmailUtils.clearStaleEmails());
|
|
117164
117241
|
},
|
|
117242
|
+
smsUtils: async ({ neetoPlaywrightUtilities }, use) => {
|
|
117243
|
+
const smsUtils = new SmsUtils(neetoPlaywrightUtilities);
|
|
117244
|
+
await use(smsUtils);
|
|
117245
|
+
if (IS_DEV_ENV) {
|
|
117246
|
+
// Not every host app draws the :dev_sms routes; teardown must not fail the test when they are absent.
|
|
117247
|
+
try {
|
|
117248
|
+
await smsUtils.clearStaleSms();
|
|
117249
|
+
}
|
|
117250
|
+
catch (error) {
|
|
117251
|
+
console.warn("Failed to clear stale SMS:", error);
|
|
117252
|
+
}
|
|
117253
|
+
}
|
|
117254
|
+
},
|
|
117165
117255
|
colorPicker: async ({ page }, use) => {
|
|
117166
117256
|
const colorPicker = new ColorPickerUtils(page);
|
|
117167
117257
|
await use(colorPicker);
|
|
@@ -127027,6 +127117,7 @@ const playdashProductionHealthConfig = {
|
|
|
127027
127117
|
};
|
|
127028
127118
|
const railsPort = process.env.RAILS_SERVER_PORT;
|
|
127029
127119
|
const vitePort = process.env.VITE_PORT;
|
|
127120
|
+
const isPlaywrightRun = process.env.PLAYWRIGHT_RUN === "true";
|
|
127030
127121
|
const PROJECT_NAMES = {
|
|
127031
127122
|
setup: "setup",
|
|
127032
127123
|
chromium: "chromium",
|
|
@@ -127106,15 +127197,19 @@ const definePlaywrightConfig = (overrides) => {
|
|
|
127106
127197
|
stdout: "ignore",
|
|
127107
127198
|
stderr: "ignore",
|
|
127108
127199
|
},
|
|
127109
|
-
|
|
127110
|
-
|
|
127111
|
-
|
|
127112
|
-
|
|
127113
|
-
|
|
127114
|
-
|
|
127115
|
-
|
|
127116
|
-
|
|
127117
|
-
|
|
127200
|
+
...(!isPlaywrightRun
|
|
127201
|
+
? [
|
|
127202
|
+
{
|
|
127203
|
+
command: "yarn dev --host",
|
|
127204
|
+
url: `http://127.0.0.1:${vitePort}/@vite/client`,
|
|
127205
|
+
reuseExistingServer: !IS_CI,
|
|
127206
|
+
timeout: 2 * 60 * 1000,
|
|
127207
|
+
cwd: "..",
|
|
127208
|
+
stdout: "ignore",
|
|
127209
|
+
stderr: "ignore",
|
|
127210
|
+
},
|
|
127211
|
+
]
|
|
127212
|
+
: []),
|
|
127118
127213
|
...webServerOverrides,
|
|
127119
127214
|
],
|
|
127120
127215
|
}),
|
|
@@ -127276,4 +127371,4 @@ class InboundEmailApis {
|
|
|
127276
127371
|
};
|
|
127277
127372
|
}
|
|
127278
127373
|
|
|
127279
|
-
export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, ApiKeysPageV2, AuditLogsPage, BASE_URL, CALENDAR_LABELS, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, ColorPickerUtils, CustomCommands, CustomCommandsV2, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_TIMEZONE_ID, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EDITOR_VERIFY_TEXT_COLOR, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmailDeliveryUtils, EmbedBase, FILE_FORMATS, FONTS_RESOURCES, FONT_SIZE_SELECTORS, FROM_EMAIL_ENV_KEYS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, HelpAndProfilePageV2, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_ENV, IS_MAILPIT_ENABLED, IS_SHADCN_UI, IS_STAGING_ENV, ImageUploader, InboundEmailApis, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MAILPIT_BASE_URL, MAILPIT_DOMAIN_NAME, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, MailpitApi, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, NeetoAuthServer, NeetoChatWidget, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PRODUCT_ROLES_ROUTE_MAP, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailApiClient, RailsEmailUtils, RoleApis, RolesPage, RolesPageV2, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, SlackPage, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEAM_MEMBER_TEXTS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_RESOURCES, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, TeamMembersV2, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_TEST_EMAIL_V2, ZAPIER_WEB_TEXTS, ZapierPage, authenticateUser, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaApi, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, fixedMenuSelector, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getDirname, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, isStagingOrganizationExpired, joinHyphenCase, joinString, login, mailpitDomainName, networkConditions, networkThrottlingUsingCDP, optionSelector, readFileAsBrowserFile, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
|
|
127374
|
+
export { ACTIONS, ADMIN_PANEL_SELECTORS, ALL_RESOURCES, ANALYTICS_RESOURCES, API_KEYS_SELECTORS, API_ROUTES, APP_RESOURCES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, ApiKeysPageV2, AuditLogsPage, BASE_URL, CALENDAR_LABELS, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, ColorPickerUtils, CustomCommands, CustomCommandsV2, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_TIMEZONE_ID, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EDITOR_VERIFY_TEXT_COLOR, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmailDeliveryUtils, EmbedBase, FILE_FORMATS, FONTS_RESOURCES, FONT_SIZE_SELECTORS, FROM_EMAIL_ENV_KEYS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, HelpAndProfilePageV2, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_CI, IS_DEV_CI, IS_DEV_ENV, IS_MAILPIT_ENABLED, IS_SHADCN_UI, IS_STAGING_ENV, IS_WEBKIT, ImageUploader, InboundEmailApis, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MAILPIT_BASE_URL, MAILPIT_DOMAIN_NAME, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, MailpitApi, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, NeetoAuthServer, NeetoChatWidget, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PRODUCT_ROLES_ROUTE_MAP, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailApiClient, RailsEmailUtils, RoleApis, RolesPage, RolesPageV2, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, SlackPage, SmsApi, SmsUtils, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEAM_MEMBER_TEXTS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_RESOURCES, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, TeamMembersV2, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_TEST_EMAIL_V2, ZAPIER_WEB_TEXTS, ZapierPage, authenticateUser, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaApi, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, filterUtils, fixedMenuSelector, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getDirname, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, isStagingOrganizationExpired, joinHyphenCase, joinString, login, mailpitDomainName, minutesAgo, networkConditions, networkThrottlingUsingCDP, optionSelector, readFileAsBrowserFile, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, withCookieCache, writeDataToFile };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-playwright-commons",
|
|
3
|
-
"version": "4.7.
|
|
3
|
+
"version": "4.7.5",
|
|
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",
|