@bigbinary/neeto-playwright-commons 3.0.0 → 3.0.2

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.
@@ -1,3061 +0,0 @@
1
- import * as playwright_core from 'playwright-core';
2
- import * as _playwright_test from '@playwright/test';
3
- import { Page, APIRequestContext, Response, APIResponse, Locator, BrowserContext, Fixtures, PlaywrightWorkerArgs, PlaywrightWorkerOptions, PlaywrightTestArgs, PlaywrightTestOptions, Browser, FrameLocator, CDPSession, PlaywrightTestConfig, LaunchOptions } from '@playwright/test';
4
- import { TFunction } from 'i18next';
5
- import { I18nPlaywrightFixture } from 'playwright-i18next-fixture';
6
- import { TOTP, Secret } from 'otpauth';
7
- import * as ts_toolbelt_out_Function_Curry from 'ts-toolbelt/out/Function/Curry';
8
-
9
- interface InterceptMultipleResponsesParams {
10
- responseUrl: string;
11
- times: number;
12
- baseUrl: string;
13
- customPageContext: Page | undefined;
14
- timeout: number;
15
- responseStatus: number;
16
- }
17
- type GenericCallback = (...params: any[]) => Promise<unknown> | unknown;
18
- interface SetSliderValueProps {
19
- parentLocator?: Locator | Page;
20
- valueAsPercent: number;
21
- startFromCenter?: boolean;
22
- }
23
- interface ClickButtonAndAwaitLoadProps {
24
- locator: Locator;
25
- timeout?: number;
26
- }
27
- interface ExecuteRecursivelyParams {
28
- callback: GenericCallback;
29
- condition: GenericCallback;
30
- timeout: number;
31
- }
32
- interface VerifyToastParams {
33
- message: string;
34
- timeout?: number;
35
- closeAfterVerification: boolean;
36
- toastType: "success" | "error";
37
- customPageContext?: Page;
38
- }
39
- interface AssertCardDetailsProps {
40
- cardLocator: Locator;
41
- title: string;
42
- description: string;
43
- }
44
- type ErrorHandlingResult<T> = {
45
- success: true;
46
- result: T;
47
- };
48
- type ErrorHandlingFailure = {
49
- success: false;
50
- error: string;
51
- };
52
- type ErrorHandlingResponse<T> = ErrorHandlingResult<T> | ErrorHandlingFailure;
53
- interface VerifyHelpPopoverProps {
54
- triggerElement?: Locator;
55
- title?: string;
56
- content?: string;
57
- helpURL?: string;
58
- customPageContext?: Page;
59
- }
60
- interface SaveChangesProps {
61
- closeAfterVerification: boolean;
62
- isPane: boolean;
63
- customPageContext: Page;
64
- toastMessage: string;
65
- }
66
- type ConditionProps = Record<string, string>[];
67
- type FilterProps = Record<string, ConditionProps>;
68
- type ParamFilters = FilterProps[];
69
- type BasicTypesInterface = Record<string, number | string | boolean>;
70
- type ParamProps = Record<string, number | string | boolean | ParamFilters>;
71
- type HttpMethods = "get" | "patch" | "post" | "put" | "delete";
72
- interface BreadcrumbTitleAndRoute {
73
- title: string;
74
- route?: string;
75
- }
76
- interface ApiRequestProps {
77
- url: string;
78
- failOnStatusCode?: boolean;
79
- headers?: BasicTypesInterface;
80
- data?: Record<string, unknown>;
81
- method?: HttpMethods;
82
- params?: ParamProps;
83
- timeout?: number;
84
- }
85
- interface ToggleElementProps {
86
- locator: Locator;
87
- shouldBeChecked?: boolean;
88
- }
89
- interface WaitForPageLoadParams {
90
- visibilityTimeout: number;
91
- customPageContext: Page | undefined;
92
- waitForOption: "serial" | "parallel";
93
- }
94
- type ApiRequest = (props: ApiRequestProps & Record<string, unknown>) => Promise<APIResponse | undefined>;
95
- interface FieldValue {
96
- field: string;
97
- value: string;
98
- }
99
- type VerifyFieldValue = (values: FieldValue | FieldValue[]) => Promise<void> | Promise<void[]>;
100
- interface SelectOptionFromDropdownParams {
101
- label?: string;
102
- value: string;
103
- page?: Page;
104
- options?: Partial<{
105
- visibilityTimeout: number;
106
- textAssertionTimeout: number;
107
- retryTimeout: number;
108
- }>;
109
- }
110
- interface SearchAndVerifyProps {
111
- searchTerm: string;
112
- countSelector: string;
113
- searchInputSelector?: string;
114
- countText: string;
115
- }
116
- interface UploadFileViaDispatchProps {
117
- fileNameWithType: string;
118
- assetsPath?: string;
119
- dispatchEvent?: string;
120
- droppableZone?: Locator;
121
- }
122
- interface VerifyTooltipProps {
123
- triggerElement: Locator;
124
- content: string | RegExp | (() => string | RegExp | Promise<string | RegExp>);
125
- customPageContext?: Page;
126
- }
127
- declare class CustomCommands {
128
- page: Page;
129
- t: TFunction;
130
- responses: string[];
131
- request: APIRequestContext;
132
- baseURL: string | undefined;
133
- csrfToken: string | null | undefined;
134
- constructor(page: Page, request: APIRequestContext, baseURL?: string | undefined);
135
- private waitUntilTimeout;
136
- initializeCsrfToken: () => Promise<string | null>;
137
- waitForFloatingMenu: () => Promise<void>;
138
- interceptMultipleResponses: ({ responseUrl, responseStatus, times, baseUrl, customPageContext, timeout, }?: Partial<InterceptMultipleResponsesParams>) => Promise<Response[]>;
139
- private recursiveMethod;
140
- executeRecursively: ({ callback, condition, timeout, }: ExecuteRecursivelyParams) => Promise<unknown>;
141
- verifyToast: ({ message, toastType, closeAfterVerification, timeout, customPageContext, }?: Partial<VerifyToastParams>) => Promise<void>;
142
- waitForPageLoad: ({ visibilityTimeout, customPageContext, waitForOption, }?: Partial<WaitForPageLoadParams>) => Promise<void>;
143
- apiRequest: ApiRequest;
144
- selectOptionFromDropdown: ({ label, value, page, options, }: SelectOptionFromDropdownParams) => Promise<void>;
145
- verifyFieldValue: VerifyFieldValue;
146
- searchAndVerify: ({ searchTerm, searchInputSelector, countSelector, countText, }: SearchAndVerifyProps) => Promise<void>;
147
- uploadImage: (localImagePath: string) => Promise<void>;
148
- uploadFileViaDispatch: ({ fileNameWithType, assetsPath, dispatchEvent, droppableZone, }: UploadFileViaDispatchProps) => Promise<void>;
149
- hoverOnElement: (triggerElement: Locator, customPageContext?: Page) => Promise<void>;
150
- verifyTooltip: ({ triggerElement, content, customPageContext, }: VerifyTooltipProps) => Promise<void>;
151
- verifyHelpPopover: ({ triggerElement, title, content, helpURL, customPageContext, }: VerifyHelpPopoverProps) => Promise<void>;
152
- assertHelpURLIsValid: (helpURL: string) => Promise<void>;
153
- verifyHelpText: (helpURL: string) => Promise<void>;
154
- verifySearchTermBlock: (searchTerm?: string) => Promise<void>;
155
- saveChanges: ({ isPane, customPageContext, closeAfterVerification, toastMessage, }?: Partial<SaveChangesProps>) => Promise<[void, false | void, void]>;
156
- hideTooltip: (triggerElement: Locator, customPageContext?: Page) => Promise<void>;
157
- verifyBreadcrumbs: (titlesAndRoutes: BreadcrumbTitleAndRoute[]) => Promise<void>;
158
- uploadFileViaDispatchV2: ({ droppableZone, dispatchEvent, timeout, file, }: {
159
- file: File;
160
- dispatchEvent?: string;
161
- droppableZone?: Locator;
162
- timeout?: number;
163
- }) => Promise<void>;
164
- verifyUnsavedChangesModal: (shouldLeavePage?: boolean) => Promise<void>;
165
- setSliderValue: ({ parentLocator, valueAsPercent, startFromCenter, }: SetSliderValueProps) => Promise<void>;
166
- assertCardDetails: ({ cardLocator, title, description, }: AssertCardDetailsProps) => Promise<[void, void, void]>;
167
- executeWithErrorHandling: <T>(asyncFn: () => Promise<T>) => Promise<ErrorHandlingResponse<T>>;
168
- clickButtonAndAwaitLoad: ({ locator, timeout, }: ClickButtonAndAwaitLoadProps) => Promise<void>;
169
- toggleElement: ({ locator, shouldBeChecked }: ToggleElementProps) => Promise<void>;
170
- moveCursorAtBottom: () => Promise<void>;
171
- }
172
-
173
- declare class ApiKeysApi {
174
- private neetoPlaywrightUtilities;
175
- private readonly API_KEYS_BASE_URL;
176
- constructor(neetoPlaywrightUtilities: CustomCommands);
177
- create: (label: string, type?: "general" | "zapier") => Promise<playwright_core.APIResponse | undefined>;
178
- }
179
-
180
- declare class CustomDomainApi {
181
- private neetoPlaywrightUtilities;
182
- constructor(neetoPlaywrightUtilities: CustomCommands);
183
- create: (hostname: string, baseUrl?: string) => Promise<playwright_core.APIResponse | undefined>;
184
- delete: (customDomain: string) => Promise<playwright_core.APIResponse | undefined>;
185
- fetch: (baseUrl?: string) => Promise<playwright_core.APIResponse | undefined>;
186
- validate: (baseUrl?: string) => Promise<playwright_core.APIResponse | undefined>;
187
- }
188
-
189
- interface AllowedIpRange {
190
- ipStart: string;
191
- ipEnd: string;
192
- addressType: string;
193
- }
194
- declare class IpRestrictionsApi {
195
- private neetoPlaywrightUtilities;
196
- constructor(neetoPlaywrightUtilities: CustomCommands);
197
- enable: ({ ipStart, ipEnd, addressType }: AllowedIpRange) => Promise<playwright_core.APIResponse | undefined>;
198
- disable: () => Promise<playwright_core.APIResponse | undefined>;
199
- }
200
-
201
- declare class MemberApis {
202
- private neetoPlaywrightUtilities;
203
- private readonly teamMembersBaseUrl;
204
- private readonly teamsBaseUrl;
205
- constructor(neetoPlaywrightUtilities: CustomCommands);
206
- create: (body: Record<string, unknown>) => Promise<playwright_core.APIResponse | undefined>;
207
- jobStatus: (jobId: string) => Promise<playwright_core.APIResponse | undefined>;
208
- fetch: (params?: ParamProps) => Promise<playwright_core.APIResponse | undefined>;
209
- fetchPermissions: () => Promise<playwright_core.APIResponse | undefined>;
210
- update: (memberId: string, body: Record<string, unknown>) => Promise<playwright_core.APIResponse | undefined>;
211
- bulkUpdate: (body: Record<string, unknown>) => Promise<playwright_core.APIResponse | undefined>;
212
- }
213
-
214
- type EmailDeliveryProvider = "gmail" | "outlook";
215
- interface EmailDeliveryConnectParams {
216
- emailProvider: EmailDeliveryProvider;
217
- refreshToken: string;
218
- }
219
- interface EmailDeliveryVerifyEmailParams {
220
- emailProvider: EmailDeliveryProvider;
221
- subject: string;
222
- to: string;
223
- from: string;
224
- body?: string;
225
- }
226
- interface EmailDeliveryVerifiedEmail {
227
- subject: string;
228
- from: string;
229
- to: string;
230
- date: string;
231
- body: string;
232
- }
233
- interface EmailDeliveryVerifyEmailResponse {
234
- exists: boolean;
235
- email?: EmailDeliveryVerifiedEmail;
236
- }
237
- declare class NeetoEmailDeliveryApi {
238
- private neetoPlaywrightUtilities;
239
- constructor(neetoPlaywrightUtilities: CustomCommands);
240
- connect: (payload: EmailDeliveryConnectParams) => Promise<playwright_core.APIResponse | undefined>;
241
- verifyEmail: (params: EmailDeliveryVerifyEmailParams) => Promise<playwright_core.APIResponse | undefined>;
242
- }
243
-
244
- type EmailAddress = string | string[];
245
- interface RailsEmailAttachment {
246
- name: string;
247
- type: string;
248
- content: string;
249
- }
250
- interface RailsEmail {
251
- from: EmailAddress;
252
- to: EmailAddress;
253
- cc?: EmailAddress;
254
- bcc?: EmailAddress;
255
- replyTo?: EmailAddress;
256
- subject: string;
257
- htmlBody?: string;
258
- textBody?: string;
259
- receivedAt: string;
260
- attachments?: RailsEmailAttachment[];
261
- }
262
- interface BaseRailsEmailSearchParams {
263
- to: string;
264
- from: string;
265
- subject: string;
266
- body: string;
267
- receivedAfter: string;
268
- }
269
- type RailsEmailSearchParams = Partial<BaseRailsEmailSearchParams>;
270
- declare class RailsEmailApiClient {
271
- private readonly port;
272
- private readonly subdomain;
273
- private readonly baseUrl;
274
- private readonly emailsEndpoint;
275
- constructor();
276
- private convertRawEmail;
277
- private buildQueryString;
278
- private fetchJson;
279
- listEmails: (searchParams?: RailsEmailSearchParams) => Promise<RailsEmail[]>;
280
- getLatestEmail: (searchParams?: RailsEmailSearchParams) => Promise<RailsEmail | null>;
281
- clearEmails: () => Promise<unknown>;
282
- }
283
-
284
- declare class RoleApis {
285
- private neetoPlaywrightUtilities;
286
- private readonly BASE_URL;
287
- private readonly ORGANIZATION_ROLES_URL;
288
- constructor(neetoPlaywrightUtilities: CustomCommands);
289
- fetch: (endpoint: "teams" | "permissions" | "organization_roles") => Promise<playwright_core.APIResponse | undefined>;
290
- addRole: (roleName: string, permissionIds: string[]) => Promise<playwright_core.APIResponse | undefined>;
291
- editRole: (roleId: string, body: Record<string, unknown>) => Promise<playwright_core.APIResponse | undefined>;
292
- deleteRole: (roleId: string, standardRoleId: string) => Promise<playwright_core.APIResponse | undefined>;
293
- }
294
-
295
- type SecurityAuthType = "password" | "email" | "invite" | "member";
296
- type SecurityRequestParams = {
297
- ownerId?: string;
298
- auth: SecurityAuthType;
299
- value?: string;
300
- };
301
- declare class SecurityApi {
302
- private neetoPlaywrightUtilities;
303
- constructor(neetoPlaywrightUtilities: CustomCommands);
304
- buildBody: (auth: SecurityAuthType, value?: string) => {
305
- configuration: {
306
- auth: string;
307
- password: string;
308
- allowed_keywords?: undefined;
309
- };
310
- } | {
311
- configuration: {
312
- auth: string;
313
- password?: undefined;
314
- allowed_keywords?: undefined;
315
- };
316
- } | {
317
- configuration: {
318
- auth: string;
319
- allowed_keywords: string[];
320
- password?: undefined;
321
- };
322
- };
323
- update: ({ ownerId, auth, value }: SecurityRequestParams) => Promise<playwright_core.APIResponse | undefined>;
324
- }
325
-
326
- declare class TagsApi {
327
- private neetoPlaywrightUtilities;
328
- constructor(neetoPlaywrightUtilities: CustomCommands);
329
- create: ({ body, tagsRequestUrl, }: {
330
- body: Record<string, unknown>;
331
- tagsRequestUrl: string;
332
- }) => Promise<playwright_core.APIResponse | undefined>;
333
- }
334
-
335
- interface ThankYouApiRequestParams {
336
- entityId: string;
337
- title: string;
338
- thankYouPageId: string;
339
- }
340
- declare class ThankYouApi {
341
- private neetoPlaywrightUtilities;
342
- constructor(neetoPlaywrightUtilities: CustomCommands);
343
- create: ({ entityId, title, }: Omit<ThankYouApiRequestParams, "thankYouPageId">) => Promise<playwright_core.APIResponse | undefined>;
344
- fetch: ({ entityId }: Pick<ThankYouApiRequestParams, "entityId">) => Promise<playwright_core.APIResponse | undefined>;
345
- update: ({ thankYouPageId, entityId, }: Omit<ThankYouApiRequestParams, "title">) => Promise<playwright_core.APIResponse | undefined>;
346
- }
347
-
348
- declare class NeetoTowerApi {
349
- private neetoPlaywrightUtilities;
350
- private readonly apiKey;
351
- constructor(neetoPlaywrightUtilities: CustomCommands);
352
- private apiRequest;
353
- createRecord: ({ hostname, value }: {
354
- hostname: string;
355
- value: string;
356
- }) => Promise<playwright_core.APIResponse | undefined>;
357
- getRecords: () => Promise<playwright_core.APIResponse | undefined>;
358
- deleteRecord: (dnsDomainId: string) => Promise<playwright_core.APIResponse | undefined>;
359
- }
360
-
361
- declare class SlackApi {
362
- private neetoPlaywrightUtilities;
363
- private readonly botToken;
364
- constructor(neetoPlaywrightUtilities: CustomCommands);
365
- private apiRequest;
366
- fetchMessages: (channelId: string, unixTimestamp: number) => Promise<playwright_core.APIResponse | undefined>;
367
- createChannel: (channelName: string) => Promise<playwright_core.APIResponse | undefined>;
368
- addUser: (channelId: string, userId: string) => Promise<playwright_core.APIResponse | undefined>;
369
- mockChannelDeleted: (channelId: string) => Promise<playwright_core.APIResponse | undefined>;
370
- }
371
-
372
- declare class WebhookSiteApi {
373
- private readonly request;
374
- private readonly WEBHOOK_SITE_BASE_URL;
375
- constructor(request: APIRequestContext);
376
- create: () => Promise<playwright_core.APIResponse>;
377
- fetch: (token: string) => Promise<playwright_core.APIResponse>;
378
- configure: (tokenId: string, content?: string) => Promise<playwright_core.APIResponse>;
379
- }
380
-
381
- type IntegrableType = "Form" | string;
382
- interface TwilioRequestParams {
383
- integrableId: string;
384
- integrableType: IntegrableType;
385
- }
386
- declare class TwilioApi {
387
- private neetoPlaywrightUtilities;
388
- private readonly authToken;
389
- private readonly sid;
390
- private readonly defaultPhoneSid;
391
- constructor(neetoPlaywrightUtilities: CustomCommands);
392
- private apiRequest;
393
- fetch: ({ integrableId, integrableType }: TwilioRequestParams) => Promise<playwright_core.APIResponse | undefined>;
394
- disconnect: ({ integrableId, integrableType }: TwilioRequestParams) => Promise<playwright_core.APIResponse | undefined>;
395
- connect: ({ integrableId, integrableType }: TwilioRequestParams) => Promise<playwright_core.APIResponse | undefined>;
396
- }
397
-
398
- declare class Health {
399
- page: Page;
400
- neetoPlaywrightUtilities: CustomCommands;
401
- private readonly email;
402
- private loginPage;
403
- constructor(page: Page, neetoPlaywrightUtilities: CustomCommands);
404
- loginToApp: (route?: string) => Promise<void>;
405
- verifyAppUI: () => Promise<void>;
406
- verifyAppIsLive: (customSteps?: () => Promise<void>) => Promise<void>;
407
- }
408
-
409
- interface BaseMessageSearchCriteria {
410
- from: string;
411
- to: string;
412
- subject: string;
413
- body: string;
414
- }
415
- type MessageSearchCriteria$1 = Partial<BaseMessageSearchCriteria>;
416
- interface FindMessageFilterOptions$1 {
417
- receivedAfter: Date;
418
- timeout: number;
419
- expectedEmailCount?: number;
420
- }
421
- interface FindOtpFromEmailParams$1 {
422
- email: string;
423
- subjectSubstring?: string;
424
- timeout?: number;
425
- receivedAfter?: Date;
426
- expectedEmailCount?: number;
427
- }
428
- interface Identifier$1 {
429
- name: string;
430
- email: string;
431
- }
432
- interface MessageInferredData$1 {
433
- links: string[] | null;
434
- codes: string[] | null;
435
- body: string;
436
- }
437
- interface Attachment$1 {
438
- name: string;
439
- type: string;
440
- }
441
- interface FormattedList$1 {
442
- html: MessageInferredData$1;
443
- text: MessageInferredData$1;
444
- id: string;
445
- from: Identifier$1[];
446
- to: Identifier$1[];
447
- cc: Identifier$1[];
448
- bcc: Identifier$1[];
449
- replyTo: Identifier$1[];
450
- received: string;
451
- subject: string;
452
- attachments: Attachment$1[];
453
- blobId: string;
454
- }
455
- interface AttachmentDetails$1 {
456
- filename: string;
457
- type: string;
458
- content: Buffer;
459
- contentType: string;
460
- }
461
- declare class RailsEmailUtils {
462
- private neetoPlaywrightUtilities;
463
- private railsEmailClient;
464
- constructor(neetoPlaywrightUtilities: CustomCommands);
465
- private convertRailsEmailToFormattedList;
466
- clearEmails: () => Promise<unknown>;
467
- getLatestEmail: (searchParams: RailsEmailSearchParams) => Promise<RailsEmail | null>;
468
- listEmails: (searchParams?: RailsEmailSearchParams) => Promise<RailsEmail[]>;
469
- listMessages: (messageSearchCriteria?: MessageSearchCriteria$1, { receivedAfter, }?: {
470
- receivedAfter?: Date;
471
- }) => Promise<FormattedList$1[]>;
472
- findMessage: (messageSearchCriteria?: MessageSearchCriteria$1, { timeout, receivedAfter, expectedEmailCount, }?: Partial<FindMessageFilterOptions$1> | undefined, shouldThrowErrorOnTimeout?: boolean) => Promise<FormattedList$1 | Record<string, never>>;
473
- findOtpFromEmail: ({ email, subjectSubstring, timeout, receivedAfter, expectedEmailCount, }: FindOtpFromEmailParams$1) => Promise<string | undefined>;
474
- getEmailAttachment: (attachmentName: string, messageSearchCriteria?: MessageSearchCriteria$1, { receivedAfter, expectedEmailCount, timeout, }?: Partial<FindMessageFilterOptions$1> | undefined, shouldThrowErrorOnTimeout?: boolean) => Promise<AttachmentDetails$1 | undefined>;
475
- }
476
-
477
- interface FastmailHeaders {
478
- "Content-Type": "application/json";
479
- Authorization: `Bearer ${string}`;
480
- }
481
- declare class FastmailApi {
482
- private neetoPlaywrightUtilities;
483
- headers: FastmailHeaders;
484
- accountId: string | undefined;
485
- constructor(neetoPlaywrightUtilities: CustomCommands);
486
- authorizeAndSetAccountId: () => Promise<void>;
487
- apiRequest: (method: string, body: Record<string, unknown>) => Promise<any>;
488
- fetchAttachments: (blobId: string, attachmentName: string) => Promise<playwright_core.APIResponse | undefined>;
489
- }
490
-
491
- type Range<N extends number, Acc extends number[] = []> = Acc["length"] extends N ? Exclude<Acc[number], 0 | Acc["length"]> | N : Range<N, [...Acc, Acc["length"]]>;
492
- interface MessageSearchCriteria {
493
- from: string;
494
- to: string;
495
- subject: string;
496
- body: string;
497
- }
498
- interface FindMessageFilterOptions {
499
- receivedAfter: Date;
500
- timeout: number;
501
- expectedEmailCount?: number;
502
- }
503
- interface Identifier {
504
- name: string;
505
- email: string;
506
- }
507
- interface Attachment {
508
- name: string;
509
- type: string;
510
- }
511
- interface FindOtpFromEmailParams {
512
- email: string;
513
- subjectSubstring?: string;
514
- timeout?: number;
515
- receivedAfter?: Date;
516
- expectedEmailCount?: number;
517
- }
518
- interface ListMessagesFilterCriteria {
519
- receivedAfter: Date;
520
- page: number;
521
- itemsPerPage: Range<100>;
522
- }
523
- interface MessageInferredData {
524
- links: string[] | null;
525
- codes: string[] | null;
526
- body: string;
527
- }
528
- interface AttachmentDetails {
529
- filename: string;
530
- type: string;
531
- content: Buffer;
532
- contentType: string;
533
- }
534
- interface FormattedList {
535
- html: MessageInferredData;
536
- text: MessageInferredData;
537
- id: string;
538
- from: Identifier[];
539
- to: Identifier[];
540
- cc: Identifier[];
541
- bcc: Identifier[];
542
- replyTo: Identifier[];
543
- received: string;
544
- subject: string;
545
- attachments: Attachment[];
546
- blobId: string;
547
- }
548
- declare class MailerUtils {
549
- private neetoPlaywrightUtilities;
550
- accountId: string | undefined;
551
- fastmailApi: FastmailApi;
552
- railsEmailUtils: RailsEmailUtils;
553
- constructor(neetoPlaywrightUtilities: CustomCommands);
554
- private queryEmail;
555
- private getEmails;
556
- listMessages: (messageSearchCriteria?: Partial<MessageSearchCriteria> | undefined, listMessagesFilterCriteria?: Partial<ListMessagesFilterCriteria> | undefined) => Promise<FormattedList$1[]>;
557
- getEmailIds: (messageSearchCriteria?: Partial<MessageSearchCriteria>, { timeout, receivedAfter, expectedEmailCount, }?: Partial<FindMessageFilterOptions> | undefined, shouldThrowErrorOnTimeout?: boolean) => Promise<string[]>;
558
- private matchesCriteria;
559
- findMessage: (messageSearchCriteria?: Partial<MessageSearchCriteria>, { timeout, receivedAfter, expectedEmailCount, }?: Partial<FindMessageFilterOptions> | undefined, shouldThrowErrorOnTimeout?: boolean) => Promise<FormattedList | Record<string, never>>;
560
- findOtpFromEmail: ({ email, subjectSubstring, timeout, receivedAfter, expectedEmailCount, }: FindOtpFromEmailParams) => Promise<string | undefined>;
561
- generateRandomEmail: () => string;
562
- getEmailAttachment: (attachmentName: string, messageSearchCriteria?: Partial<MessageSearchCriteria>, { timeout, receivedAfter, expectedEmailCount, }?: Partial<FindMessageFilterOptions> | undefined, shouldThrowErrorOnTimeout?: boolean) => Promise<AttachmentDetails | undefined>;
563
- }
564
-
565
- declare const decodeQRCodeFromFile: (filePath: string) => Promise<string | undefined>;
566
- declare class QRCodeUtils {
567
- private page;
568
- constructor(page: Page);
569
- verifyQRCodeInFile: (qrCodeDownloadButton: Locator, qrCodeContent: string) => Promise<void>;
570
- verifyQRCodeOnScreen: (qrCodeCanvas: Locator, qrCodeContent: string) => Promise<void>;
571
- decodeQRCodeFromFile: (filePath: string) => Promise<string | undefined>;
572
- }
573
-
574
- type Hex = Lowercase<`#${string}`>;
575
- interface BaseThemeStyle {
576
- primaryColor: Hex;
577
- secondaryColor: Hex;
578
- primaryTextColor: Hex;
579
- secondaryTextColor: Hex;
580
- backgroundColor: Hex;
581
- cardBackgroundColor: Hex;
582
- cardTextColor: Hex;
583
- linkColor: Hex;
584
- }
585
- type BaseThemeStyleType = keyof BaseThemeStyle;
586
- interface IntroPageThemeStyle {
587
- titleColor: Hex;
588
- descriptionColor: Hex;
589
- cardBackgroundColor: Hex;
590
- pageBackgroundColor: Hex;
591
- meetingCardBackgroundColor: Hex;
592
- meetingCardTextColor: Hex;
593
- }
594
- type IntroPageThemeStyleType = keyof IntroPageThemeStyle;
595
- type ThemeCategory = "base" | "intro";
596
- declare const hexToRGBA: (hex: string) => string;
597
- declare class ColorPickerUtils {
598
- private page;
599
- constructor(page: Page);
600
- pickColor: (themeLocator: Locator, color: Hex) => Promise<void>;
601
- hexToRGBA: (hex: string) => string;
602
- }
603
-
604
- interface CustomFixture {
605
- neetoPlaywrightUtilities: CustomCommands;
606
- context: BrowserContext;
607
- page: Page;
608
- health: Health;
609
- mailerUtils: MailerUtils;
610
- colorPicker: ColorPickerUtils;
611
- qrCodeUtils: QRCodeUtils;
612
- }
613
- type Commands = Fixtures<CustomFixture, PlaywrightWorkerArgs & PlaywrightWorkerOptions, PlaywrightTestArgs & PlaywrightTestOptions, PlaywrightWorkerArgs & PlaywrightWorkerOptions>;
614
- declare const commands: Commands;
615
-
616
- declare const generateStagingData: (product?: string) => {
617
- firstName: string;
618
- lastName: string;
619
- otp: number;
620
- domain: string;
621
- currentUserName: string;
622
- businessName: string;
623
- subdomainName: string;
624
- email: string;
625
- };
626
-
627
- declare const _default: _playwright_test.TestType<_playwright_test.PlaywrightTestArgs & _playwright_test.PlaywrightTestOptions & Browser, _playwright_test.PlaywrightWorkerArgs & _playwright_test.PlaywrightWorkerOptions>;
628
-
629
- declare const i18nFixture: Fixtures<PlaywrightTestArgs & PlaywrightTestOptions, I18nPlaywrightFixture, PlaywrightTestArgs & PlaywrightTestOptions, PlaywrightWorkerArgs & PlaywrightWorkerOptions>;
630
-
631
- declare class ThankYouPage {
632
- page: Page;
633
- neetoPlaywrightUtilities: CustomCommands;
634
- t: TFunction;
635
- constructor(page: Page, neetoPlaywrightUtilities: CustomCommands);
636
- navigateToThankYouPage: () => Promise<void>;
637
- saveChanges: () => Promise<void>;
638
- verifyThankYouImage: (imagePath: string, imageName: string) => Promise<void>;
639
- verifyEditorMenu: () => Promise<void>;
640
- verifyThankYouMessage: (thankYouMessage: string) => Promise<void>;
641
- addRedirectUrl: (customRedirectUrl: string) => Promise<void>;
642
- }
643
-
644
- type EmbedType = "inline" | "floatingPopup" | "elementPopup" | "iframe";
645
- type GetByRoleOptions = {
646
- checked?: boolean;
647
- disabled?: boolean;
648
- exact?: boolean;
649
- expanded?: boolean;
650
- includeHidden?: boolean;
651
- level?: number;
652
- name?: string | RegExp;
653
- pressed?: boolean;
654
- selected?: boolean;
655
- };
656
- type InlineCustomizationOptions = {
657
- embedDivContainerId: string;
658
- };
659
- type VerifyInlineCustomizationParams = {
660
- headingTestId: string;
661
- customizationOptions: InlineCustomizationOptions;
662
- };
663
- type FloatingPopupCustomizationOptions = {
664
- buttonText: string;
665
- buttonColorHex: string;
666
- buttonTextColorHex: string;
667
- buttonPosition: "Bottom left" | "Bottom right";
668
- showIcon?: boolean;
669
- };
670
- type ElementClickCustomizationOptions = {
671
- customId: string;
672
- };
673
- type InitializeEmbedPageParams = {
674
- embedType: EmbedType;
675
- embedCode: string;
676
- customElementText?: string;
677
- };
678
- type EmbedBasePageConstructorParams = {
679
- context: BrowserContext;
680
- page: Page;
681
- neetoPlaywrightUtilities: CustomCommands;
682
- appName: string;
683
- };
684
- declare class EmbedBase {
685
- context: BrowserContext;
686
- page: Page;
687
- neetoPlaywrightUtilities: CustomCommands;
688
- appName: string;
689
- t: TFunction;
690
- embedTestPage: Page;
691
- embedTestPageType: EmbedType;
692
- embeddedFrame: FrameLocator;
693
- filePath: string;
694
- codeBlock: Locator;
695
- previewTab: Locator;
696
- constructor({ context, page, neetoPlaywrightUtilities, appName, }: EmbedBasePageConstructorParams);
697
- initializeEmbedPage: ({ embedType, embedCode, customElementText, }: InitializeEmbedPageParams) => Promise<Page>;
698
- closeEmbedModalAndPage: () => Promise<void>;
699
- clickOnPopupButton: (popUpButtonSelectorOptions: GetByRoleOptions) => Promise<void>;
700
- copyEmbedScript: (embedType: EmbedType) => Promise<string>;
701
- selectEmbedType: (embedType: EmbedType) => Promise<void>;
702
- verifyInlineCustomization: ({ headingTestId, customizationOptions, }: VerifyInlineCustomizationParams) => Promise<void>;
703
- backToEmbedSelection: () => Promise<void>;
704
- private pickColor;
705
- verifyFloatingPopupCustomization: (customizationOptions: FloatingPopupCustomizationOptions) => Promise<void>;
706
- verifyElementClickCustomization: (customizationOptions: ElementClickCustomizationOptions) => Promise<void>;
707
- expectMultipleTextsInCodeblock: (containTextOptions: [string | RegExp, string | RegExp, ...(string | RegExp)[]]) => Promise<void>;
708
- }
709
-
710
- interface HelpAndProfilePageInitializerProps {
711
- page: Page;
712
- neetoPlaywrightUtilities: CustomCommands;
713
- product: NeetoProducts;
714
- }
715
- interface UpdateProfileProps {
716
- firstName: string;
717
- lastName?: string;
718
- }
719
- interface FillTextFieldsProps {
720
- firstName: string;
721
- lastName: string;
722
- phoneNumber?: string;
723
- }
724
- interface ContactInfo extends FillTextFieldsProps {
725
- email?: string;
726
- }
727
- interface SettingsInfo {
728
- country: string;
729
- timeZone: string;
730
- timeFormat: string;
731
- dateFormat: string;
732
- }
733
- interface BasicInfoParams {
734
- contact: ContactInfo;
735
- settings: SettingsInfo;
736
- imageName: string;
737
- }
738
- type NeetoProducts = "Form" | "Cal" | "Auth" | "KB" | "Desk" | "Chat" | "Invoice" | "Playdash" | "BugWatch" | "Record" | "Site" | "Engage" | "Quiz" | "Planner" | "CRM" | "Publish" | "Course";
739
- declare class HelpAndProfilePage {
740
- page: Page;
741
- product: NeetoProducts;
742
- neetoPlaywrightUtilities: CustomCommands;
743
- neetoChatWidget: Locator;
744
- neetoChatFrame: FrameLocator;
745
- neetoChatSpinner: Locator;
746
- helpMenuBtn: Locator;
747
- t: TFunction;
748
- profileSectionButton: Locator;
749
- constructor({ page, neetoPlaywrightUtilities, product, }: HelpAndProfilePageInitializerProps);
750
- openHelpCenter: () => Promise<void>;
751
- private openLiveChatAndVerify;
752
- openAndVerifyChatWidget: () => Promise<void>;
753
- openAndVerifyHelpArticles: () => Promise<void>;
754
- private openChangelogPane;
755
- openAndVerifyChangelog: () => Promise<void>;
756
- private formatKeyboardShortcut;
757
- openAndVerifyKeyboardShortcutsPane: (productShortcuts: {
758
- description: string;
759
- sequence: string;
760
- }[], osPlatform?: "mac" | "windows") => Promise<void>;
761
- openAppSwitcherAndVerify: () => Promise<void>;
762
- verifyLogout: () => Promise<void>;
763
- private openAuthLinkAndVerify;
764
- private fillTextFields;
765
- private selectDropdownFields;
766
- private uploadImage;
767
- updateBasicInfo: ({ contact, settings, imageName, }: BasicInfoParams) => Promise<void>;
768
- openProfile: () => Promise<void>;
769
- verifyProfileSidePane: ({ contact, settings }: BasicInfoParams) => Promise<void>;
770
- verifyProfile: () => Promise<void>;
771
- verifyWorkspace: () => Promise<void>;
772
- /**
773
- * @deprecated This method is deprecated. Use verifyWorkspace instead.
774
- */
775
- verifyProfileAndOrganizationLinks: () => Promise<void>;
776
- openAndVerifyStatus: () => Promise<void>;
777
- openAndVerifyCommunity: () => Promise<void>;
778
- verifySubscriptionPlan: (plan: "Free" | "Pro", product?: NeetoProducts) => Promise<void>;
779
- verifyThemeSwitcher: (expectedScreenshot: string) => Promise<void>;
780
- /**
781
- * @deprecated This method is deprecated. Use updateBasicInfo instead.
782
- */
783
- updateProfile: ({ firstName, lastName }: UpdateProfileProps) => Promise<void>;
784
- }
785
-
786
- type IntegrationStatus = "connected" | "disconnected";
787
- type PartialInterceptMultipleResponsesParams = Partial<InterceptMultipleResponsesParams>;
788
- interface IntegrationBaseParams {
789
- page: Page;
790
- neetoPlaywrightUtilities: CustomCommands;
791
- integration: string;
792
- connectedHeader?: string;
793
- connectHeader?: string;
794
- pageloaderTimeout?: number;
795
- integrationRouteIndex?: string;
796
- integrationRouteResponsesParams?: PartialInterceptMultipleResponsesParams;
797
- }
798
- declare class IntegrationBase {
799
- readonly page: Page;
800
- readonly neetoPlaywrightUtilities: CustomCommands;
801
- readonly t: TFunction;
802
- readonly integration: string;
803
- readonly integrationCard: Locator;
804
- readonly connectHeader: string;
805
- readonly connectedHeader: string;
806
- pageloaderTimeout: number;
807
- integrationRouteIndex: string;
808
- integrationRouteResponsesParams: PartialInterceptMultipleResponsesParams;
809
- constructor({ page, neetoPlaywrightUtilities, integration, connectHeader, connectedHeader, pageloaderTimeout, integrationRouteIndex, integrationRouteResponsesParams, }: IntegrationBaseParams);
810
- disconnect: (interceptMultipleResponsesParams?: PartialInterceptMultipleResponsesParams) => Promise<void>;
811
- connect: (skipGoTo?: boolean) => Promise<void>;
812
- verifyIntegrationStatus: (status?: IntegrationStatus, visibilityTimeout?: number) => Promise<void>;
813
- clickOnIntegrationCard: () => Promise<void>;
814
- gotoIntegrationIndex: () => Promise<void>;
815
- }
816
-
817
- type StagingConsentFlowParams = {
818
- abortFlow?: boolean;
819
- allowPermissions: boolean;
820
- };
821
- type GooglePageParams = {
822
- page: Page;
823
- neetoPlaywrightUtilities: CustomCommands;
824
- integration: string;
825
- integrationRouteIndex?: string;
826
- appName?: string;
827
- };
828
- declare class GooglePage extends IntegrationBase {
829
- totp: TOTP;
830
- t: TFunction;
831
- appName: string;
832
- constructor({ page, neetoPlaywrightUtilities, integration, integrationRouteIndex, appName, }: GooglePageParams);
833
- waitForGoogleAuthURL: () => Promise<void>;
834
- connectGoogleAccount: (appName?: string) => Promise<void>;
835
- selectGoogleAccount: (appName?: string) => Promise<void>;
836
- loginToGoogle: () => Promise<void>;
837
- enterTotpCode: () => Promise<void>;
838
- logoutFromGoogle: () => Promise<void>;
839
- disconnectAndVerifyIntegration: () => Promise<void>;
840
- stagingConsentFlow: ({ abortFlow, allowPermissions, }?: Partial<StagingConsentFlowParams>) => Promise<void>;
841
- private handleNotVerifiedPage;
842
- revokePermissions: () => Promise<void>;
843
- }
844
-
845
- declare const initializeTotp: ({ issuer, secret, }: {
846
- issuer: string;
847
- secret: string | Secret;
848
- }) => TOTP;
849
-
850
- type MicrosoftPageParams = {
851
- page: Page;
852
- neetoPlaywrightUtilities: CustomCommands;
853
- integrationRouteIndex?: string;
854
- integration?: string;
855
- };
856
- declare class MicrosoftPage extends IntegrationBase {
857
- totp: ReturnType<typeof initializeTotp>;
858
- mailerUtils: MailerUtils;
859
- constructor({ page, neetoPlaywrightUtilities, integrationRouteIndex, integration, }: MicrosoftPageParams);
860
- stagingConsentFlow: (abortFlow?: boolean) => Promise<void>;
861
- private enterEmail;
862
- private enterPassword;
863
- loginToMicrosoft: () => Promise<void>;
864
- private enterTotpCode;
865
- private staySignedIn;
866
- revokePermissions: () => Promise<void>;
867
- }
868
-
869
- type AsyncNoArgsFunction = () => Promise<void>;
870
- type RedirectUrl = string | RegExp | ((url: URL) => boolean);
871
- type UpdateConfigureSlackChannelParams = {
872
- newSlackChannel: string;
873
- refreshChannelList?: boolean;
874
- };
875
- type SlackPageParams = {
876
- page: Page;
877
- neetoPlaywrightUtilities: CustomCommands;
878
- integrationRouteIndex?: string;
879
- };
880
- interface CreateNewSlackChannelParams {
881
- channelName: string;
882
- kind?: "public" | "private";
883
- }
884
- declare class SlackPage extends IntegrationBase {
885
- slackWebappPage: Page;
886
- slackWebappPageDataQa: (dataQa: string | [string, string]) => Locator;
887
- allowButton: Locator;
888
- callbackUrl: string;
889
- currentWorkspace: string;
890
- constructor({ page, neetoPlaywrightUtilities, integrationRouteIndex, }: SlackPageParams);
891
- setupCloseHandlers: (slackWebappPage?: Page) => Promise<void>;
892
- private initializeSlackPermissionPage;
893
- navigateToCallbackUrl: () => Promise<void>;
894
- captureCallbackUrl: () => Page;
895
- private connectAndVerifyInDev;
896
- private connectAndVerifyInStaging;
897
- connectAndVerifyIntegration: (redirectUrl: RedirectUrl, customSteps?: AsyncNoArgsFunction, channelToConfigure?: string) => Promise<void>;
898
- private completeSlackChannelSetup;
899
- disconnectAndVerifyIntegration: () => Promise<void>;
900
- updateConfigureSlackChannel: ({ newSlackChannel, refreshChannelList, }: UpdateConfigureSlackChannelParams) => Promise<void>;
901
- clickOnChannelListRefreshButton: () => Promise<void>;
902
- loginToSlackWebapp: (slackWebappPage: Page, customCredentials?: Record<"workspace" | "loginPassword" | "loginEmail", string | undefined>) => Promise<void>;
903
- logoutFromSlackWebApp: () => Promise<void>;
904
- goToSlackChannel: (slackChannel: string) => Promise<void>;
905
- createNewSlackChannel: ({ channelName, kind, }: CreateNewSlackChannelParams) => Promise<void>;
906
- deleteSlackChannel: (channel: string) => Promise<void>;
907
- }
908
-
909
- interface WebhooksPageParams {
910
- page: Page;
911
- neetoPlaywrightUtilities: CustomCommands;
912
- }
913
- type CallbackFunction = (args: Record<string, unknown>) => void;
914
- interface VerifyWebhookResponseParams extends Record<string, unknown> {
915
- callback?: CallbackFunction;
916
- parseFullResponseContent?: boolean;
917
- webhookToken: string;
918
- timeout?: number;
919
- }
920
- interface VerifyWebhookDeliveriesParams extends Record<string, unknown> {
921
- callback: CallbackFunction;
922
- }
923
- interface VerifyWebhookDeliveryByEventParams extends Record<string, unknown> {
924
- event: string;
925
- callbackToVerifyDeliveries: (args: Record<string, unknown>) => void;
926
- }
927
- declare class WebhooksPage {
928
- page: Page;
929
- neetoPlaywrightUtilities: CustomCommands;
930
- webhookSiteApi: WebhookSiteApi;
931
- t: TFunction;
932
- constructor({ page, neetoPlaywrightUtilities }: WebhooksPageParams);
933
- getTokenViaAPI: () => Promise<{
934
- webhookToken: never;
935
- webhookSiteURL: string;
936
- }>;
937
- addWebhook: ({ webhookSiteURL }: {
938
- webhookSiteURL: string;
939
- }) => Promise<void>;
940
- verifyLatestWebhookResponse: ({ callback, webhookToken, parseFullResponseContent, timeout, ...otherParams }: VerifyWebhookResponseParams) => Promise<void>;
941
- verifyWebhookDeliveries: ({ callback, ...otherParams }: VerifyWebhookDeliveriesParams) => Promise<void>;
942
- verifyWebhookDeliveryByEvent: ({ event, callbackToVerifyDeliveries, ...fieldsToBeVerified }: VerifyWebhookDeliveryByEventParams) => Promise<void>;
943
- }
944
-
945
- interface ZapierPageInitializer {
946
- page: Page;
947
- neetoPlaywrightUtilities: CustomCommands;
948
- integrationRouteIndex?: string;
949
- mailerUtils: MailerUtils;
950
- }
951
- interface VerifyZapIsTriggeredProps {
952
- submittedEmail: string;
953
- zapTriggeredAfter: Date;
954
- productName: string;
955
- timeout?: number;
956
- }
957
- declare class ZapierPage extends IntegrationBase {
958
- zapierWebPage: Page;
959
- continueButton: Locator;
960
- mailerUtils: MailerUtils;
961
- private stepBlock;
962
- private navbar;
963
- private zapToggle;
964
- private tabPanel;
965
- private panelFooter;
966
- private firstStepBlock;
967
- constructor({ page, neetoPlaywrightUtilities, integrationRouteIndex, mailerUtils, }: ZapierPageInitializer);
968
- private gotoZapEditor;
969
- private editZap;
970
- private openMoreOptions;
971
- private toggleZap;
972
- reconnectAccount: (zapierApiKey: string) => Promise<void>;
973
- private setTextEditorValue;
974
- loginToZapier: (zapierWebPage: Page) => Promise<void>;
975
- logoutFromZapier: () => Promise<void>;
976
- verifyZapIsTriggered: ({ productName, submittedEmail, zapTriggeredAfter, timeout, }: VerifyZapIsTriggeredProps) => Promise<Record<string, never> | FormattedList>;
977
- skipIfTaskLimitIsExhausted: () => Promise<void>;
978
- connectAndVerify: ({ apiKeyLabel }: {
979
- apiKeyLabel: string;
980
- }) => Promise<string>;
981
- disconnectAndVerify: (toastMessage?: string) => Promise<void>;
982
- generateAPIKey: (apiKeyLabel: string) => Promise<string>;
983
- }
984
-
985
- type SubscriptionPlan = "free" | "pro";
986
- interface UpdateEmailProps {
987
- oldEmail: string;
988
- newEmail: string;
989
- role?: string;
990
- }
991
- interface AddMemberProps {
992
- email: string;
993
- role?: string;
994
- appName: string;
995
- subscriptionPlan?: SubscriptionPlan;
996
- }
997
- interface EditMemberProps$1 {
998
- email: string;
999
- newEmail?: string;
1000
- firstName?: string;
1001
- lastName?: string;
1002
- newRole?: string;
1003
- subscriptionPlan?: SubscriptionPlan;
1004
- }
1005
- declare class Member {
1006
- memberApis: MemberApis;
1007
- constructor(neetoPlaywrightUtilities: CustomCommands);
1008
- addMemberViaRequest: ({ email, role, appName, subscriptionPlan, }: AddMemberProps) => Promise<void>;
1009
- editMemberViaRequest: ({ email, newEmail, firstName, lastName, newRole, subscriptionPlan, }: EditMemberProps$1) => Promise<void>;
1010
- deactivateMemberViaRequest: (email: string) => Promise<APIResponse | undefined>;
1011
- generateRandomTeamMembers: ({ count, role }: {
1012
- count?: number | undefined;
1013
- role?: string | undefined;
1014
- }) => {
1015
- firstName: string;
1016
- lastName: string;
1017
- email: string;
1018
- role: string;
1019
- }[];
1020
- getUserIdViaAPI: (email: string) => Promise<string>;
1021
- updateEmailViaAPI: ({ oldEmail, newEmail, role, }: UpdateEmailProps) => Promise<void>;
1022
- }
1023
-
1024
- interface KeyValuePair$1 {
1025
- key: string;
1026
- value: string;
1027
- }
1028
- interface VerifySlashCommandEditorParams {
1029
- linkUrl?: string;
1030
- filePath?: string;
1031
- imageUrl?: string;
1032
- }
1033
- declare class SlashCommandEditorPage {
1034
- page: Page;
1035
- neetoPlaywrightUtilities: CustomCommands;
1036
- t: TFunction;
1037
- editorWrapper: Locator | Page;
1038
- wordsUsedInEditor: string[];
1039
- editorLinkButton: Locator;
1040
- uploadDeleteButton: Locator;
1041
- imageWrapper: Locator;
1042
- imageUploadOption: Locator;
1043
- emojiSelector: Locator;
1044
- contentField: Locator;
1045
- filePath: string;
1046
- linkUrl: string;
1047
- imageUrl: string;
1048
- constructor(page: Page, neetoPlaywrightUtilities: CustomCommands, editorWrapper?: Locator | Page);
1049
- private openSlashCommands;
1050
- private slashCommandsOptions;
1051
- private verifyFontSize;
1052
- private verifyTextModifiers;
1053
- private verifyTextDeskModifier;
1054
- private verifyListModifiers;
1055
- private verifyEditorLinkButton;
1056
- private verifyEmojiSelector;
1057
- private verifyImageUploadOption;
1058
- private verifyDividerModifier;
1059
- private verifyTodoListSelector;
1060
- private slashCommandsAndVerifications;
1061
- private getRandomText;
1062
- private fillRandomText;
1063
- verifySlashCommandEditor: ({ linkUrl, filePath, imageUrl, }?: VerifySlashCommandEditorParams) => Promise<KeyValuePair$1[]>;
1064
- }
1065
-
1066
- interface KeyValuePair {
1067
- key: string;
1068
- value: string;
1069
- }
1070
- interface VerifyDescriptionEditorParams {
1071
- dynamicVariables?: KeyValuePair[];
1072
- linkUrl?: string;
1073
- filePath?: string;
1074
- imageUrl?: string;
1075
- videoUrl?: string;
1076
- videoPath?: string;
1077
- highlighterCount?: number;
1078
- cannedResponseSuccessMessage?: string;
1079
- }
1080
- declare class EditorPage {
1081
- page: Page;
1082
- neetoPlaywrightUtilities: CustomCommands;
1083
- slashCommandEditorPage: SlashCommandEditorPage;
1084
- t: TFunction;
1085
- editorWrapper: Locator | Page;
1086
- wordsUsedInEditor: string[];
1087
- editorLinkButton: Locator;
1088
- attachmentPreview: Locator;
1089
- editorAttachmentsButton: Locator;
1090
- uploadDeleteButton: Locator;
1091
- imageWrapper: Locator;
1092
- imageUploadOption: Locator;
1093
- cannedResponseOption: Locator;
1094
- videoEmbedOption: Locator;
1095
- videoEmbedInput: Locator;
1096
- videoWrapperSelector: Locator;
1097
- emojiSelector: Locator;
1098
- moreMenuSelector: Locator;
1099
- contentField: Locator;
1100
- dynamicVariablesButton: Locator;
1101
- redoSelector: Locator;
1102
- undoSelector: Locator;
1103
- tableOption: Locator;
1104
- calloutSelector: Locator;
1105
- videoUploadOption: Locator;
1106
- todoListSelector: Locator;
1107
- filePath: string;
1108
- videoPath: string;
1109
- linkUrl: string;
1110
- imageUrl: string;
1111
- videoUrl: string;
1112
- cannedResponseSuccessMessage?: string | undefined;
1113
- highlighterCount: number;
1114
- constructor(page: Page, neetoPlaywrightUtilities: CustomCommands, editorWrapper?: Locator | Page);
1115
- private cleanString;
1116
- private fixedMenuOptions;
1117
- private moreMenuOptions;
1118
- private verifyFontSize;
1119
- private verifyTextModifiers;
1120
- private verifyTextDeskModifier;
1121
- private openHighlighterContainer;
1122
- private focusText;
1123
- private highlightText;
1124
- private verifyTextHighlighter;
1125
- private verifyListModifiers;
1126
- private verifyEditorLinkButton;
1127
- private verifyEditorAttachmentsButton;
1128
- private verifyImageUploadOption;
1129
- private verifyCannedResponseOption;
1130
- private verifyVideoEmbedOption;
1131
- private verifyEmojiSelector;
1132
- private verifyUndoSelector;
1133
- private verifyRedoSelector;
1134
- private verifyTableSelector;
1135
- private verifyVideoUploadOption;
1136
- private verifyTodoListSelector;
1137
- verifyDynamicVariables: (dynamicVariables: KeyValuePair[]) => Promise<void>;
1138
- private verifyCalloutSelector;
1139
- private buttonsAndVerifications;
1140
- private fillRandomText;
1141
- verifyDescriptionPreview: (previewLocator: Locator | Page, keyValuePairs: KeyValuePair[]) => Promise<void[]>;
1142
- verifyDescriptionEditor: ({ dynamicVariables, linkUrl, videoPath, filePath, imageUrl, videoUrl, highlighterCount, cannedResponseSuccessMessage, }?: VerifyDescriptionEditorParams) => Promise<KeyValuePair$1[]>;
1143
- editorWithFixedMenuButtons: () => Promise<KeyValuePair[]>;
1144
- }
1145
-
1146
- interface CropImageProps {
1147
- toggleAspectRatioLock: boolean;
1148
- aspectRatioHeight: string;
1149
- aspectRatioWidth: string;
1150
- width: string;
1151
- height: string;
1152
- }
1153
- interface ImageLibraryProps extends Partial<CropImageProps> {
1154
- toggleOrginalImage?: boolean;
1155
- localImagePath: string;
1156
- }
1157
- interface SelectImage extends CropImageProps {
1158
- toggleOrginalImage: boolean;
1159
- searchTerm: string;
1160
- nthImage: number;
1161
- }
1162
- declare class ImageUploader {
1163
- page: Page;
1164
- neetoPlaywrightUtilities: CustomCommands;
1165
- constructor(page: Page, neetoPlaywrightUtilities: CustomCommands);
1166
- private submitCroppedImage;
1167
- removeImage: () => Promise<void>;
1168
- openImageLibrary: () => Promise<void>;
1169
- cropImage: ({ toggleAspectRatioLock, width, height, aspectRatioHeight, aspectRatioWidth, }?: Partial<CropImageProps>) => Promise<void>;
1170
- uploadNewImageFromLibrary: ({ localImagePath, toggleOrginalImage, toggleAspectRatioLock, aspectRatioHeight, aspectRatioWidth, width, height, }: ImageLibraryProps) => Promise<void>;
1171
- selectImageFromWeb: ({ nthImage, searchTerm, toggleOrginalImage, toggleAspectRatioLock, aspectRatioHeight, aspectRatioWidth, width, height, }?: Partial<SelectImage>) => Promise<void>;
1172
- selectImageFromLibrary: ({ nthImage, searchTerm, toggleOrginalImage, toggleAspectRatioLock, aspectRatioHeight, aspectRatioWidth, width, height, }?: Partial<SelectImage>) => Promise<void>;
1173
- }
1174
-
1175
- declare const ENVIRONMENT: {
1176
- development: string;
1177
- staging: string;
1178
- review: string;
1179
- };
1180
- declare const EXAMPLE_URL = "https://example.com";
1181
- declare const IS_STAGING_ENV: boolean;
1182
- declare const IS_DEV_ENV: boolean;
1183
- declare const IS_CI: boolean;
1184
- declare const DEFAULT_WEBHOOKS_RESPONSE_TEXT: string;
1185
- declare const STORAGE_STATE = "./e2e/auth/user.json";
1186
- declare const GLOBAL_TRANSLATIONS_PATTERN = "../node_modules/@bigbinary/**/translations/en.json";
1187
- declare const PROJECT_TRANSLATIONS_PATH = "../app/javascript/src/translations/en.json";
1188
- declare const CREDENTIALS: {
1189
- firstName: string;
1190
- lastName: string;
1191
- name: string;
1192
- email: string;
1193
- password: string;
1194
- subdomainName: string;
1195
- };
1196
- declare const OTP_EMAIL_PATTERN = "is your login code";
1197
- declare const SLACK_DEFAULT_CHANNEL = "general";
1198
- declare const CUSTOM_DOMAIN_SUFFIX = "aceinvoice.com";
1199
- declare const ZAPIER_TEST_EMAIL: (product: string) => string;
1200
- declare const SINGULAR: {
1201
- count: number;
1202
- };
1203
- declare const PLURAL: {
1204
- count: number;
1205
- };
1206
- declare const COLOR: {
1207
- transparent: string;
1208
- softBlue: string;
1209
- };
1210
- declare const DATE_TEXTS: {
1211
- now: string;
1212
- nextYear: string;
1213
- };
1214
- declare const EMPTY_STORAGE_STATE: {
1215
- storageState: {
1216
- cookies: never[];
1217
- origins: never[];
1218
- };
1219
- };
1220
- declare const CURRENT_TIME_RANGES: {
1221
- readonly last24Hours: "Last 24 hours";
1222
- readonly thisWeek: "This week";
1223
- readonly thisMonth: "This month";
1224
- readonly thisYear: "This year";
1225
- readonly thisQuarter: "This quarter";
1226
- readonly last30Days: "Last 30 days";
1227
- readonly last7Days: "Last 7 days";
1228
- };
1229
- declare const PAST_TIME_RANGES: {
1230
- readonly lastWeek: "Last week";
1231
- readonly lastMonth: "Last month";
1232
- readonly lastYear: "Last year";
1233
- readonly lastQuarter: "Last quarter";
1234
- };
1235
- declare const TIME_RANGES: {
1236
- readonly customDuration: "Custom duration";
1237
- readonly last24Hours: "Last 24 hours";
1238
- readonly thisWeek: "This week";
1239
- readonly thisMonth: "This month";
1240
- readonly thisYear: "This year";
1241
- readonly thisQuarter: "This quarter";
1242
- readonly last30Days: "Last 30 days";
1243
- readonly last7Days: "Last 7 days";
1244
- readonly lastWeek: "Last week";
1245
- readonly lastMonth: "Last month";
1246
- readonly lastYear: "Last year";
1247
- readonly lastQuarter: "Last quarter";
1248
- };
1249
- declare const DATE_RANGES: {
1250
- readonly after: "After";
1251
- readonly before: "Before";
1252
- readonly customDateRange: "Custom date range";
1253
- readonly last24Hours: "Last 24 hours";
1254
- readonly thisWeek: "This week";
1255
- readonly thisMonth: "This month";
1256
- readonly thisYear: "This year";
1257
- readonly thisQuarter: "This quarter";
1258
- readonly last30Days: "Last 30 days";
1259
- readonly last7Days: "Last 7 days";
1260
- readonly lastWeek: "Last week";
1261
- readonly lastMonth: "Last month";
1262
- readonly lastYear: "Last year";
1263
- readonly lastQuarter: "Last quarter";
1264
- };
1265
- declare const CERTIFICATE_LIMIT_EXCEEDED_REGEXP = "too many certificates \\(\\d+\\) already issued for \"aceinvoice.com\"";
1266
- declare const CERTIFICATE_LIMIT_EXCEEDED_MESSAGE = "Certificate limit exceeded for custom domain";
1267
- declare const EXPORT_FILE_TYPES: {
1268
- readonly pdf: "pdf";
1269
- readonly excel: "excel";
1270
- readonly csv: "csv";
1271
- };
1272
- declare const CALENDAR_LABELS: {
1273
- readonly month: "month panel";
1274
- readonly year: "year panel";
1275
- };
1276
- declare const DATE_FORMATS: {
1277
- readonly month: "MMM";
1278
- readonly year: "YYYY";
1279
- readonly date: "DD/MM/YYYY";
1280
- readonly calendarDate: "YYYY-MM-DD";
1281
- };
1282
-
1283
- declare const FILE_FORMATS: {
1284
- readonly csv: "csv";
1285
- readonly avi: "avi";
1286
- readonly doc: "doc";
1287
- readonly docx: "docx";
1288
- readonly flv: "flv";
1289
- readonly html: "html";
1290
- readonly mp3: "mp3";
1291
- readonly mp4: "mp4";
1292
- readonly mpg: "mpg";
1293
- readonly pdf: "pdf";
1294
- readonly rtf: "rtf";
1295
- readonly txt: "txt";
1296
- readonly webm: "webm";
1297
- readonly xls: "xls";
1298
- readonly xlsx: "xlsx";
1299
- readonly wma: "wma";
1300
- readonly zip: "zip";
1301
- readonly jpg: "jpg";
1302
- readonly jpeg: "jpeg";
1303
- readonly png: "png";
1304
- readonly ico: "ico";
1305
- readonly svg: "svg";
1306
- readonly gif: "gif";
1307
- };
1308
-
1309
- type ValueOf<T> = T[keyof T];
1310
- type FileType = ValueOf<typeof FILE_FORMATS>;
1311
- interface GenerateRandomFileProps {
1312
- sizeInKB: number;
1313
- fileType: FileType;
1314
- fileName?: string;
1315
- }
1316
- declare const serializeFileForBrowser: (file: File) => Promise<{
1317
- name: string;
1318
- type: string;
1319
- lastModified: number;
1320
- buffer: number[];
1321
- }>;
1322
- declare const generateRandomFile: ({ sizeInKB, fileType, fileName, }: GenerateRandomFileProps) => {
1323
- file: File;
1324
- fileName: string;
1325
- };
1326
-
1327
- type emailCondition = "Contains" | "Does not contain" | "Is" | "Is not" | "Starts with" | "Does not start with" | "Ends with" | "Does not end with";
1328
- interface EditMemberProps {
1329
- email: string;
1330
- firstName: string;
1331
- lastName: string;
1332
- role: string;
1333
- }
1334
- declare class TeamMembers {
1335
- page: Page;
1336
- neetoPlaywrightUtilities: CustomCommands;
1337
- t: TFunction;
1338
- constructor({ page, neetoPlaywrightUtilities, }: {
1339
- page: Page;
1340
- neetoPlaywrightUtilities: CustomCommands;
1341
- });
1342
- navigateToTeamMembers: () => Promise<void>;
1343
- addMemberViaUI: ({ emails, role, }?: {
1344
- emails?: string[];
1345
- role?: string;
1346
- }) => Promise<void>;
1347
- submit: () => Promise<void>;
1348
- searchAndVerifyMemberByEmail: ({ email }: {
1349
- email: string;
1350
- }) => Promise<void>;
1351
- editMemberViaUI: ({ email, firstName, lastName, role, }?: Partial<EditMemberProps>) => Promise<void>;
1352
- removeMemberViaUI: () => Promise<void>;
1353
- filterMembersByMultiSelect: ({ selectedOptions, selectContainerLocator, }: {
1354
- selectedOptions: string[];
1355
- selectContainerLocator?: string;
1356
- }) => Promise<void>;
1357
- filterMembers: ({ email, roles, name, }: {
1358
- email?: {
1359
- id: string;
1360
- condition: emailCondition;
1361
- };
1362
- roles?: string[];
1363
- name?: string;
1364
- }) => Promise<void>;
1365
- getMemberRowByName: (name: string) => playwright_core.Locator;
1366
- takeActionOnMembers: ({ names, state, action, }: {
1367
- names?: string[];
1368
- state?: "activate" | "deactivate" | undefined;
1369
- action?: {
1370
- actionButtonText: string;
1371
- valueButtonText: string;
1372
- } | undefined;
1373
- }) => Promise<void>;
1374
- performColumnAction: ({ columnName, actionButtonText, }?: {
1375
- columnName?: string;
1376
- actionButtonText?: "Ascending" | "Descending" | "Hide column";
1377
- }) => Promise<void>;
1378
- toggleMemberColumns: ({ columns, bulkAction, }: {
1379
- columns?: string[];
1380
- bulkAction?: "hide" | "show";
1381
- }) => Promise<void>;
1382
- verifyMemberInTable: ({ name, email }: {
1383
- name: string;
1384
- email: string;
1385
- }) => Promise<void>;
1386
- private applyFilter;
1387
- exportDetails: (fileType: ValueOf<typeof EXPORT_FILE_TYPES>, adminEmail: string) => Promise<Date>;
1388
- verifyNoDataTitle: (email: string) => Promise<void>;
1389
- }
1390
-
1391
- interface BasicUserInfo {
1392
- firstName: string;
1393
- lastName: string;
1394
- email: string;
1395
- country?: string;
1396
- }
1397
- interface CreateOrganizationProps$1 extends BasicUserInfo {
1398
- businessName: string;
1399
- subdomainName: string;
1400
- appName: string;
1401
- }
1402
- interface LoginAndOnboardParams extends BasicUserInfo {
1403
- handleOnboarding: () => Promise<void>;
1404
- baseURL?: string;
1405
- fetchOtpFromEmail?: FetchOtpFromEmail;
1406
- }
1407
- type FetchOtpFromEmail = (params: {
1408
- email: string;
1409
- timeout: number;
1410
- }) => Promise<string>;
1411
- interface LoginWithFastmailEmail {
1412
- email: string;
1413
- loginTimeout?: number;
1414
- fetchOtpFromEmail: FetchOtpFromEmail;
1415
- }
1416
- interface Credentials extends BasicUserInfo {
1417
- otp?: number;
1418
- domain: string;
1419
- currentUserName: string;
1420
- businessName: string;
1421
- subdomainName: string;
1422
- }
1423
- declare class OrganizationPage {
1424
- page: Page;
1425
- neetoPlaywrightUtilities: CustomCommands;
1426
- constructor(page: Page, neetoPlaywrightUtilities: CustomCommands);
1427
- private fillOTP;
1428
- private submitEmail;
1429
- private dismissAuthenticatorSetupPromptIfPresent;
1430
- createOrganization: ({ email, businessName, subdomainName, firstName, lastName, appName, }: CreateOrganizationProps$1) => Promise<void>;
1431
- setupOrganization: (product: string) => Promise<void>;
1432
- updateSubdomainIfExists: (appName: string) => Promise<void>;
1433
- fillEmailAndSubmit: (email: string, loginTimeout: number) => Promise<void>;
1434
- private enterTotpCode;
1435
- loginViaAuthenticatorApp: (email?: string, loginTimeout?: number) => Promise<void>;
1436
- loginViaSSO: (email?: string, loginTimeout?: number) => Promise<void>;
1437
- loginWithFastmailEmail: ({ email, loginTimeout, fetchOtpFromEmail, }: LoginWithFastmailEmail) => Promise<void>;
1438
- setupProfile: ({ firstName, lastName, country, }?: {
1439
- firstName?: string;
1440
- lastName?: string;
1441
- country?: string;
1442
- }) => Promise<void>;
1443
- loginAndOnboard: ({ email, firstName, lastName, country, handleOnboarding, baseURL, fetchOtpFromEmail, }: LoginAndOnboardParams) => Promise<void>;
1444
- signUp: ({ credentials, fetchOtpFromEmail, appName, }: {
1445
- credentials: Credentials;
1446
- fetchOtpFromEmail?: FetchOtpFromEmail;
1447
- appName: string;
1448
- }) => Promise<{
1449
- STORAGE_STATE: {
1450
- cookies: Array<{
1451
- name: string;
1452
- value: string;
1453
- domain: string;
1454
- path: string;
1455
- expires: number;
1456
- httpOnly: boolean;
1457
- secure: boolean;
1458
- sameSite: "Strict" | "Lax" | "None";
1459
- }>;
1460
- origins: Array<{
1461
- origin: string;
1462
- localStorage: Array<{
1463
- name: string;
1464
- value: string;
1465
- }>;
1466
- }>;
1467
- };
1468
- baseURL: string | undefined;
1469
- }>;
1470
- fillOrganizationDetails: ({ credentials, appName, }: {
1471
- credentials: Credentials;
1472
- appName: string;
1473
- }) => Promise<void>;
1474
- changeCountry: (country: string) => Promise<void>;
1475
- loginViaGoogleAuth: () => Promise<void>;
1476
- }
1477
-
1478
- interface ApiKeyDetails {
1479
- label: string;
1480
- expiryDate?: string;
1481
- }
1482
- interface VerifyApiKeyProps {
1483
- targetRow: Locator;
1484
- label: string;
1485
- date: string;
1486
- }
1487
- declare class ApiKeysPage {
1488
- page: Page;
1489
- neetoPlaywrightUtilities: CustomCommands;
1490
- t: TFunction;
1491
- constructor(page: Page, neetoPlaywrightUtilities: CustomCommands);
1492
- private enableExpiryDate;
1493
- fillApiKeyDetails: ({ label, expiryDate }: ApiKeyDetails) => Promise<void>;
1494
- verifyApiKey: ({ targetRow, label, date }: VerifyApiKeyProps) => Promise<[void, void, void, void]>;
1495
- editApiKey: ({ label, expiryDate }: ApiKeyDetails) => Promise<void>;
1496
- deleteApiKey: (targetRow: Locator) => Promise<void>;
1497
- }
1498
-
1499
- declare const ACTIONS: {
1500
- readonly inviteUsers: "invitedUsers";
1501
- readonly updatedUser: "updatedUser";
1502
- readonly removedUser: "removedUser";
1503
- readonly createdRole: "createdRole";
1504
- readonly addedPermission: "addedPermission";
1505
- readonly removedPermission: "removedPermission";
1506
- readonly updatedRole: "updatedRole";
1507
- readonly deletedRole: "deletedRole";
1508
- readonly updatedName: "updatedName";
1509
- };
1510
-
1511
- type InviteUsersData = {
1512
- emails: string[];
1513
- };
1514
- type UpdatedUserData = {
1515
- emails: [string, string];
1516
- };
1517
- type RemovedUserData = {
1518
- emails: [string];
1519
- };
1520
- type CreatedRoleData = {
1521
- roleName: string;
1522
- };
1523
- type AddedPermissionData = {
1524
- permissions: string[];
1525
- roleName: string;
1526
- };
1527
- type RemovedPermissionData = {
1528
- permissions: string[];
1529
- roleName: string;
1530
- };
1531
- type UpdatedRoleData = {
1532
- roleName: string;
1533
- };
1534
- type DeletedRoleData = {
1535
- roleName: string;
1536
- };
1537
- type UpdatedNameData = {
1538
- name: string;
1539
- };
1540
- type ActionDataMap = {
1541
- [ACTIONS.inviteUsers]: InviteUsersData;
1542
- [ACTIONS.updatedUser]: UpdatedUserData;
1543
- [ACTIONS.removedUser]: RemovedUserData;
1544
- [ACTIONS.createdRole]: CreatedRoleData;
1545
- [ACTIONS.addedPermission]: AddedPermissionData;
1546
- [ACTIONS.removedPermission]: RemovedPermissionData;
1547
- [ACTIONS.updatedRole]: UpdatedRoleData;
1548
- [ACTIONS.deletedRole]: DeletedRoleData;
1549
- [ACTIONS.updatedName]: UpdatedNameData;
1550
- };
1551
- type ActionDataKey = keyof ActionDataMap;
1552
- type MessageBuilders = {
1553
- [k in ActionDataKey]: (data: ActionDataMap[k]) => string;
1554
- };
1555
- interface VerifyAuditLogProps<T extends ActionDataKey> {
1556
- action: T;
1557
- adminName?: string;
1558
- data: ActionDataMap[T];
1559
- }
1560
- declare class AuditLogsPage {
1561
- private page;
1562
- private neetoPlaywrightUtilities;
1563
- private product;
1564
- private readonly currentDate;
1565
- messageBuilders: MessageBuilders;
1566
- private admin;
1567
- constructor(page: Page, neetoPlaywrightUtilities: CustomCommands, product: NeetoProducts);
1568
- verifyAuditLogs: <T extends ActionDataKey>({ action, adminName, data, }: VerifyAuditLogProps<T>) => Promise<void>;
1569
- private assertAuditLogContent;
1570
- }
1571
-
1572
- interface CustomDomainPageProps {
1573
- page: Page;
1574
- neetoPlaywrightUtilities: CustomCommands;
1575
- product: NeetoProducts;
1576
- }
1577
- declare class CustomDomainPage {
1578
- page: Page;
1579
- browser: Browser;
1580
- product: NeetoProducts;
1581
- neetoPlaywrightUtilities: CustomCommands;
1582
- customDomainApi: CustomDomainApi;
1583
- subdomain: string;
1584
- loginPage: Page;
1585
- customDomainURL: string;
1586
- t: TFunction;
1587
- constructor({ page, neetoPlaywrightUtilities, product, }: CustomDomainPageProps);
1588
- getCustomDomain: (newSubdomain?: string) => string;
1589
- private addCustomDomain;
1590
- validateCustomDomain: (domain: string) => Promise<void>;
1591
- private getDomainStatus;
1592
- private loginToCustomDomain;
1593
- private waitForTrustedSSL;
1594
- private saveCustomDomainState;
1595
- private waitForDomainPropagation;
1596
- setupCustomDomain: () => Promise<void>;
1597
- setupCustomDomainViaAPI: () => Promise<void>;
1598
- connectCustomDomain: (subdomain?: string) => Promise<void>;
1599
- connectViaAPI: (subdomain?: string) => Promise<void>;
1600
- private validateDomain;
1601
- private awaitDomainValidation;
1602
- private getCustomDomainFromAPI;
1603
- disconnectCustomDomain: () => Promise<void>;
1604
- disconnectViaRequest: () => Promise<void>;
1605
- private isCertificateLimitExceeded;
1606
- }
1607
-
1608
- declare class IPRestrictionsPage {
1609
- page: Page;
1610
- neetoPlaywrightUtilities: CustomCommands;
1611
- t: TFunction;
1612
- saveButton: Locator;
1613
- ipRestrictionsApi: IpRestrictionsApi;
1614
- constructor(page: Page, neetoPlaywrightUtilities: CustomCommands);
1615
- setIPRange: (ipRange: string[], type?: "IPv4" | "IPv6", index?: number) => Promise<void>;
1616
- saveChanges: () => Promise<void>;
1617
- disableIPRestriction: () => Promise<void>;
1618
- }
1619
-
1620
- interface RoleDetails {
1621
- roleName: string;
1622
- permissions: string[];
1623
- parentPermission?: string;
1624
- hierarchyLevelOfPermissions?: number;
1625
- }
1626
- declare class RolesPage {
1627
- page: Page;
1628
- neetoPlaywrightUtilities: CustomCommands;
1629
- roleApis: RoleApis;
1630
- t: TFunction;
1631
- constructor(page: Page, neetoPlaywrightUtilities: CustomCommands);
1632
- getPermissionIds: (targetPermissions: string[], isGranularPermission?: boolean) => Promise<any[]>;
1633
- getRoleIdAndOrganizationId: (roleName: string) => Promise<{
1634
- roleId: string;
1635
- organizationId: string;
1636
- }>;
1637
- addCustomRoleViaRequest: (roleName: string, targetPermissions: string[], isGranularPermission?: boolean) => Promise<playwright_core.APIResponse | undefined>;
1638
- editRoleViaRequest: (roleName: string, targetPermissions: string[], isGranularPermission?: boolean) => Promise<playwright_core.APIResponse | undefined>;
1639
- deleteRoleViaRequest: (roleName: string, secondaryRoleName?: string) => Promise<playwright_core.APIResponse | undefined>;
1640
- addRoleViaUI: ({ roleName, permissions, parentPermission, hierarchyLevelOfPermissions, }: RoleDetails) => Promise<void>;
1641
- editRoleViaUI: ({ roleName, permissions, parentPermission, hierarchyLevelOfPermissions, }: RoleDetails) => Promise<void>;
1642
- selectAndSubmitPermissions: (permissions: string[], parentPermission?: string, hierarchyLevelOfPermissions?: number) => Promise<void>;
1643
- deleteRoleViaUI: (roleName: string) => Promise<void>;
1644
- verifyPermissions: ({ allPermissions, rolePermissions, }: {
1645
- allPermissions: object;
1646
- rolePermissions: string[];
1647
- }) => Promise<void[]>;
1648
- verifyRoleSpecificLinkAccess: ({ roleAccessableLinks, adminAccessableLinks, }: {
1649
- roleAccessableLinks?: string[];
1650
- adminAccessableLinks: string[];
1651
- }) => Promise<void>;
1652
- }
1653
-
1654
- declare class SidebarSection {
1655
- page: Page;
1656
- neetoPlaywrightUtilities: CustomCommands;
1657
- t: TFunction;
1658
- constructor(page: Page, neetoPlaywrightUtilities: CustomCommands);
1659
- clickOnSubLink: (label: string) => Promise<void>;
1660
- clickOnGoBackButton: (label: string) => Promise<void>;
1661
- }
1662
-
1663
- interface SearchAndSelectProps {
1664
- selector: string;
1665
- tagName: string;
1666
- rowSelector: string;
1667
- }
1668
- interface MergeTagsViaUIProps {
1669
- sourceTagName: string;
1670
- destinationTagName: string;
1671
- tagsBreadcrumbSelector: string;
1672
- }
1673
- declare class TagsPage {
1674
- private page;
1675
- private neetoPlaywrightUtilities;
1676
- t: TFunction;
1677
- tagsApi: TagsApi;
1678
- constructor(page: Page, neetoPlaywrightUtilities: CustomCommands);
1679
- searchAndVerifyTags: (tagName: string) => Promise<void>;
1680
- addTagViaUI: ({ tagName, addTagsLabel, }: {
1681
- tagName: string;
1682
- addTagsLabel: string;
1683
- }) => Promise<void>;
1684
- filterTagsViaUI: (tagName: string) => Promise<void>;
1685
- editTagViaUI: ({ tagName, newTagName, }: {
1686
- tagName: string;
1687
- newTagName: string;
1688
- }) => Promise<void>;
1689
- deleteTagViaUI: (tagName: string) => Promise<void>;
1690
- addTagsViaRequest: ({ name, description, tagsRequestUrl, }: {
1691
- name: string;
1692
- description?: string;
1693
- tagsRequestUrl: string;
1694
- }) => Promise<playwright_core.APIResponse | undefined>;
1695
- navigateToMergeTagsPage: () => Promise<void>;
1696
- searchAndSelect: ({ selector, tagName, rowSelector, }: SearchAndSelectProps) => Promise<void>;
1697
- mergeAndVerifyTagsViaUI: ({ sourceTagName, destinationTagName, tagsBreadcrumbSelector, }: MergeTagsViaUIProps) => Promise<void>;
1698
- }
1699
-
1700
- interface ConnectRequestParams {
1701
- provider: EmailDeliveryProvider;
1702
- }
1703
- interface EmailMatchCriteria {
1704
- subject: string;
1705
- to: string;
1706
- from?: string;
1707
- partialBody?: string;
1708
- }
1709
- interface VerifyEmailRequestOptions {
1710
- provider: EmailDeliveryProvider;
1711
- timeout?: number;
1712
- shouldThrowErrorOnTimeout?: boolean;
1713
- }
1714
- declare class EmailDeliveryUtils {
1715
- private neetoPlaywrightUtilities;
1716
- private emailDeliveryApi;
1717
- constructor(neetoPlaywrightUtilities: CustomCommands);
1718
- connectViaRequest: ({ provider }: ConnectRequestParams) => Promise<playwright_core.APIResponse | undefined>;
1719
- verifyEmailViaRequest: ({ subject, to, partialBody, from }: EmailMatchCriteria, { provider, timeout, shouldThrowErrorOnTimeout, }: VerifyEmailRequestOptions) => Promise<EmailDeliveryVerifiedEmail | null>;
1720
- }
1721
-
1722
- declare const USER_AGENTS: {
1723
- windows: string;
1724
- mac: string;
1725
- iPhone: string;
1726
- iPad: string;
1727
- android: string;
1728
- };
1729
-
1730
- declare const BASE_URL = "/api/v1";
1731
- declare const NEETO_AUTH_BASE_URL: (subdomain?: string) => string;
1732
- declare const ROUTES: {
1733
- neetoAuthSignup: string;
1734
- neetoAuth: string;
1735
- loginLink: string;
1736
- profile: string;
1737
- admin: string;
1738
- myProfile: string;
1739
- updateEmail: string;
1740
- authSettings: string;
1741
- webhooks: string;
1742
- login: string;
1743
- signup: string;
1744
- subdomainAvailability: string;
1745
- countries: string;
1746
- neetoApps: string;
1747
- directUploads: string;
1748
- teamMembers: {
1749
- all: string;
1750
- bulkUpdate: string;
1751
- index: string;
1752
- show: (id: string) => string;
1753
- };
1754
- attachment: string;
1755
- dashboard: string;
1756
- neetoThankYou: string;
1757
- adminPanel: {
1758
- roles: string;
1759
- index: string;
1760
- auditLogs: string;
1761
- apiKeys: string;
1762
- customDomain: string;
1763
- ipRestriction: string;
1764
- };
1765
- auth: {
1766
- adminPanel: string;
1767
- billing: string;
1768
- };
1769
- };
1770
- declare const API_ROUTES: {
1771
- teamMembers: {
1772
- all: string;
1773
- bulkUpdate: string;
1774
- index: string;
1775
- show: (id: string) => string;
1776
- creationStatus: (id: string) => string;
1777
- };
1778
- integrations: {
1779
- zapier: {
1780
- api_keys: string;
1781
- };
1782
- };
1783
- };
1784
- declare const THIRD_PARTY_ROUTES: {
1785
- webhooks: {
1786
- site: string;
1787
- };
1788
- slack: {
1789
- loginWithPassword: (workspace: string) => string;
1790
- };
1791
- microsoft: {
1792
- login: string;
1793
- myApps: string;
1794
- staySignedIn: string;
1795
- };
1796
- zapier: {
1797
- login: string;
1798
- logOut: string;
1799
- zapEditor: (zapId: string) => string;
1800
- };
1801
- google: {
1802
- signin: string;
1803
- password: string;
1804
- totpChallenge: string;
1805
- connections: string;
1806
- challengeSelection: string;
1807
- myAccount: string;
1808
- chooseAccount: string;
1809
- accountchooser: string;
1810
- consentScreen: string;
1811
- warningScreen: string;
1812
- additionalInfoScreen: string;
1813
- consentSummary: string;
1814
- };
1815
- };
1816
- declare const NEETO_ROUTES: {
1817
- imageUploader: string;
1818
- };
1819
- declare const PROFILE_LINKS: {
1820
- neetoStatus: string;
1821
- neetoCommunity: string;
1822
- };
1823
- declare const HELP_CENTER_ROUTES: {
1824
- chatAPI: (product: NeetoProducts) => string;
1825
- kbDocs: (product: NeetoProducts) => string;
1826
- changelog: (product: NeetoProducts) => string;
1827
- };
1828
-
1829
- interface NetworkConditionsParams {
1830
- offline: boolean;
1831
- downloadThroughput: number;
1832
- uploadThroughput: number;
1833
- latency: number;
1834
- }
1835
- declare const networkConditions: Record<"Slow 3G" | "Fast 3G" | "No Throttling", NetworkConditionsParams>;
1836
-
1837
- declare const TEAM_MEMBER_TEXTS: {
1838
- emailSubject: string;
1839
- };
1840
-
1841
- declare const KEYBOARD_SHORTCUT_TEST_CASES: readonly [{
1842
- readonly os: "windows";
1843
- readonly agent: string;
1844
- }, {
1845
- readonly os: "mac";
1846
- readonly agent: string;
1847
- }];
1848
-
1849
- declare const CHAT_WIDGET_TEXTS: {
1850
- newConversation: string;
1851
- welcomeChatBubble: string;
1852
- preChatQuestions: string;
1853
- };
1854
- declare const MEMBER_TEXTS: {
1855
- agent: string;
1856
- admin: string;
1857
- selectAll: string;
1858
- hide: string;
1859
- show: string;
1860
- };
1861
- declare const INTEGRATIONS_TEXTS: {
1862
- connectHeader: (integration: string) => string;
1863
- connectedHeader: (integration: string) => string;
1864
- };
1865
- declare const SLACK_WEB_TEXTS: {
1866
- signOut: string;
1867
- allow: string;
1868
- loadingThread: string;
1869
- name: string;
1870
- deleteThisChannel: string;
1871
- permanentlyDeleteTheChannel: string;
1872
- deleteChannel: string;
1873
- };
1874
- declare const ZAPIER_WEB_TEXTS: {
1875
- editZap: string;
1876
- newSubmission: string;
1877
- sendOutboundEmail: string;
1878
- moreOptions: string;
1879
- reconnect: string;
1880
- retestStep: string;
1881
- editThisZap: string;
1882
- staging: string;
1883
- create: string;
1884
- account: string;
1885
- email: string;
1886
- continue: string;
1887
- statusLabel: string;
1888
- password: string;
1889
- editExistingDraft: string;
1890
- signInTo: string;
1891
- yesContinueTo: string;
1892
- testTrigger: string;
1893
- editStep: string;
1894
- continueWithSelectedRecord: string;
1895
- publish: string;
1896
- delete: string;
1897
- loading: string;
1898
- subdomain: string;
1899
- apiKey: string;
1900
- publishingZapHeading: string;
1901
- connectionListMenu: string;
1902
- usageRegExp: string;
1903
- trialEndsRegExp: string;
1904
- testCurrentlyInQueue: string;
1905
- welcomeText: (zapierLoginEmail: string) => string;
1906
- connectStagingApp: (appName: string) => string;
1907
- zapierWorkflowTriggered: string;
1908
- startFreeWithEmail: string;
1909
- appsByTitle: string;
1910
- logIn: string;
1911
- loginToYourAccount: string;
1912
- deleteMessage: string;
1913
- };
1914
- declare const TOASTR_MESSAGES: {
1915
- zapierApiKeyGenerated: string;
1916
- };
1917
- declare const ZAPIER_LIMIT_EXHAUSTED_MESSAGE = "Zapier free task limit is exhausted. Test will be aborted";
1918
- declare const EMOJI_LABEL = "thumbs up";
1919
- declare const GOOGLE_CALENDAR_DATE_FORMAT = "YYYY/M/D";
1920
- declare const MICROSOFT_LOGIN_TEXTS: {
1921
- passwordInput: string;
1922
- emailInput: string;
1923
- enterCode: string;
1924
- verify: string;
1925
- staySignedIn: string;
1926
- signIn: string;
1927
- next: string;
1928
- enterPassword: string;
1929
- password: string;
1930
- permissionsRequested: string;
1931
- yes: string;
1932
- remove: string;
1933
- };
1934
- declare const GOOGLE_LOGIN_TEXTS: {
1935
- googleAccount: string;
1936
- connectYourGoogleAccount: string;
1937
- signInWithGoogle: string;
1938
- signInHeading: (appName: string) => RegExp;
1939
- stagingAppName: (appName: string) => string;
1940
- continue: string;
1941
- selectAll: string;
1942
- appNotVerified: string;
1943
- next: string;
1944
- showPassword: string;
1945
- emailOrPhone: string;
1946
- enterYourPassword: string;
1947
- twoStepVerification: string;
1948
- enterCode: string;
1949
- allow: string;
1950
- signOut: string;
1951
- wrongCode: string;
1952
- verificationCode: string;
1953
- confirm: string;
1954
- cancel: string;
1955
- deleteConnections: string;
1956
- noLongerConnected: string;
1957
- backToSafety: string;
1958
- neetoAutomation: string;
1959
- chooseAnAccount: string;
1960
- };
1961
- declare const ENGAGE_TEXTS: {
1962
- subscribe: string;
1963
- };
1964
- declare const COMMUNITY_TEXTS: {
1965
- joinNow: string;
1966
- };
1967
- declare const STATUS_TEXTS: {
1968
- appName: (appName: NeetoProducts) => string;
1969
- };
1970
- declare const COMMON_TEXTS: {
1971
- skipCleanup: string;
1972
- skipSetup: string;
1973
- };
1974
- declare const ORGANIZATION_TEXTS: {
1975
- subdomainAvailable: string;
1976
- };
1977
- declare const THEMES_TEXTS: {
1978
- lightThemeClass: RegExp;
1979
- darkThemeClass: RegExp;
1980
- };
1981
-
1982
- declare const DESCRIPTION_EDITOR_TEXTS: {
1983
- fontSize: string;
1984
- paragraph: string;
1985
- normalText: string;
1986
- pasteLink: string;
1987
- invalidURLError: string;
1988
- pasteURL: string;
1989
- delete: string;
1990
- linkTag: string;
1991
- link: string;
1992
- cannedResponseHeader: string;
1993
- paragraphOption: string;
1994
- search: string;
1995
- emoji: string;
1996
- };
1997
- declare const EXPANDED_FONT_SIZE: {
1998
- h1: string;
1999
- h2: string;
2000
- h3: string;
2001
- h4: string;
2002
- h5: string;
2003
- };
2004
- declare const TEXT_MODIFIER_TAGS: {
2005
- underline: string;
2006
- strike: string;
2007
- };
2008
- declare const TEXT_MODIFIER_ROLES: {
2009
- bold: string;
2010
- italic: string;
2011
- code: string;
2012
- blockquote: string;
2013
- codeBlock: string;
2014
- };
2015
- declare const LIST_MODIFIER_TAGS: {
2016
- bulletList: string;
2017
- orderedList: string;
2018
- };
2019
-
2020
- declare const PHONE_NUMBER_FORMATS: {
2021
- name: string;
2022
- code: string;
2023
- format: string;
2024
- flag: string;
2025
- }[];
2026
-
2027
- declare const COMMON_SELECTORS: {
2028
- emailInputError: string;
2029
- pane: string;
2030
- sideBar: string;
2031
- copyButton: string;
2032
- resetButton: string;
2033
- spinner: string;
2034
- uiSpinner: string;
2035
- subheaderText: string;
2036
- alertTitle: string;
2037
- alertModalMessage: string;
2038
- alertModalSubmitButton: string;
2039
- checkbox: string;
2040
- checkboxLabel: string;
2041
- dropdownContainer: string;
2042
- dropdownIcon: string;
2043
- heading: string;
2044
- paneBody: string;
2045
- paneHeader: string;
2046
- filterButon: string;
2047
- menuButton: string;
2048
- profileSidebar: string;
2049
- selectOption: (label: string) => string;
2050
- radioLabel: (embedLabel: string) => string;
2051
- neetoUiToastr: string;
2052
- toastMessage: (type: string) => string;
2053
- toastCloseButton: string;
2054
- windowAlert: string;
2055
- body: string;
2056
- toastIcon: string;
2057
- toastContainer: string;
2058
- toastBody: string;
2059
- paneModalCrossIcon: string;
2060
- inputField: string;
2061
- alertBox: string;
2062
- tableContainer: string;
2063
- alertConfirmationText: string;
2064
- alertCancelButton: string;
2065
- alertModalCrossIcon: string;
2066
- saveChangesButton: string;
2067
- cancelButton: string;
2068
- inputFieldError: string;
2069
- selectDropDownError: string;
2070
- subTitleHeading: string;
2071
- noDataTitle: string;
2072
- noDataDescription: string;
2073
- noDataHelpText: string;
2074
- backdrop: string;
2075
- menuBarHeading: string;
2076
- dropdownWrapper: string;
2077
- toggleButton: string;
2078
- tooltip: string;
2079
- articlePageTitle: string;
2080
- tabItem: string;
2081
- labelInputError: string;
2082
- urlInputError: string;
2083
- noDataPrimaryButton: string;
2084
- modalHeader: string;
2085
- avatar: string;
2086
- nameInputError: string;
2087
- selectContainer: string;
2088
- dropdownMenu: string;
2089
- sidebarToggle: string;
2090
- subheader: string;
2091
- settingsLink: string;
2092
- ticketFieldTextInput: (label: string) => string;
2093
- appSwitcherButton: string;
2094
- appSwitcherWrapper: string;
2095
- appLink: (appName: NeetoProducts) => string;
2096
- tableSpinner: string;
2097
- pageLoader: string;
2098
- homeButton: string;
2099
- neetoUiSwitch: string;
2100
- floatingActionMenuButton: string;
2101
- floatingActionMenuLink: string;
2102
- columnsDropdownContainer: string;
2103
- columnsDropdownButton: string;
2104
- breadcrumbHeader: string;
2105
- breadcrumb: (title: string) => string;
2106
- header: string;
2107
- sidebarSubLink: (label: string) => string;
2108
- sidebarGoBackButton: (label: string) => string;
2109
- selectSingleValue: string;
2110
- actionSelectIndicator: string;
2111
- takeActionDropdown: string;
2112
- columnsSearchInput: string;
2113
- errorToastIcon: string;
2114
- nuiRadioLabel: string;
2115
- submitButton: string;
2116
- tableRow: string;
2117
- navigationHeaderLeftBlock: string;
2118
- fileUploadBody: string;
2119
- modalBody: string;
2120
- modalForever: string;
2121
- navigationHeader: string;
2122
- buttonSpinner: string;
2123
- pendingTagContainer: string;
2124
- nextYearButton: string;
2125
- popoverTitle: string;
2126
- productSwitcherSearchInput: string;
2127
- noAppsFoundTitle: string;
2128
- helpPopoverButton: string;
2129
- helpPopoverDesc: string;
2130
- helpPopoverLinkButton: string;
2131
- copyToClipboardButton: string;
2132
- subheaderRight: string;
2133
- secretKeyInputField: string;
2134
- activeSwitch: string;
2135
- labelInputField: string;
2136
- imageUploadModal: string;
2137
- neetoLogo: string;
2138
- clearSelectIndicator: string;
2139
- menubarContainer: string;
2140
- multiEmailInputContainer: string;
2141
- linkInputError: string;
2142
- continueButton: string;
2143
- clearAllButton: string;
2144
- requiredSwitch: string;
2145
- qrCodeDownloadButton: string;
2146
- linkCopyButton: string;
2147
- moreDropdownIcon: string;
2148
- previewButton: string;
2149
- editButton: string;
2150
- deleteButton: string;
2151
- backButton: string;
2152
- nameInputField: string;
2153
- descriptionInputField: string;
2154
- searchTextField: string;
2155
- dragHandle: string;
2156
- fileInputError: string;
2157
- csvUploadInput: string;
2158
- nuiCheckboxContainer: string;
2159
- dynamicVariablesList: string;
2160
- emailInputWrapper: string;
2161
- switchWrapper: string;
2162
- switchLabel: string;
2163
- antdSliderRail: string;
2164
- card: string;
2165
- columnVisibilityBtn: (action: "hide-all" | "reset") => string;
2166
- customSwitch: (switchLabel: string) => string;
2167
- customMenuItem: (label: string) => string;
2168
- customInputLabel: (name?: string) => string;
2169
- customInputField: (name?: string) => string;
2170
- customSelectContainer: (name: string) => string;
2171
- customSelectContainerWrapper: (label: string) => string;
2172
- customSelectValueContainer: (label?: string) => string;
2173
- customCheckboxLabel: (name: string) => string;
2174
- errorImage: string;
2175
- customDropdownIcon: (label?: string) => string;
2176
- customDropdownContainer: (label?: string) => string;
2177
- checkboxInput: (option?: string) => string;
2178
- radioInput: (option?: string) => string;
2179
- selectOptionError: (option: string) => string;
2180
- button: (label: string) => string;
2181
- customDropDownMenu: (label?: string) => string;
2182
- columnSortableItem: string;
2183
- columnsDropdownIcon: string;
2184
- columnDragHandle: string;
2185
- reactSelectContainer: string;
2186
- calloutElement: string;
2187
- };
2188
-
2189
- declare const THANK_YOU_SELECTORS: {
2190
- settingsLink: string;
2191
- showSocialShareIconsSwitch: string;
2192
- showLinkToSubmitAnotherResponseSwitch: string;
2193
- submitAnotherResponseLinkTextInputField: string;
2194
- previewEditorContent: string;
2195
- redirectToExternalLinkRadioLabel: () => string;
2196
- thankYouConfigurationLabel: (label?: string) => string;
2197
- saveChangesButton: string;
2198
- cancelButton: string;
2199
- thankYouPageImage: string;
2200
- thankYouPageMessage: string;
2201
- thankYouPageContent: string;
2202
- thankYouPageResubmitLink: string;
2203
- linkInputField: string;
2204
- previewImage: string;
2205
- thankYouMessageEditor: string;
2206
- thankYouMessageWrapper: string;
2207
- countLabel: string;
2208
- };
2209
-
2210
- declare const NEETO_EDITOR_SELECTORS: {
2211
- fontSize: string;
2212
- boldOption: string;
2213
- italicOption: string;
2214
- underlineOption: string;
2215
- strikeOption: string;
2216
- codeBlockOption: string;
2217
- highlightOption: string;
2218
- emojiOption: string;
2219
- emojiDropdownIcon: string;
2220
- linkInput: string;
2221
- linkSubmitButton: string;
2222
- commandList: (index: number) => string;
2223
- imageUploadUrlSubmitButton: string;
2224
- imageUploadUrlInputTextField: string;
2225
- uploadInput: string;
2226
- editorMenuBarWrapper: string;
2227
- undoOption: string;
2228
- redoOption: string;
2229
- imageWrapper: string;
2230
- contentField: string;
2231
- slashCommandsWrapper: string;
2232
- addLinkButton: string;
2233
- addLinkTextField: string;
2234
- addURLTextField: string;
2235
- submitLinkButton: string;
2236
- fixedMenuArrow: string;
2237
- cannedResponseOption: string;
2238
- cannedResponseSelectContainer: string;
2239
- fixedMenuWrapper: string;
2240
- linkOption: string;
2241
- addLinkUrlInput: string;
2242
- addLinkDoneButton: string;
2243
- unlinkButton: string;
2244
- editorAttachmentsButton: string;
2245
- attachmentPreviewDeleteButton: string;
2246
- imageUploadOption: string;
2247
- imageUploadLinkInput: string;
2248
- imageUploadButton: string;
2249
- imageUploadLinkSubmitButton: string;
2250
- applyButton: string;
2251
- videoEmbedOption: string;
2252
- videoEmbedInput: string;
2253
- videoEmbedSubmit: string;
2254
- videoWrapper: string;
2255
- paragraphOption: string;
2256
- calloutOption: string;
2257
- attachmentPreview: string;
2258
- imageUploadLinkButton: string;
2259
- errorText: string;
2260
- content: string;
2261
- imageUploadDeleteButton: string;
2262
- dynamicVariablesButton: string;
2263
- emojiContainer: string;
2264
- characterCount: string;
2265
- tableOption: string;
2266
- tableCreateButton: string;
2267
- videoUploadOption: string;
2268
- todoListOption: string;
2269
- editorMenuWrapper: string;
2270
- dataEmojiType: (type: string) => string;
2271
- calloutContent: string;
2272
- calloutTypeOption: string;
2273
- editorMediaUploaderTab: string;
2274
- dynamicVariableSelector: (variable: string) => string;
2275
- dynamicVariableList: (variable: string) => string;
2276
- neetoEditorFixedMenuFontSize: string;
2277
- highlightText: (textColorIndex: number) => string;
2278
- highlightBg: (bgColorIndex: number) => string;
2279
- neetoEditorHighlightTextColor: (textColorIndex: number) => string;
2280
- neetoEditorHighlightBgColor: (bgColorIndex: number) => string;
2281
- todoList: string;
2282
- commandListItem: (index: number) => string;
2283
- itemBlockHeading: string;
2284
- };
2285
- declare const NEETO_TEXT_MODIFIER_SELECTORS: {
2286
- strike: string;
2287
- underline: string;
2288
- highlight: string;
2289
- };
2290
- declare const TEXT_MODIFIER_SELECTORS: {
2291
- bold: string;
2292
- italic: string;
2293
- code: string;
2294
- blockquote: string;
2295
- codeBlock: string;
2296
- };
2297
- declare const LIST_MODIFIER_SELECTORS: {
2298
- bulletList: string;
2299
- orderedList: string;
2300
- };
2301
- declare const FONT_SIZE_SELECTORS: {
2302
- h1: string;
2303
- h2: string;
2304
- h3: string;
2305
- h4: string;
2306
- h5: string;
2307
- };
2308
-
2309
- declare const EMBED_SELECTORS: {
2310
- iframe: (appName: string) => string;
2311
- modal: (appName: string) => string;
2312
- close: (appName: string) => string;
2313
- loader: (appName: string) => string;
2314
- inlineHeightInput: string;
2315
- inlineWidthInput: string;
2316
- inlineElementIdInput: string;
2317
- codeBlock: string;
2318
- previewTab: string;
2319
- htmlTab: string;
2320
- buttonTextInput: string;
2321
- buttonPositionSelectContainer: string;
2322
- buttonPositionSelectMenu: string;
2323
- buttonColorLabel: string;
2324
- buttonTextColorLabel: string;
2325
- colorPickerTarget: string;
2326
- colorpickerEditableInput: string;
2327
- colorpickerEditableInputTextbox: string;
2328
- showIconCheckbox: string;
2329
- elementIdInput: string;
2330
- previewElementPopupButton: string;
2331
- embedSelector: (type: string) => string;
2332
- backToEmbedSelectionButton: string;
2333
- };
2334
-
2335
- declare const NEETO_FILTERS_SELECTORS: {
2336
- emailSelectContainer: string;
2337
- filterPaneHeading: string;
2338
- neetoFiltersEmailBlock: string;
2339
- neetoFiltersRoleBlock: string;
2340
- neetoFiltersBarClearButton: string;
2341
- neetoFiltersNameFilterField: string;
2342
- neetoFilterNameBlock: string;
2343
- roleSelectContainer: string;
2344
- filterButton: string;
2345
- filtersClearButton: string;
2346
- filterDoneButton: string;
2347
- filteredMembersCount: string;
2348
- allMenubarBlock: string;
2349
- filtersEmailFilter: string;
2350
- paneModalCrossIcon: string;
2351
- searchTermBlock: string;
2352
- categoriesFilter: string;
2353
- filtersSegmentName: string;
2354
- activeSelectContainer: string;
2355
- neetoFiltersFilter: (filterName: string) => string;
2356
- filtersTermBlock: (filterType?: string) => string;
2357
- dateRange: (filterName: string) => string;
2358
- segmentLabel: (label: string) => string;
2359
- };
2360
-
2361
- declare const HELP_CENTER_SELECTORS: {
2362
- helpMenuBtn: string;
2363
- helpButton: string;
2364
- documentationButton: string;
2365
- keyboardShortcutButton: string;
2366
- chatButton: string;
2367
- whatsNewButton: string;
2368
- whatsNewWidgetInfo: string;
2369
- whatsNewWidgetCloseButton: string;
2370
- keyboardShortcutPaneHeading: string;
2371
- keyboardShortcutPaneCrossIcon: string;
2372
- statusButton: string;
2373
- communityButton: string;
2374
- subscriptionPlan: string;
2375
- };
2376
-
2377
- declare const NEETO_IMAGE_UPLOADER_SELECTORS: {
2378
- libraryImageCard: string;
2379
- imageUploaderWrapper: string;
2380
- browseText: string;
2381
- fileInput: string;
2382
- uploadedImage: string;
2383
- uploadNewAsset: string;
2384
- basicImageUploaderRemoveButton: string;
2385
- removeButton: string;
2386
- openImageLibraryButton: string;
2387
- openAssetLibraryButton: string;
2388
- imageEditorBackButton: string;
2389
- aspectRatioWidthInput: string;
2390
- aspectRatioHeightInput: string;
2391
- cropSubmitButton: string;
2392
- restrictionMessage: string;
2393
- progressBar: string;
2394
- myImagesTab: string;
2395
- unsplashTab: string;
2396
- nthLibraryImage: (index: number) => string;
2397
- nthUnsplashImage: (index: number) => string;
2398
- unsplashSearchInput: string;
2399
- imageEditorUploadedImage: string;
2400
- selectOriginalImageSwitch: string;
2401
- lockAspectRatioSwitch: string;
2402
- widthInputField: string;
2403
- heightInputField: string;
2404
- };
2405
-
2406
- declare const LOGIN_SELECTORS: {
2407
- appleAuthenticationButton: string;
2408
- emailTextField: string;
2409
- googleAuthenticationButton: string;
2410
- githubAuthenticationButton: string;
2411
- loginViaEmailButton: string;
2412
- passwordTextField: string;
2413
- rememberMeCheckBox: string;
2414
- submitButton: string;
2415
- twitterAuthenticationButton: string;
2416
- authenticatorAppOtpInput: string;
2417
- enterOtpInputError: string;
2418
- authenticatorAppLaterButton: string;
2419
- };
2420
-
2421
- declare const MEMBER_SELECTORS: {
2422
- membersTab: string;
2423
- newButton: string;
2424
- continueButton: string;
2425
- submitButton: string;
2426
- searchTextField: string;
2427
- deactivatedAgentsButton: string;
2428
- activatedMembersButton: string;
2429
- columnCheckBox: string;
2430
- roleLabel: (role: string) => string;
2431
- teamMembersTable: string;
2432
- dropDownIcon: string;
2433
- editButton: string;
2434
- menuBarHeading: string;
2435
- removeMember: string;
2436
- columnsButton: string;
2437
- columnsDropdownContainer: string;
2438
- emailDropdownItemLabel: string;
2439
- roleDropdownItemLabel: string;
2440
- inviteStatusDropdownItemLabel: string;
2441
- heading: string;
2442
- activateButton: string;
2443
- deactivateButton: string;
2444
- rolesButton: string;
2445
- statusTag: string;
2446
- exportMemberHeading: string;
2447
- downloadAsRadioItem: (fileType: "pdf" | "excel" | "csv") => string;
2448
- exportSubmitBtn: string;
2449
- exportCancelBtn: string;
2450
- downloadButton: string;
2451
- manageAppListChk: string;
2452
- menubarSubLink: (sublink: string) => string;
2453
- takeActionStateOption: (option?: string) => string;
2454
- checkboxLabel: (label: string) => string;
2455
- subscriptionPlanTag: string;
2456
- memberNameCell: (nameOrEmail: string) => string;
2457
- };
2458
- declare const MEMBER_FORM_SELECTORS: {
2459
- emailTextField: string;
2460
- firstNameTextField: string;
2461
- lastNameTextField: string;
2462
- emailInput: string;
2463
- emailErrorField: string;
2464
- cancelButton: string;
2465
- };
2466
-
2467
- declare const PROFILE_SECTION_SELECTORS: {
2468
- profileSectionButton: string;
2469
- profilePopup: string;
2470
- profileExpandMenuBtn: string;
2471
- myProfileButton: string;
2472
- updateEmailMenuBtn: string;
2473
- workspaceDisplay: string;
2474
- profileOrganizationSettingsButton: string;
2475
- logoutButton: string;
2476
- neetoAuthLink: string;
2477
- profileSidebarCancelButton: string;
2478
- profileAvatar: string;
2479
- actionHeaderUserName: string;
2480
- actionHeaderUserEmail: string;
2481
- submitButton: string;
2482
- editBtn: string;
2483
- firstNameTextField: string;
2484
- lastNameTextField: string;
2485
- manageBillingAndSubscriptionsButton: string;
2486
- cancelButton: string;
2487
- profileSubmitBtn: string;
2488
- editBasicInfoMenuBtn: string;
2489
- editBasicInfoBtn: string;
2490
- phoneNumberTxtField: string;
2491
- timezoneBtn: string;
2492
- timezoneSearchBox: string;
2493
- nameField: string;
2494
- emailField: string;
2495
- firstNameField: string;
2496
- lastNameField: string;
2497
- phoneNumberField: string;
2498
- countryField: string;
2499
- timeZoneField: string;
2500
- timeFormatField: string;
2501
- dateFormatField: string;
2502
- firstNameInputError: string;
2503
- timeZoneSelect: string;
2504
- lastNameInputError: string;
2505
- phoneNumberInputError: string;
2506
- imageUploadBtn: string;
2507
- imageRemoveBtn: string;
2508
- };
2509
-
2510
- declare const ROLES_SELECTORS: {
2511
- newButton: string;
2512
- proceedButton: string;
2513
- cancelButton: string;
2514
- tableHeaderRoleName: string;
2515
- nameTextField: string;
2516
- searchTextField: string;
2517
- updateRolePaneHeading: string;
2518
- updateRoleCancelButton: string;
2519
- descriptionTextField: string;
2520
- permissionCategoryTitle: string;
2521
- headerColumn: string;
2522
- dropDownIcon: string;
2523
- tableHeaderRoleTitle: string;
2524
- permissionCheckbox: string;
2525
- editRoleButton: string;
2526
- deleteRoleButton: string;
2527
- permissionCard: string;
2528
- searchPermissionsInput: string;
2529
- permissionDescription: string;
2530
- rolesEditButton: string;
2531
- roleCell: (roleName: string) => string;
2532
- tablePermissionCheckbox: string;
2533
- descriptionInputError: string;
2534
- permissionSubCategoryCard: (index: number) => string;
2535
- };
2536
-
2537
- declare const SIGNUP_SELECTORS: {
2538
- emailTextField: string;
2539
- firstNameTextField: string;
2540
- lastNameTextField: string;
2541
- organizationNameTextField: string;
2542
- organizationSubmitButton: string;
2543
- otpTextBox: string;
2544
- profileSubmitButton: string;
2545
- signupViaEmailButton: string;
2546
- submitButton: string;
2547
- subdomainNameTextField: string;
2548
- subdomainAvailabilityMsg: string;
2549
- subdomainError: string;
2550
- tryFreeButton: string;
2551
- unregisteredEmailError: string;
2552
- organization: (organizationName: string) => string;
2553
- };
2554
-
2555
- declare const TAB_SELECTORS: {
2556
- configureTab: string;
2557
- buildTab: string;
2558
- themeTab: string;
2559
- shareTab: string;
2560
- submissionsTab: string;
2561
- paymentsTab: string;
2562
- settingsTab: string;
2563
- };
2564
-
2565
- declare const TAGS_SELECTORS: {
2566
- newTagButton: string;
2567
- tagNameTextField: string;
2568
- editButton: string;
2569
- deleteButton: string;
2570
- cancelButton: string;
2571
- submitButton: string;
2572
- searchTextField: string;
2573
- descriptionTextArea: string;
2574
- addTagButton: string;
2575
- tagSearchField: string;
2576
- deleteTagButton: string;
2577
- metaDataCard: string;
2578
- metaDataBlock: string;
2579
- tagContainer: string;
2580
- tagsCount: string;
2581
- };
2582
- declare const MERGE_TAGS_SELECTORS: {
2583
- mergeTagsButton: string;
2584
- mergeButton: string;
2585
- sourceSearchTextField: string;
2586
- sourceTagsList: string;
2587
- destinationTagsList: string;
2588
- destinationSearchTextField: string;
2589
- cancelButton: string;
2590
- proceedButton: string;
2591
- disabledTag: string;
2592
- sourceTagRow: string;
2593
- destinationTagRow: string;
2594
- };
2595
-
2596
- declare const CHAT_WIDGET_SELECTORS: {
2597
- iframe: string;
2598
- spinner: string;
2599
- helpButton: string;
2600
- preChatEmailInput: string;
2601
- preChatSubmitButton: string;
2602
- chatBubble: string;
2603
- closeChat: string;
2604
- chatQuestionHeader: string;
2605
- openChat: string;
2606
- homeScreenSubtitle: string;
2607
- };
2608
- declare const CHANGELOG_WIDGET_SELECTORS: {
2609
- changelogWrapper: string;
2610
- closeButton: string;
2611
- publicUrlLink: string;
2612
- };
2613
- declare const KEYBOARD_SHORTCUTS_SELECTORS: {
2614
- keyboardShortcutsPane: string;
2615
- closePaneButton: string;
2616
- hotKeyItem: string;
2617
- };
2618
-
2619
- declare const INTEGRATION_SELECTORS: {
2620
- integrationCard: (integration: string) => string;
2621
- connectButton: string;
2622
- integrationStatusTag: string;
2623
- disconnectButton: string;
2624
- manageButton: string;
2625
- integrationConnectedTag: string;
2626
- };
2627
-
2628
- declare const GOOGLE_LOGIN_SELECTORS: {
2629
- totpNext: string;
2630
- form: string;
2631
- totpChallengeSelector: string;
2632
- signOutFrameLocator: string;
2633
- };
2634
- declare const GOOGLE_ANALYTICS_SELECTORS: {
2635
- gaCode: string;
2636
- };
2637
- declare const GOOGLE_SHEETS_SELECTORS: {
2638
- iframe: string;
2639
- };
2640
-
2641
- declare const dataQa: (value: string) => string;
2642
- declare const SLACK_SELECTORS: {
2643
- messageContainer: string;
2644
- loginEmail: string;
2645
- loginPassword: string;
2646
- signInButton: string;
2647
- teamPicketButtonContent: string;
2648
- redirectOpenInBrowser: string;
2649
- workspaceActionsButton: string;
2650
- teamMenuTrigger: string;
2651
- menuItemButton: string;
2652
- threadsFlexpane: string;
2653
- replyBar: string;
2654
- markdownElement: string;
2655
- virtualListItem: string;
2656
- channelItems: string;
2657
- installButton: string;
2658
- };
2659
- declare const SLACK_DATA_QA_SELECTORS: {
2660
- sectionHeadingButton: string;
2661
- coachMarkCloseButton: string;
2662
- messagePaneBannerCloseIcon: string;
2663
- permissionBannerCloseIcon: string;
2664
- channelSectionSubmenuCreate: string;
2665
- channelSectionMenuCreateChannel: string;
2666
- skModalContent: string;
2667
- infiniteSpinner: string;
2668
- channelNameOptionsList: string;
2669
- channelNameInput: string;
2670
- createChannelNextButton: string;
2671
- inviteToWorkspaceSkipButton: string;
2672
- menuItems: string;
2673
- channelDetailsModal: string;
2674
- channelDetailsSettingsTab: string;
2675
- };
2676
-
2677
- declare const WEBHOOK_SELECTORS: {
2678
- addNewWebhook: string;
2679
- endpointInputField: string;
2680
- deliveryResponseCode: string;
2681
- deliveryRequestPayload: string;
2682
- addSecretKey: string;
2683
- newWebhookHeader: string;
2684
- endpointInputError: string;
2685
- eventsSelectError: string;
2686
- regenerateSecret: string;
2687
- deleteSecret: string;
2688
- editWebhookButton: string;
2689
- deleteWebhookButton: string;
2690
- };
2691
-
2692
- declare const ZAPIER_SELECTORS: {
2693
- zapTriggerStep: (zapId: string) => string;
2694
- zapAccountSubstep: string;
2695
- zapOpenSubstepContainer: string;
2696
- modal: string;
2697
- fmPrettytext: string;
2698
- spinner: string;
2699
- skeletonBlock: string;
2700
- accountsLoader: string;
2701
- floatingBox: string;
2702
- connection: string;
2703
- deleteConnectionModal: string;
2704
- deleteConnectionDropdownButton: string;
2705
- usageAmounts: string;
2706
- universalSidebar: string;
2707
- sidebarFooter: string;
2708
- contextualSideBar: string;
2709
- iconContainer: string;
2710
- deleteApiButton: string;
2711
- zapierSubLink: string;
2712
- navbar: string;
2713
- authTitle: string;
2714
- publishButton: string;
2715
- panelFooter: string;
2716
- zapToggle: string;
2717
- stepBlock: string;
2718
- fmPrettyBox: string;
2719
- universalTopbar: string;
2720
- accountsMenu: string;
2721
- zapToggleCheckbox: string;
2722
- };
2723
-
2724
- declare const TWILIO_SELECTORS: {
2725
- sidField: string;
2726
- authTokenField: string;
2727
- };
2728
-
2729
- type ColumnMenuAction = "hide" | "freeze-unfreeze" | "ascending" | "descending" | "edit";
2730
- declare const TABLE_SELECTORS: {
2731
- freezeUnfreezeButton: string;
2732
- ascendingButton: string;
2733
- descendingButton: string;
2734
- hideButton: string;
2735
- columnHeaderTitle: (columnName: string) => string;
2736
- columnMenuButton: string;
2737
- columnInfoIcon: string;
2738
- columnMenuBtn: (action: ColumnMenuAction) => string;
2739
- moveColumnBtn: (position: "left" | "right") => string;
2740
- };
2741
-
2742
- declare const THEMES_SELECTORS: {
2743
- colorPickerDropdownContainer: (colorHex: string) => string;
2744
- baseThemeStyle: (styleType: string) => string;
2745
- introPageThemeStyle: (styleType: string) => string;
2746
- themeSwitcherButton: string;
2747
- themeSwitcherDarkButton: string;
2748
- };
2749
-
2750
- declare const ADMIN_PANEL_SELECTORS: {
2751
- settingsItemHeading: string;
2752
- settingsItemDescription: string;
2753
- expiryDateInput: string;
2754
- goBackButton: string;
2755
- };
2756
- declare const CUSTOM_DOMAIN_SELECTORS: {
2757
- addCustomDomainButton: string;
2758
- customDomainInputField: string;
2759
- submitCustomDomainButton: string;
2760
- customDomainValidateButton: string;
2761
- editCustomDomainButton: string;
2762
- deleteCustomDomainButton: string;
2763
- dropdownButton: string;
2764
- activeTagContainer: string;
2765
- nameInputError: string;
2766
- };
2767
- declare const API_KEYS_SELECTORS: {
2768
- countLabel: string;
2769
- editApiKeyButton: string;
2770
- deleteApiKeyButton: string;
2771
- addApiKeyButton: string;
2772
- apiKeysLabelField: string;
2773
- apiKeysExpiresAtField: string;
2774
- expiryDateInputError: string;
2775
- expiryDateInput: string;
2776
- apiKeysField: string;
2777
- tokenField: string;
2778
- expiresAtField: string;
2779
- createdAtField: string;
2780
- };
2781
- declare const IP_RESTRICTIONS_SELECTORS: {
2782
- enableIPRestrictionChk: string;
2783
- saveChanges: string;
2784
- addIPRangeBtn: string;
2785
- ipStartTextField: string;
2786
- ipEndTextField: string;
2787
- ipRangeDeleteBtn: string;
2788
- ipStartInpError: string;
2789
- ipEndInpError: string;
2790
- typeSelectError: string;
2791
- resetButton: string;
2792
- };
2793
- declare const AUDIT_LOGS_SELECTORS: {
2794
- card: string;
2795
- content: string;
2796
- timestamp: string;
2797
- text: string;
2798
- };
2799
-
2800
- declare const DATE_PICKER_SELECTORS: {
2801
- pickerInput: string;
2802
- datePicker: string;
2803
- timePicker: string;
2804
- nextYearButton: string;
2805
- prevYearButton: string;
2806
- selectedDateInCalendarClass: string;
2807
- };
2808
-
2809
- declare const ONBOARDING_SELECTORS: {
2810
- welcomeTitle: string;
2811
- welcomeDescription: string;
2812
- getStartedBtn: string;
2813
- doLaterBtn: string;
2814
- helpBtn: string;
2815
- continueBtn: string;
2816
- congratulationsTitle: string;
2817
- congratulationsDescription: string;
2818
- congratulationsBtn: string;
2819
- };
2820
-
2821
- declare const NEETO_SEO_SELECTORS: {
2822
- configureButton: string;
2823
- };
2824
-
2825
- declare const MICROSOFT_LOGIN_SELECTORS: {
2826
- acceptButton: string;
2827
- cancelButton: string;
2828
- signInProfileIcon: string;
2829
- emailInput: string;
2830
- placeholder: string;
2831
- dropdownMenu: string;
2832
- };
2833
-
2834
- declare const initializeCredentials: (product: string) => void;
2835
-
2836
- interface KeyValue {
2837
- key: string;
2838
- value: string;
2839
- }
2840
- type JoinString = (string1: string, string2: string, string3?: string, separator?: string) => string;
2841
- interface UserContext {
2842
- user: Record<string, string>;
2843
- headers: Record<string, unknown>;
2844
- }
2845
- type ReadFileSyncIfExists = (path?: string) => UserContext & Record<string, object>;
2846
- type WriteDataToFile = (data: string) => boolean;
2847
- type UpdateCredentials = ({ key, value }: KeyValue) => boolean;
2848
- type ClearCredentials = () => void;
2849
- type JoinHyphenCase = (args: string) => string;
2850
- declare const joinString: JoinString;
2851
- declare const readFileSyncIfExists: ReadFileSyncIfExists;
2852
- declare const getGlobalUserState: () => Record<string, string>;
2853
- declare const writeDataToFile: WriteDataToFile;
2854
- declare const updateCredentials: UpdateCredentials;
2855
- declare const removeCredentialFile: ClearCredentials;
2856
- declare const clearCredentials: ClearCredentials;
2857
- declare const joinHyphenCase: JoinHyphenCase;
2858
- declare const skipTest: {
2859
- forDevelopmentEnv: () => void;
2860
- forReviewEnv: () => void;
2861
- forAllExceptStagingEnv: () => void;
2862
- forNonNightlyRun: () => void;
2863
- ifNotWithinAllowedNightlyHours: ({ reason, allowedNightlyRunHours, }: {
2864
- reason: string;
2865
- allowedNightlyRunHours?: number[];
2866
- }) => void;
2867
- };
2868
- declare const shouldSkipSetupAndTeardown: () => boolean | "";
2869
- declare const shouldSkipCustomDomainSetup: () => boolean;
2870
- declare const baseURLGenerator: (product: NeetoProducts, customSubdomain?: string) => string;
2871
- declare const squish: (text: string) => string;
2872
- declare const toCamelCase: (string: string) => string;
2873
- declare const getByDataQA: ts_toolbelt_out_Function_Curry.Curry<(page: Page, dataQa: string | [string, string]) => playwright_core.Locator>;
2874
- declare const getListCount: ({ page, countSelector, }: {
2875
- page: Page;
2876
- countSelector: string;
2877
- }) => Promise<number>;
2878
- declare const getGlobalUserProps: (page: Page) => Promise<Record<string, string>>;
2879
- declare const getClipboardContent: (page: Page) => Promise<string>;
2880
- declare const grantClipboardPermissions: (context: BrowserContext) => Promise<void>;
2881
- declare const getFullUrl: (path: string) => string;
2882
- declare const globalShortcuts: (t: TFunction) => {
2883
- description: string;
2884
- sequence: string;
2885
- }[];
2886
- declare const generatePhoneNumber: () => string;
2887
- declare const initializeTestData: (product: NeetoProducts) => {
2888
- credentials: Credentials;
2889
- baseURL: string;
2890
- };
2891
- declare const imageRegex: (imageName: string) => RegExp;
2892
-
2893
- interface LoginProps {
2894
- page: Page;
2895
- loginPath?: string;
2896
- email?: string;
2897
- }
2898
- declare const fillCredentialsAndSubmit: ({ page, loginPath, email, }: LoginProps) => Promise<void>;
2899
- declare const loginWithoutSSO: ({ page, loginPath, email, }: LoginProps) => Promise<void>;
2900
- declare const login: ({ page, loginPath, email }: LoginProps) => Promise<false | void>;
2901
- declare const generateRandomBypassEmail: () => string;
2902
-
2903
- declare const extractSubdomainFromError: (errorString: string) => string;
2904
- interface CreateOrganizationProps {
2905
- email: string;
2906
- firstName: string;
2907
- lastName: string;
2908
- subdomainName: string;
2909
- }
2910
- declare const createOrganizationViaRake: ({ email, firstName, lastName, subdomainName, }: CreateOrganizationProps) => Promise<string>;
2911
-
2912
- interface AssertColumnHeaderVisibilityProps {
2913
- page: Page;
2914
- columnName: string;
2915
- shouldBeVisible: boolean;
2916
- }
2917
- interface ToggleColumnCheckboxAndVerifyVisibilityProps {
2918
- page: Page;
2919
- tableColumns: string[];
2920
- shouldBeChecked: boolean;
2921
- }
2922
- interface VerifyTableColumnsExistenceProps {
2923
- page: Page;
2924
- columnNames: string[];
2925
- }
2926
- declare const tableUtils: {
2927
- verifyTableColumnsExistence: ({ page, columnNames, }: VerifyTableColumnsExistenceProps) => Promise<void>;
2928
- assertColumnHeaderVisibility: ({ page, columnName, shouldBeVisible, }: AssertColumnHeaderVisibilityProps) => Promise<void>;
2929
- toggleColumnCheckboxAndVerifyVisibility: ({ page, tableColumns, shouldBeChecked, }: ToggleColumnCheckboxAndVerifyVisibilityProps) => Promise<void>;
2930
- verifyFreezeColumnAction: (page: Page, t: TFunction) => Promise<void>;
2931
- verifyReorderColumns: (page: Page) => Promise<void>;
2932
- };
2933
-
2934
- interface EmulateNetworkConditionsParameters {
2935
- offline: boolean;
2936
- downloadThroughput: number;
2937
- uploadThroughput: number;
2938
- latency: number;
2939
- }
2940
- type NetworkThrottlingUsingCdpParams = {
2941
- cdpSession: CDPSession;
2942
- emulateNetworkConditionsParameters?: EmulateNetworkConditionsParameters;
2943
- };
2944
- declare const networkThrottlingUsingCDP: ({ cdpSession, emulateNetworkConditionsParameters, }: NetworkThrottlingUsingCdpParams) => Promise<unknown>;
2945
- type CpuThrottlingUsingCdpParams = {
2946
- cdpSession: CDPSession;
2947
- rate?: number;
2948
- };
2949
- declare const cpuThrottlingUsingCDP: ({ cdpSession, rate, }: CpuThrottlingUsingCdpParams) => Promise<unknown>;
2950
- interface ExecuteWithThrottledResourcesParams {
2951
- kind?: "both" | "network" | "cpu";
2952
- code: () => Promise<void>;
2953
- networkCondition?: EmulateNetworkConditionsParameters;
2954
- cpuThrottlingRate?: number;
2955
- cdpSession: CDPSession;
2956
- }
2957
- declare const executeWithThrottledResources: ({ code: emulatedCode, kind, networkCondition, cpuThrottlingRate, cdpSession, }: ExecuteWithThrottledResourcesParams) => Promise<void>;
2958
-
2959
- declare const basicHTMLContent: (content: string) => string;
2960
- declare const hexToRGB: (hex: string) => string;
2961
-
2962
- declare const filterUtils: {
2963
- openFilterPane: (page: Page) => Promise<void>;
2964
- clearFiltersFromActionBlock: (page: Page) => Promise<void>;
2965
- };
2966
-
2967
- declare const getImagePathAndName: (localImagePath: string) => {
2968
- imagePath: string;
2969
- imageName: string;
2970
- };
2971
-
2972
- declare const currencyUtils: {
2973
- getAmountWithSymbol: (amount: number, options: Record<string, unknown>) => string;
2974
- currencyFormat: {
2975
- withAmount: (amount: number, options?: {
2976
- minimumFractionDigits: number;
2977
- }) => string;
2978
- withSymbol: (amount: number, currency: string, options: Record<string, unknown>) => string;
2979
- withCode: (amount: number, currency: string, options?: {
2980
- minimumFractionDigits: number;
2981
- }) => string;
2982
- withSymbolAndCode: (amount: number, currency: string, options: Record<string, unknown>) => string;
2983
- };
2984
- };
2985
-
2986
- declare const isGithubIssueOpen: (issueLinks: string[]) => Promise<boolean>;
2987
-
2988
- declare const simulateTypingWithDelay: ({ field, value, delay, }: {
2989
- field: Locator;
2990
- value: string;
2991
- delay?: number;
2992
- }) => Promise<void>;
2993
- declare const simulateClickWithDelay: ({ element, page, }: {
2994
- element: Locator;
2995
- page: Page;
2996
- }) => Promise<void>;
2997
-
2998
- declare const getIsoCodeFromPhoneCode: (phoneCode: string) => string | undefined;
2999
- interface CountryProps {
3000
- flag: string;
3001
- code: string;
3002
- name: string;
3003
- number: string;
3004
- }
3005
- declare const getFormattedPhoneNumber: (countryName: string, phoneNumber: string) => string;
3006
- declare const generatePhoneNumberDetails: () => CountryProps;
3007
-
3008
- interface WarmupOptions {
3009
- urls?: string[];
3010
- timeout?: number;
3011
- }
3012
- declare function warmup({ urls, timeout, }?: WarmupOptions): Promise<void>;
3013
-
3014
- declare class NeetoAuthServer {
3015
- private process;
3016
- private targetApp;
3017
- constructor(appName: NeetoProducts);
3018
- private get serverEnv();
3019
- private waitForProcessExit;
3020
- private killServerOnPort;
3021
- private ensureSetup;
3022
- private waitForServer;
3023
- private injectEmailCaptureInitializer;
3024
- private isRunningForCurrentApp;
3025
- start: () => Promise<void>;
3026
- stop: () => Promise<void>;
3027
- }
3028
-
3029
- declare const PROJECT_NAMES: {
3030
- readonly setup: "setup";
3031
- readonly chromium: "chromium";
3032
- readonly webkit: "webkit";
3033
- readonly lighthouseAudits: "lighthouse-audits";
3034
- readonly cleanupCredentials: "cleanup credentials";
3035
- readonly productionHealth: "production-health";
3036
- };
3037
- type ProjectName = ValueOf<typeof PROJECT_NAMES>;
3038
- interface PlaydashOverrides {
3039
- projectKey: string;
3040
- }
3041
- type WebServerConfig = Exclude<NonNullable<PlaywrightTestConfig["webServer"]>, readonly unknown[]>;
3042
- type UnknownRecord = Record<string, unknown>;
3043
- interface ProjectLaunchOptionsConfig extends LaunchOptions {
3044
- mergeArgs?: boolean;
3045
- }
3046
- interface Overrides {
3047
- globalOverrides?: UnknownRecord;
3048
- useOverrides?: UnknownRecord;
3049
- useCustomProjects?: boolean;
3050
- projectOverrides?: UnknownRecord[];
3051
- playdashStagingOverrides?: PlaydashOverrides & UnknownRecord;
3052
- playdashProductionOverrides?: PlaydashOverrides & UnknownRecord;
3053
- playdashLighthouseOverrides?: PlaydashOverrides & UnknownRecord;
3054
- playdashProductionHealthOverrides?: PlaydashOverrides & UnknownRecord;
3055
- webServerOverrides?: WebServerConfig[];
3056
- projectLaunchOptionsOverrides?: Partial<Record<ProjectName, ProjectLaunchOptionsConfig>>;
3057
- }
3058
- declare const definePlaywrightConfig: (overrides: Overrides) => PlaywrightTestConfig<{}, {}>;
3059
-
3060
- export { ACTIONS, ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, 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, 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, FONT_SIZE_SELECTORS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_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, NeetoEmailDeliveryApi, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, 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_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, fillCredentialsAndSubmit, filterUtils, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, warmup, writeDataToFile };
3061
- export type { BaseThemeStyle, BaseThemeStyleType, ColumnMenuAction, CountryProps, CustomFixture, EmailDeliveryConnectParams, EmailDeliveryProvider, EmailDeliveryVerifiedEmail, EmailDeliveryVerifyEmailParams, EmailDeliveryVerifyEmailResponse, IntroPageThemeStyle, IntroPageThemeStyleType, ProjectName, ThemeCategory, ValueOf };