@bigbinary/neeto-playwright-commons 1.26.22 → 1.26.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -781,6 +781,43 @@ declare class MemberApis {
781
781
  update: (memberId: string, body: Record<string, unknown>) => Promise<playwright_core.APIResponse | undefined>;
782
782
  bulkUpdate: (body: Record<string, unknown>) => Promise<playwright_core.APIResponse | undefined>;
783
783
  }
784
+ type EmailAddress = string | string[];
785
+ interface RailsEmailAttachment {
786
+ name: string;
787
+ type: string;
788
+ content: string;
789
+ }
790
+ interface RailsEmail {
791
+ from: EmailAddress;
792
+ to: EmailAddress;
793
+ cc?: EmailAddress;
794
+ bcc?: EmailAddress;
795
+ replyTo?: EmailAddress;
796
+ subject: string;
797
+ htmlBody?: string;
798
+ textBody?: string;
799
+ receivedAt: string;
800
+ attachments?: RailsEmailAttachment[];
801
+ }
802
+ interface BaseRailsEmailSearchParams {
803
+ to: string;
804
+ from: string;
805
+ subject: string;
806
+ body: string;
807
+ receivedAfter: string;
808
+ }
809
+ type RailsEmailSearchParams = Partial<BaseRailsEmailSearchParams>;
810
+ declare class RailsEmailRakeClient {
811
+ private workingDirectory;
812
+ constructor();
813
+ private convertRawEmail;
814
+ private executeRakeTask;
815
+ private extractJsonFromOutput;
816
+ listEmails: (searchParams?: RailsEmailSearchParams) => Promise<RailsEmail[]>;
817
+ private buildSearchArgs;
818
+ getLatestEmail: (searchParams?: RailsEmailSearchParams) => Promise<RailsEmail | null>;
819
+ clearEmails: () => Promise<void>;
820
+ }
784
821
  declare class RoleApis {
785
822
  private neetoPlaywrightUtilities;
786
823
  /**
@@ -965,6 +1002,292 @@ declare class TwilioApi {
965
1002
  integrableType
966
1003
  }: TwilioRequestParams) => Promise<playwright_core.APIResponse | undefined>;
967
1004
  }
1005
+ interface BaseMessageSearchCriteria {
1006
+ from: string;
1007
+ to: string;
1008
+ subject: string;
1009
+ body: string;
1010
+ }
1011
+ type MessageSearchCriteria$1 = Partial<BaseMessageSearchCriteria>;
1012
+ interface FindMessageFilterOptions$1 {
1013
+ receivedAfter: Date;
1014
+ timeout: number;
1015
+ expectedEmailCount?: number;
1016
+ }
1017
+ interface FindOtpFromEmailParams$1 {
1018
+ email: string;
1019
+ subjectSubstring?: string;
1020
+ timeout?: number;
1021
+ receivedAfter?: Date;
1022
+ expectedEmailCount?: number;
1023
+ }
1024
+ interface Identifier$1 {
1025
+ name: string;
1026
+ email: string;
1027
+ }
1028
+ interface MessageInferredData$1 {
1029
+ links: string[] | null;
1030
+ codes: string[] | null;
1031
+ body: string;
1032
+ }
1033
+ interface Attachment$1 {
1034
+ name: string;
1035
+ type: string;
1036
+ }
1037
+ interface FormattedList$1 {
1038
+ html: MessageInferredData$1;
1039
+ text: MessageInferredData$1;
1040
+ id: string;
1041
+ from: Identifier$1[];
1042
+ to: Identifier$1[];
1043
+ cc: Identifier$1[];
1044
+ bcc: Identifier$1[];
1045
+ replyTo: Identifier$1[];
1046
+ received: string;
1047
+ subject: string;
1048
+ attachments: Attachment$1[];
1049
+ blobId: string;
1050
+ }
1051
+ interface AttachmentDetails$1 {
1052
+ filename: string;
1053
+ type: string;
1054
+ content: Buffer;
1055
+ contentType: string;
1056
+ }
1057
+ declare class RailsEmailUtils {
1058
+ private neetoPlaywrightUtilities;
1059
+ private railsEmailRakeClient;
1060
+ constructor(neetoPlaywrightUtilities: CustomCommands);
1061
+ private convertRailsEmailToFormattedList;
1062
+ clearEmails: () => Promise<void>;
1063
+ getLatestEmail: (searchParams: RailsEmailSearchParams) => Promise<RailsEmail | null>;
1064
+ listEmails: (searchParams?: RailsEmailSearchParams) => Promise<RailsEmail[]>;
1065
+ /**
1066
+ *
1067
+ * This method is used to list a set of messages matching a specific search criteria. It immediately returns the available list of messages matching the search criteria and doesn't wait until a matching message is found. Due to this reason delays in email deliveries should be accounted while using this method. This method is useful in asserting negative test cases and asserting a list of emails matching a certain pattern.
1068
+ *
1069
+ * Note: If the intention is to find a matching message within a certain time frame, prefer using the findMessage method.
1070
+ *
1071
+ * messageSearchCriteria: An object containing the search criteria for matching the messages. The object can contain the keys, from, to, subject and body. All the keys of the object are optional. The values of the object are of string type and are case-insensitive. The following key-value pairs can be used:
1072
+ *
1073
+ * from: The complete email address from which the email was sent.
1074
+ *
1075
+ * to: The complete email address to which the email was sent to.
1076
+ *
1077
+ * subject: A complete string or a substring used to match the subject of the email.
1078
+ *
1079
+ * body: A complete string or a substring used to match the body of the email.
1080
+ *
1081
+ * messageFilterCriteria (optional): An object containing the criteria which are used to filter the messages that match the search criteria. The object can contain the keys receivedAfter, page and itemsPerPage. The following key-value pairs can be used:
1082
+ *
1083
+ * receivedAfter: A JavaScript Date object used to filter the matching messages on the date-time of email delivery. Defaults to one hour before the method call.
1084
+ *
1085
+ * page: A number specifying the page number for paginating the results. Starts from 1 (default value). If a page number greater than the total number of matching emails is specified, an empty array will be returned.
1086
+ *
1087
+ * itemsPerPage: A number specifying the number of results per page. Default value is 50. The value can range from 1 to 100.
1088
+ *
1089
+ * Returns an array of objects with details about the emails matching the search and filter criteria. The object will have the following shape.
1090
+ *
1091
+ * html: Contains an object with the codes (Array of number strings having length greater than or equal to 4 in the email), links (Array of links in the email) and the body of the email with the HTML tags intact.
1092
+ *
1093
+ * text: Contains an object with the codes (Array of number strings having length greater than or equal to 4 in the email), links (Array of links in the email) and the body of the email with the HTML tags stripped off.
1094
+ *
1095
+ * id: A unique identifier string used to identify the email.
1096
+ *
1097
+ * from: An array of objects containing the name and email of the sender of the email.
1098
+ *
1099
+ * to: An array of objects containing the name and email of the receiver of the email.
1100
+ *
1101
+ * cc: An array of objects containing the name and email of the sender of the email as part of the cc list.
1102
+ *
1103
+ * replyTo: An array of objects containing the name and email of the individuals to whom replies should be directed.
1104
+ *
1105
+ * bcc: An array of objects containing the name and email of the recipients of the email as part of the bcc list.
1106
+ *
1107
+ * received: A JavaScript Date object containing the date-time of the email delivery.
1108
+ *
1109
+ * subject: A string containing the subject of the email.
1110
+ *
1111
+ * attachments: An array of objects containing the name and type of the attachment of the email.
1112
+ *
1113
+ * @example
1114
+ *
1115
+ * test("sample test", async ({ mailerUtils }) => {
1116
+ * const message = await mailerUtils.listMessages({
1117
+ * to: fastmailEmailId,
1118
+ * from: senderEmailId,
1119
+ * subject: "login code",
1120
+ * body: "neeto",
1121
+ * }, {
1122
+ * receivedAfter: new Date(),
1123
+ * page: 1,
1124
+ * itemsPerPage: 50,
1125
+ * });
1126
+ * });
1127
+ * @endexample
1128
+ */
1129
+ listMessages: (messageSearchCriteria?: MessageSearchCriteria$1, {
1130
+ receivedAfter
1131
+ }?: {
1132
+ receivedAfter?: Date;
1133
+ }) => Promise<FormattedList$1[]>;
1134
+ /**
1135
+ *
1136
+ * This method is used to find a first email matching the search criteria. On top of the listMessage method, this method waits until a specific mail is received or the timeout is exceeded. This method is useful for fetching an email once an action is triggered since it waits for the message delivery and can be customized according to delays in email deliveries.
1137
+ *
1138
+ * Note: In development environment, this method uses Rails Email page to find messages. In other environments, it uses Fastmail APIs.
1139
+ *
1140
+ * messageSearchCriteria: An object containing the search criteria for matching the messages. The object can contain the keys, from, to, subject and body. All the keys of the object are optional. The values of the object are of string type and are case-insensitive. The following key-value pairs can be used:
1141
+ *
1142
+ * from: The complete email address from which the email was sent.
1143
+ *
1144
+ * to: The complete email address to which the email was sent to.
1145
+ *
1146
+ * subject: A complete string or a substring used to match the subject of the email.
1147
+ *
1148
+ * body: A complete string or a substring used to match the body of the email.
1149
+ *
1150
+ * messageFilterCriteria (optional): An object containing the criteria which are used to filter the messages that match the search criteria. The object can contain the keys receivedAfter, timeout and expectedEmailCount. The following key-value pairs can be used:
1151
+ *
1152
+ * receivedAfter: A JavaScript Date object used to filter the matching messages on the date-time of email delivery. Defaults to one hour before the method call.
1153
+ *
1154
+ * timeout: A number indicating the number of milliseconds to retry fetching the message before timing out. Defaults to 10 seconds.
1155
+ *
1156
+ * expectedEmailCount: A number indicating the minimum number of matching emails expected before returning. Defaults to 1.
1157
+ *
1158
+ * shouldThrowErrorOnTimeout (optional): A boolean value indicating whether the method show throw an error if a matching message is not found within the timeout time. If set to false, no error is thrown if the timeout is exceeded and just returns an empty object. Defaults to true.
1159
+ *
1160
+ * Returns an object with details about the first email matching the search and filter criteria. The object will have the following shape.
1161
+ *
1162
+ * html: Contains an object with the codes (Array of number strings having length greater than or equal to 4 in the email), links (Array of links in the email) and the body of the email with the HTML tags intact.
1163
+ *
1164
+ * text: Contains an object with the codes (Array of number strings having length greater than or equal to 4 in the email), links (Array of links in the email) and the body of the email with the HTML tags stripped off.
1165
+ *
1166
+ * id: A unique identifier string used to identify the email.
1167
+ *
1168
+ * from: An array of objects containing the name and email of the sender of the email.
1169
+ *
1170
+ * to: An array of objects containing the name and email of the receiver of the email.
1171
+ *
1172
+ * cc: An array of objects containing the name and email of the sender of the email as part of the cc list.
1173
+ *
1174
+ * replyTo: An array of objects containing the name and email of the individuals to whom replies should be directed.
1175
+ *
1176
+ * bcc: An array of objects containing the name and email of the recipients of the email as part of the bcc list.
1177
+ *
1178
+ * received: A JavaScript Date object containing the date-time of the email delivery.
1179
+ *
1180
+ * subject: A string containing the subject of the email.
1181
+ *
1182
+ * @example
1183
+ *
1184
+ * test("sample test", async ({ mailerUtils }) => {
1185
+ * const message = await mailerUtils.findMessage({
1186
+ * to: fastmailEmailId,
1187
+ * from: senderEmailId,
1188
+ * subject: "login code",
1189
+ * body: "neeto",
1190
+ * }, {
1191
+ * receivedAfter: new Date(),
1192
+ * timeout: 60 * 1000,
1193
+ * expectedEmailCount: 1,
1194
+ * }, false);
1195
+ * });
1196
+ * @endexample
1197
+ */
1198
+ findMessage: (messageSearchCriteria?: MessageSearchCriteria$1, {
1199
+ timeout,
1200
+ receivedAfter,
1201
+ expectedEmailCount
1202
+ }?: Partial<FindMessageFilterOptions$1> | undefined, shouldThrowErrorOnTimeout?: boolean) => Promise<FormattedList$1 | Record<string, never>>;
1203
+ /**
1204
+ *
1205
+ * A helper method that is used to find the first code value from the matching email body. This method has been built to match the Neeto OTP emails.
1206
+ *
1207
+ * Note: In development environment, this method uses Rails Email page to find OTP. In other environments, it uses Fastmail APIs.
1208
+ *
1209
+ * The method accepts the following named arguments:
1210
+ *
1211
+ * email: The recipient email address used to find the email
1212
+ *
1213
+ * subjectSubstring: The subject of the email used to match it. Defaults to the string is your login code to match Neeto OTP emails
1214
+ *
1215
+ * timeout: The timeout duration number in milliseconds, which when exceeded without finding matching emails, the method throws an error. Default to 2 minutes.
1216
+ *
1217
+ * receivedAfter: A JavaScript Date object used to filter the matching messages on the date-time of email delivery. Defaults to the time of method call.
1218
+ *
1219
+ * expectedEmailCount: A number indicating the minimum number of matching emails expected before returning. Defaults to 1.
1220
+ *
1221
+ * The method returns the OTP as a string from the matching email.
1222
+ *
1223
+ */
1224
+ findOtpFromEmail: ({
1225
+ email,
1226
+ subjectSubstring,
1227
+ timeout,
1228
+ receivedAfter,
1229
+ expectedEmailCount
1230
+ }: FindOtpFromEmailParams$1) => Promise<string | undefined>;
1231
+ /**
1232
+ *
1233
+ * This method is used to return the attachment based on the attachmentName of first email matching the search criteria. On top of the findMessage method, this method matches the attachment name with the attachments associated to the email. If any attachment matches then it will fetch the attachment details and return. If any attachment file name doesn't contain the substring attachmentName then it will throw an error saying No such attachment exists.
1234
+ *
1235
+ * Note: In development environment, this method uses Rails Email page to fetch attachments. In other environments, it uses Fastmail APIs.
1236
+ *
1237
+ * attachmentName: A substring matching the attachment file name. It can be both with or without extension.
1238
+ *
1239
+ * messageSearchCriteria: An object containing the search criteria for matching the messages. The object can contain the keys, from, to, subject and body. All the keys of the object are optional. The values of the object are of string type and are case-insensitive. The following key-value pairs can be used:
1240
+ *
1241
+ * from: The complete email address from which the email was sent.
1242
+ *
1243
+ * to: The complete email address to which the email was sent to.
1244
+ *
1245
+ * subject: A complete string or a substring used to match the subject of the email.
1246
+ *
1247
+ * body: A complete string or a substring used to match the body of the email.
1248
+ *
1249
+ * messageFilterCriteria (optional): An object containing the criteria which are used to filter the messages that match the search criteria. The object can contain the keys receivedAfter, timeout and expectedEmailCount. The following key-value pairs can be used:
1250
+ *
1251
+ * receivedAfter: A JavaScript Date object used to filter the matching messages on the date-time of email delivery. Defaults to one hour before the method call.
1252
+ *
1253
+ * timeout: A number indicating the number of milliseconds to retry fetching the message before timing out. Defaults to 10 seconds.
1254
+ *
1255
+ * expectedEmailCount: A number indicating the minimum number of matching emails expected before returning. Defaults to 1.
1256
+ *
1257
+ * shouldThrowErrorOnTimeout (optional): A boolean value indicating whether the method show throw an error if a matching message is not found within the timeout time. If set to false, no error is thrown if the timeout is exceeded and just returns an empty object. Defaults to true.
1258
+ *
1259
+ * Returns a promise object with details of attachment. The object will have the following shape.
1260
+ *
1261
+ * filename: A string representing the file name of attachment.
1262
+ *
1263
+ * type: A string representing the type of attachment file.
1264
+ *
1265
+ * content: A buffer with the content of attachment file.
1266
+ *
1267
+ * contentType: A string representing the content type of attachment file.
1268
+ *
1269
+ * @example
1270
+ *
1271
+ * test("sample test", async ({ mailerUtils }) => {
1272
+ * const message = await mailerUtils.getEmailAttachment(
1273
+ * "invite",
1274
+ * {
1275
+ * to: fastmailEmailId,
1276
+ * from: senderEmailId,
1277
+ * subject: "Event details",
1278
+ * }, {
1279
+ * receivedAfter: new Date(),
1280
+ * timeout: 60 * 1000,
1281
+ * expectedEmailCount: 1,
1282
+ * }, false);
1283
+ * });
1284
+ * @endexample
1285
+ */
1286
+ getEmailAttachment: (attachmentName: string, messageSearchCriteria?: MessageSearchCriteria$1, {
1287
+ receivedAfter,
1288
+ expectedEmailCount
1289
+ }?: Partial<FindMessageFilterOptions$1> | undefined, shouldThrowErrorOnTimeout?: boolean) => Promise<AttachmentDetails$1 | undefined>;
1290
+ }
968
1291
  interface FastmailHeaders {
969
1292
  "Content-Type": "application/json";
970
1293
  Authorization: `Bearer ${string}`;
@@ -1063,6 +1386,7 @@ declare class MailerUtils {
1063
1386
  private neetoPlaywrightUtilities;
1064
1387
  accountId: string | undefined;
1065
1388
  fastmailApi: FastmailApi;
1389
+ railsEmailUtils: RailsEmailUtils;
1066
1390
  constructor(neetoPlaywrightUtilities: CustomCommands);
1067
1391
  private queryEmail;
1068
1392
  private getEmails;
@@ -1130,7 +1454,7 @@ declare class MailerUtils {
1130
1454
  * });
1131
1455
  * @endexample
1132
1456
  */
1133
- listMessages: (messageSearchCriteria?: Partial<MessageSearchCriteria> | undefined, listMessagesFilterCriteria?: Partial<ListMessagesFilterCriteria> | undefined) => Promise<FormattedList[]>;
1457
+ listMessages: (messageSearchCriteria?: Partial<MessageSearchCriteria> | undefined, listMessagesFilterCriteria?: Partial<ListMessagesFilterCriteria> | undefined) => Promise<FormattedList$1[]>;
1134
1458
  getEmailIds: (messageSearchCriteria?: Partial<MessageSearchCriteria>, {
1135
1459
  timeout,
1136
1460
  receivedAfter,
@@ -1141,6 +1465,8 @@ declare class MailerUtils {
1141
1465
  *
1142
1466
  * This method is used to find a first email matching the search criteria. On top of the listMessage method, this method waits until a specific mail is received or the timeout is exceeded. This method is useful for fetching an email once an action is triggered since it waits for the message delivery and can be customized according to delays in email deliveries.
1143
1467
  *
1468
+ * Note: In development environment, this method uses Rails Email page to find messages. In other environments, it uses Fastmail APIs.
1469
+ *
1144
1470
  * messageSearchCriteria: An object containing the search criteria for matching the messages. The object can contain the keys, from, to, subject and body. All the keys of the object are optional. The values of the object are of string type and are case-insensitive. The following key-value pairs can be used:
1145
1471
  *
1146
1472
  * from: The complete email address from which the email was sent.
@@ -1151,12 +1477,14 @@ declare class MailerUtils {
1151
1477
  *
1152
1478
  * body: A complete string or a substring used to match the body of the email.
1153
1479
  *
1154
- * messageFilterCriteria (optional): An object containing the criteria which are used to filter the messages that match the search criteria. The object can contain the keys receivedAfter, page and itemsPerPage. The following key-value pairs can be used:
1480
+ * messageFilterCriteria (optional): An object containing the criteria which are used to filter the messages that match the search criteria. The object can contain the keys receivedAfter, timeout and expectedEmailCount. The following key-value pairs can be used:
1155
1481
  *
1156
1482
  * receivedAfter: A JavaScript Date object used to filter the matching messages on the date-time of email delivery. Defaults to one hour before the method call.
1157
1483
  *
1158
1484
  * timeout: A number indicating the number of milliseconds to retry fetching the message before timing out. Defaults to 10 seconds.
1159
1485
  *
1486
+ * expectedEmailCount: A number indicating the minimum number of matching emails expected before returning. Defaults to 1.
1487
+ *
1160
1488
  * shouldThrowErrorOnTimeout (optional): A boolean value indicating whether the method show throw an error if a matching message is not found within the timeout time. If set to false, no error is thrown if the timeout is exceeded and just returns an empty object. Defaults to true.
1161
1489
  *
1162
1490
  * Returns an object with details about the first email matching the search and filter criteria. The object will have the following shape.
@@ -1184,7 +1512,7 @@ declare class MailerUtils {
1184
1512
  * @example
1185
1513
  *
1186
1514
  * test("sample test", async ({ mailerUtils }) => {
1187
- * const message = await mailerUtils.listMessages({
1515
+ * const message = await mailerUtils.findMessage({
1188
1516
  * to: fastmailEmailId,
1189
1517
  * from: senderEmailId,
1190
1518
  * subject: "login code",
@@ -1192,6 +1520,7 @@ declare class MailerUtils {
1192
1520
  * }, {
1193
1521
  * receivedAfter: new Date(),
1194
1522
  * timeout: 60 * 1000,
1523
+ * expectedEmailCount: 1,
1195
1524
  * }, false);
1196
1525
  * });
1197
1526
  * @endexample
@@ -1205,6 +1534,8 @@ declare class MailerUtils {
1205
1534
  *
1206
1535
  * A helper method that is used to find the first code value from the matching email body. This method has been built to match the Neeto OTP emails.
1207
1536
  *
1537
+ * Note: In development environment, this method uses Rails Email page to find OTP. In other environments, it uses Fastmail APIs.
1538
+ *
1208
1539
  * The method accepts the following named arguments:
1209
1540
  *
1210
1541
  * email: The recipient email address used to find the email
@@ -1213,7 +1544,9 @@ declare class MailerUtils {
1213
1544
  *
1214
1545
  * timeout: The timeout duration number in milliseconds, which when exceeded without finding matching emails, the method throws an error. Default to 2 minutes.
1215
1546
  *
1216
- * receivedAfter: = A JavaScript Date object used to filter the matching messages on the date-time of email delivery. Defaults to the time of method call.
1547
+ * receivedAfter: A JavaScript Date object used to filter the matching messages on the date-time of email delivery. Defaults to the time of method call.
1548
+ *
1549
+ * expectedEmailCount: A number indicating the minimum number of matching emails expected before returning. Defaults to 1.
1217
1550
  *
1218
1551
  * The method returns the OTP as a string from the matching email.
1219
1552
  *
@@ -1237,6 +1570,8 @@ declare class MailerUtils {
1237
1570
  *
1238
1571
  * This method is used to return the attachment based on the attachmentName of first email matching the search criteria. On top of the findMessage method, this method matches the attachment name with the attachments associated to the email. If any attachment matches then it will fetch the attachment details and return. If any attachment file name doesn't contain the substring attachmentName then it will throw an error saying No such attachment exists.
1239
1572
  *
1573
+ * Note: In development environment, this method uses Rails Email page to fetch attachments. In other environments, it uses Fastmail APIs.
1574
+ *
1240
1575
  * attachmentName: A substring matching the attachment file name. It can be both with or without extension.
1241
1576
  *
1242
1577
  * messageSearchCriteria: An object containing the search criteria for matching the messages. The object can contain the keys, from, to, subject and body. All the keys of the object are optional. The values of the object are of string type and are case-insensitive. The following key-value pairs can be used:
@@ -1249,12 +1584,14 @@ declare class MailerUtils {
1249
1584
  *
1250
1585
  * body: A complete string or a substring used to match the body of the email.
1251
1586
  *
1252
- * messageFilterCriteria (optional): An object containing the criteria which are used to filter the messages that match the search criteria. The object can contain the keys receivedAfter, page and itemsPerPage. The following key-value pairs can be used:
1587
+ * messageFilterCriteria (optional): An object containing the criteria which are used to filter the messages that match the search criteria. The object can contain the keys receivedAfter, timeout and expectedEmailCount. The following key-value pairs can be used:
1253
1588
  *
1254
1589
  * receivedAfter: A JavaScript Date object used to filter the matching messages on the date-time of email delivery. Defaults to one hour before the method call.
1255
1590
  *
1256
1591
  * timeout: A number indicating the number of milliseconds to retry fetching the message before timing out. Defaults to 10 seconds.
1257
1592
  *
1593
+ * expectedEmailCount: A number indicating the minimum number of matching emails expected before returning. Defaults to 1.
1594
+ *
1258
1595
  * shouldThrowErrorOnTimeout (optional): A boolean value indicating whether the method show throw an error if a matching message is not found within the timeout time. If set to false, no error is thrown if the timeout is exceeded and just returns an empty object. Defaults to true.
1259
1596
  *
1260
1597
  * Returns a promise object with details of attachment. The object will have the following shape.
@@ -1279,6 +1616,7 @@ declare class MailerUtils {
1279
1616
  * }, {
1280
1617
  * receivedAfter: new Date(),
1281
1618
  * timeout: 60 * 1000,
1619
+ * expectedEmailCount: 1,
1282
1620
  * }, false);
1283
1621
  * });
1284
1622
  * @endexample
@@ -2732,7 +3070,7 @@ declare class ZapierPage extends IntegrationBase {
2732
3070
  submittedEmail,
2733
3071
  zapTriggeredAfter,
2734
3072
  timeout
2735
- }: VerifyZapIsTriggeredProps) => Promise<FormattedList | Record<string, never>>;
3073
+ }: VerifyZapIsTriggeredProps) => Promise<Record<string, never> | FormattedList>;
2736
3074
  /**
2737
3075
  *
2738
3076
  * Skips test if Zapier task limit is exhausted.
@@ -8383,5 +8721,5 @@ interface Overrides {
8383
8721
  * @endexample
8384
8722
  */
8385
8723
  declare const definePlaywrightConfig: (overrides: Overrides) => PlaywrightTestConfig<{}, {}>;
8386
- export { ACTIONS, ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, AUDIT_LOGS_SELECTORS, AdminPanelPage, ApiKeysApi, ApiKeysPage, AuditLogsPage, BASE_URL, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, CustomCommands, CustomDomainApi, CustomDomainPage, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, 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, EmbedBase, FILE_FORMATS, FONT_SIZE_SELECTORS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_DEV_ENV, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RoleApis, RolesPage, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, SlackPage, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEAM_MEMBER_TEXTS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, fillCredentialsAndSubmit, filterUtils, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, headerUtils, hexToRGB, hexToRGBA, hyphenize, i18nFixture, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
8724
+ export { ACTIONS, ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, AUDIT_LOGS_SELECTORS, AdminPanelPage, ApiKeysApi, ApiKeysPage, AuditLogsPage, BASE_URL, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, CustomCommands, CustomDomainApi, CustomDomainPage, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, 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, EmbedBase, FILE_FORMATS, FONT_SIZE_SELECTORS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_DEV_ENV, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailRakeClient, 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, headerUtils, hexToRGB, hexToRGBA, hyphenize, i18nFixture, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, _default as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
8387
8725
  export type { BaseThemeStyle, BaseThemeStyleType, ColumnMenuAction, CountryProps, CustomFixture, IntroPageThemeStyle, IntroPageThemeStyleType, ThemeCategory, ValueOf };