@bigbinary/neeto-playwright-commons 1.13.15 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs.js +166 -91
- package/index.cjs.js.map +1 -1
- package/index.d.ts +15 -13
- package/index.js +166 -91
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.cjs.js
CHANGED
|
@@ -12127,7 +12127,7 @@ class MailerUtils {
|
|
|
12127
12127
|
const { ids } = await this.queryEmail(messageSearchCriteria, listMessagesFilterCriteria);
|
|
12128
12128
|
return this.getEmails(ids);
|
|
12129
12129
|
};
|
|
12130
|
-
this.findMessage = async (messageSearchCriteria = {}, { timeout = 10000, receivedAfter = dateTimeOneHourAgo(), } = {}, shouldThrowErrorOnTimeout = true) => {
|
|
12130
|
+
this.findMessage = async (messageSearchCriteria = {}, { timeout = 10000, receivedAfter = dateTimeOneHourAgo(), expectedEmailCount = 1, } = {}, shouldThrowErrorOnTimeout = true) => {
|
|
12131
12131
|
const ids = (await this.neetoPlaywrightUtilities.executeRecursively({
|
|
12132
12132
|
callback: async () => {
|
|
12133
12133
|
const { ids } = await this.queryEmail(messageSearchCriteria, {
|
|
@@ -12139,7 +12139,7 @@ class MailerUtils {
|
|
|
12139
12139
|
const { total } = await this.queryEmail(messageSearchCriteria, {
|
|
12140
12140
|
receivedAfter,
|
|
12141
12141
|
});
|
|
12142
|
-
return total
|
|
12142
|
+
return total >= expectedEmailCount;
|
|
12143
12143
|
},
|
|
12144
12144
|
timeout,
|
|
12145
12145
|
}));
|
|
@@ -12150,8 +12150,11 @@ class MailerUtils {
|
|
|
12150
12150
|
}
|
|
12151
12151
|
return (await this.getEmails(ids))[0];
|
|
12152
12152
|
};
|
|
12153
|
-
this.findOtpFromEmail = async ({ email, subjectSubstring = OTP_EMAIL_PATTERN, timeout = 2 * 60 * 1000, receivedAfter = new Date(), }) => {
|
|
12154
|
-
|
|
12153
|
+
this.findOtpFromEmail = async ({ email, subjectSubstring = OTP_EMAIL_PATTERN, timeout = 2 * 60 * 1000, receivedAfter = new Date(), expectedEmailCount = 1, }) => {
|
|
12154
|
+
if (!this.accountId) {
|
|
12155
|
+
await this.fastmailApi.authorizeAndSetAccountId();
|
|
12156
|
+
}
|
|
12157
|
+
const { html: { codes }, } = await this.findMessage({ to: email, subject: subjectSubstring }, { timeout, receivedAfter, expectedEmailCount });
|
|
12155
12158
|
return codes === null || codes === void 0 ? void 0 : codes[0];
|
|
12156
12159
|
};
|
|
12157
12160
|
this.generateRandomEmail = () => faker.faker.internet.email({
|
|
@@ -24269,6 +24272,7 @@ const LIST_MODIFIER_TAGS = {
|
|
|
24269
24272
|
|
|
24270
24273
|
class EditorPage {
|
|
24271
24274
|
constructor(page, neetoPlaywrightUtilities, editorWrapper) {
|
|
24275
|
+
this.wordsUsedInEditor = [];
|
|
24272
24276
|
this.linkUrl = faker.faker.internet.url();
|
|
24273
24277
|
this.filePath = "../../../e2e/assets/images/BigBinary.png";
|
|
24274
24278
|
this.imageUrl = "https://picsum.photos/200/300";
|
|
@@ -24291,48 +24295,88 @@ class EditorPage {
|
|
|
24291
24295
|
};
|
|
24292
24296
|
this.moreMenuOptions = async () => {
|
|
24293
24297
|
await this.moreMenuSelector.click();
|
|
24294
|
-
const
|
|
24295
|
-
|
|
24296
|
-
|
|
24297
|
-
.all();
|
|
24298
|
-
return Promise.all(moreMenuButtons.map(async (button) => {
|
|
24298
|
+
const dropdownContainer = this.page.getByTestId(COMMON_SELECTORS.dropdownContainer);
|
|
24299
|
+
const moreMenuButtons = await dropdownContainer.getByRole("button").all();
|
|
24300
|
+
const moreMenuButtonLocators = Promise.all(moreMenuButtons.map(async (button) => {
|
|
24299
24301
|
const dataCy = await button.getAttribute("data-cy");
|
|
24300
24302
|
return this.cleanString(dataCy);
|
|
24301
24303
|
}));
|
|
24304
|
+
await this.moreMenuSelector.click();
|
|
24305
|
+
// eslint-disable-next-line playwright/no-standalone-expect
|
|
24306
|
+
await test$1.expect(dropdownContainer).toBeHidden();
|
|
24307
|
+
return moreMenuButtonLocators;
|
|
24302
24308
|
};
|
|
24303
24309
|
this.verifyFontSize = async () => {
|
|
24310
|
+
const fontsAndTexts = [];
|
|
24304
24311
|
const fontSizeDropdown = this.editorWrapper.getByTestId(NEETO_EDITOR_SELECTORS.fontSize);
|
|
24305
|
-
await fontSizeDropdown.click();
|
|
24306
24312
|
const fontSize = Object.keys(FONT_SIZE_SELECTORS);
|
|
24307
24313
|
for (const font of fontSize) {
|
|
24308
24314
|
const fontKey = font;
|
|
24315
|
+
const randomText = await this.fillRandomText();
|
|
24316
|
+
await fontSizeDropdown.click();
|
|
24309
24317
|
await this.editorWrapper
|
|
24310
24318
|
.getByTestId(FONT_SIZE_SELECTORS[fontKey])
|
|
24311
24319
|
.click();
|
|
24312
|
-
await test$1.expect(this.contentField.getByRole("heading", {
|
|
24313
|
-
|
|
24320
|
+
await test$1.expect(this.contentField.getByRole("heading", {
|
|
24321
|
+
level: Number(font.slice(1)),
|
|
24322
|
+
name: randomText,
|
|
24323
|
+
})).toBeVisible();
|
|
24324
|
+
fontsAndTexts.push({
|
|
24325
|
+
key: fontKey,
|
|
24326
|
+
value: randomText,
|
|
24327
|
+
});
|
|
24314
24328
|
}
|
|
24329
|
+
return fontsAndTexts;
|
|
24315
24330
|
};
|
|
24316
|
-
this.verifyTextModifiers = async (modifier) => {
|
|
24331
|
+
this.verifyTextModifiers = async (modifier, isButtonInMoreMenu) => {
|
|
24317
24332
|
const modifierKey = modifier;
|
|
24318
24333
|
const textModifierRole = TEXT_MODIFIER_ROLES[modifierKey];
|
|
24334
|
+
const randomText = await this.fillRandomText();
|
|
24319
24335
|
const textModifierSelector = this.editorWrapper.getByTestId(TEXT_MODIFIER_SELECTORS[modifierKey]);
|
|
24336
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24320
24337
|
await textModifierSelector.click();
|
|
24321
|
-
await test$1.expect(this.contentField
|
|
24338
|
+
await test$1.expect(this.contentField
|
|
24339
|
+
.getByRole(textModifierRole)
|
|
24340
|
+
.filter({ hasText: randomText })).toBeVisible();
|
|
24341
|
+
await this.moveCursorAtBottom();
|
|
24342
|
+
await this.page.keyboard.press("Enter");
|
|
24343
|
+
if (modifierKey !== "codeBlock") {
|
|
24344
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24345
|
+
await textModifierSelector.click();
|
|
24346
|
+
}
|
|
24347
|
+
return [{ key: modifierKey, value: randomText }];
|
|
24322
24348
|
};
|
|
24323
|
-
this.verifyTextDeskModifier = async (modifier) => {
|
|
24349
|
+
this.verifyTextDeskModifier = async (modifier, isButtonInMoreMenu) => {
|
|
24324
24350
|
const modifierKey = modifier;
|
|
24325
24351
|
const textModifierSelector = this.editorWrapper.getByTestId(NEETO_TEXT_MODIFIER_SELECTORS[modifierKey]);
|
|
24352
|
+
const randomText = await this.fillRandomText();
|
|
24353
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24326
24354
|
await textModifierSelector.click();
|
|
24327
|
-
await test$1.expect(this.contentField
|
|
24355
|
+
await test$1.expect(this.contentField
|
|
24356
|
+
.locator(TEXT_MODIFIER_TAGS[modifierKey])
|
|
24357
|
+
.filter({ hasText: randomText })).toBeVisible();
|
|
24358
|
+
await this.moveCursorAtBottom();
|
|
24359
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24360
|
+
await textModifierSelector.click();
|
|
24361
|
+
return [{ key: modifierKey, value: randomText }];
|
|
24328
24362
|
};
|
|
24329
|
-
this.verifyListModifiers = async (modifier) => {
|
|
24363
|
+
this.verifyListModifiers = async (modifier, isButtonInMoreMenu) => {
|
|
24330
24364
|
const modifierKey = modifier;
|
|
24331
24365
|
const listModifierSelector = this.editorWrapper.getByTestId(LIST_MODIFIER_SELECTORS[modifierKey]);
|
|
24366
|
+
const randomText = await this.fillRandomText();
|
|
24367
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24368
|
+
await listModifierSelector.click();
|
|
24369
|
+
await test$1.expect(this.contentField
|
|
24370
|
+
.locator(LIST_MODIFIER_TAGS[modifierKey])
|
|
24371
|
+
.filter({ hasText: randomText })).toBeVisible();
|
|
24372
|
+
await this.moveCursorAtBottom();
|
|
24373
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24332
24374
|
await listModifierSelector.click();
|
|
24333
|
-
|
|
24375
|
+
return [{ key: modifierKey, value: randomText }];
|
|
24334
24376
|
};
|
|
24335
|
-
this.verifyEditorLinkButton = async (linkUrl) => {
|
|
24377
|
+
this.verifyEditorLinkButton = async (linkUrl, isButtonInMoreMenu) => {
|
|
24378
|
+
const randomText = await this.fillRandomText();
|
|
24379
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24336
24380
|
await this.editorLinkButton.click();
|
|
24337
24381
|
await this.page
|
|
24338
24382
|
.getByTestId(NEETO_EDITOR_SELECTORS.addLinkUrlInput)
|
|
@@ -24342,10 +24386,12 @@ class EditorPage {
|
|
|
24342
24386
|
.click();
|
|
24343
24387
|
const linkRole = DESCRIPTION_EDITOR_TEXTS.link;
|
|
24344
24388
|
await test$1.expect(this.contentField.getByRole(linkRole)).toBeVisible();
|
|
24345
|
-
await this.
|
|
24389
|
+
await this.moveCursorAtBottom();
|
|
24390
|
+
return [{ key: "link", value: randomText }];
|
|
24346
24391
|
};
|
|
24347
|
-
this.verifyEditorAttachmentsButton = async (filePath) => {
|
|
24392
|
+
this.verifyEditorAttachmentsButton = async (filePath, isButtonInMoreMenu, shouldRemoveAttachment = false) => {
|
|
24348
24393
|
const fileUploaderPromise = this.page.waitForEvent("filechooser");
|
|
24394
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24349
24395
|
await this.editorAttachmentsButton.click();
|
|
24350
24396
|
const fileUploader = await fileUploaderPromise;
|
|
24351
24397
|
const imagePath = Path__namespace.join(__dirname, filePath);
|
|
@@ -24354,18 +24400,22 @@ class EditorPage {
|
|
|
24354
24400
|
responseUrl: ROUTES.attachment,
|
|
24355
24401
|
});
|
|
24356
24402
|
await test$1.expect(this.attachmentPreview).toBeVisible();
|
|
24357
|
-
|
|
24358
|
-
.
|
|
24359
|
-
|
|
24360
|
-
|
|
24361
|
-
.
|
|
24362
|
-
|
|
24363
|
-
|
|
24364
|
-
.
|
|
24365
|
-
|
|
24366
|
-
|
|
24403
|
+
if (shouldRemoveAttachment) {
|
|
24404
|
+
await this.attachmentPreview
|
|
24405
|
+
.getByTestId(COMMON_SELECTORS.dropdownIcon)
|
|
24406
|
+
.click();
|
|
24407
|
+
await this.page
|
|
24408
|
+
.getByTestId(NEETO_EDITOR_SELECTORS.attachmentPreviewDeleteButton)
|
|
24409
|
+
.click();
|
|
24410
|
+
await this.page
|
|
24411
|
+
.getByTestId(COMMON_SELECTORS.alertModalSubmitButton)
|
|
24412
|
+
.click();
|
|
24413
|
+
await test$1.expect(this.attachmentPreview).toBeHidden({ timeout: 10000 });
|
|
24414
|
+
}
|
|
24415
|
+
return [{ key: "attachments", value: filePath }];
|
|
24367
24416
|
};
|
|
24368
|
-
this.verifyImageUploadOption = async ({ imageUrl, filePath, }) => {
|
|
24417
|
+
this.verifyImageUploadOption = async ({ imageUrl, filePath, isButtonInMoreMenu, shouldRemoveImage = false, }) => {
|
|
24418
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24369
24419
|
await this.imageUploadOption.click();
|
|
24370
24420
|
const fileUploaderPromise = this.page.waitForEvent("filechooser");
|
|
24371
24421
|
await this.page
|
|
@@ -24380,8 +24430,7 @@ class EditorPage {
|
|
|
24380
24430
|
await test$1.expect(this.imageWrapper).toBeHidden({
|
|
24381
24431
|
timeout: 15000,
|
|
24382
24432
|
});
|
|
24383
|
-
(await this.
|
|
24384
|
-
(await this.moreMenuSelector.click());
|
|
24433
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24385
24434
|
await this.imageUploadOption.click();
|
|
24386
24435
|
await this.page
|
|
24387
24436
|
.getByTestId(NEETO_EDITOR_SELECTORS.imageUploadLinkButton)
|
|
@@ -24393,13 +24442,19 @@ class EditorPage {
|
|
|
24393
24442
|
.getByTestId(NEETO_EDITOR_SELECTORS.imageUploadLinkSubmitButton)
|
|
24394
24443
|
.click();
|
|
24395
24444
|
await test$1.expect(this.imageWrapper).toBeVisible({ timeout: 15000 });
|
|
24396
|
-
|
|
24397
|
-
|
|
24398
|
-
|
|
24399
|
-
|
|
24400
|
-
|
|
24445
|
+
if (shouldRemoveImage) {
|
|
24446
|
+
await this.imageWrapper
|
|
24447
|
+
.getByTestId(COMMON_SELECTORS.dropdownIcon)
|
|
24448
|
+
.click();
|
|
24449
|
+
await this.imageUploadDeleteButton.click();
|
|
24450
|
+
await test$1.expect(this.imageWrapper).toBeHidden({
|
|
24451
|
+
timeout: 15000,
|
|
24452
|
+
});
|
|
24453
|
+
}
|
|
24454
|
+
return [{ key: "image-upload", value: imageUrl }];
|
|
24401
24455
|
};
|
|
24402
|
-
this.verifyCannedResponseOption = async (cannedResponseSuccessMessage) => {
|
|
24456
|
+
this.verifyCannedResponseOption = async (isButtonInMoreMenu, cannedResponseSuccessMessage) => {
|
|
24457
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24403
24458
|
await this.cannedResponseOption.click();
|
|
24404
24459
|
await test$1.expect(this.page.getByTestId(COMMON_SELECTORS.paneHeader)).toContainText(DESCRIPTION_EDITOR_TEXTS.cannedResponseHeader);
|
|
24405
24460
|
await this.page
|
|
@@ -24412,23 +24467,32 @@ class EditorPage {
|
|
|
24412
24467
|
await this.neetoPlaywrightUtilities.verifyToast({
|
|
24413
24468
|
message: cannedResponseSuccessMessage,
|
|
24414
24469
|
});
|
|
24470
|
+
return [
|
|
24471
|
+
{ key: "canned-responses", value: cannedResponseSuccessMessage },
|
|
24472
|
+
];
|
|
24415
24473
|
};
|
|
24416
|
-
this.verifyVideoEmbedOption = async (videoUrl) => {
|
|
24474
|
+
this.verifyVideoEmbedOption = async (videoUrl, isButtonInMoreMenu, shouldRemoveVideo = false) => {
|
|
24475
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24417
24476
|
await this.videoEmbedOption.click();
|
|
24418
24477
|
await this.videoEmbedInput.fill(videoUrl);
|
|
24419
24478
|
await this.page
|
|
24420
24479
|
.getByTestId(NEETO_EDITOR_SELECTORS.videoEmbedSubmit)
|
|
24421
24480
|
.click();
|
|
24422
24481
|
await test$1.expect(this.videoWrapperSelector).toBeVisible({ timeout: 15000 });
|
|
24423
|
-
|
|
24424
|
-
.
|
|
24425
|
-
|
|
24426
|
-
|
|
24427
|
-
|
|
24428
|
-
|
|
24429
|
-
|
|
24482
|
+
if (shouldRemoveVideo) {
|
|
24483
|
+
await this.videoWrapperSelector
|
|
24484
|
+
.getByTestId(COMMON_SELECTORS.dropdownIcon)
|
|
24485
|
+
.click();
|
|
24486
|
+
await this.imageUploadDeleteButton.click();
|
|
24487
|
+
await test$1.expect(this.videoWrapperSelector).toBeHidden({
|
|
24488
|
+
timeout: 15000,
|
|
24489
|
+
});
|
|
24490
|
+
}
|
|
24491
|
+
return [{ key: "video-embed", value: videoUrl }];
|
|
24430
24492
|
};
|
|
24431
|
-
this.verifyEmojiSelector = async () => {
|
|
24493
|
+
this.verifyEmojiSelector = async (isButtonInMoreMenu) => {
|
|
24494
|
+
const emoji = "👍";
|
|
24495
|
+
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
24432
24496
|
await this.emojiSelector.click();
|
|
24433
24497
|
const emojiContainer = this.page.getByTestId(NEETO_EDITOR_SELECTORS.emojiContainer);
|
|
24434
24498
|
await test$1.expect(emojiContainer).toBeVisible({
|
|
@@ -24438,8 +24502,9 @@ class EditorPage {
|
|
|
24438
24502
|
.getByPlaceholder(DESCRIPTION_EDITOR_TEXTS.search)
|
|
24439
24503
|
.fill(EMOJI_LABEL);
|
|
24440
24504
|
await this.page.keyboard.press("Enter");
|
|
24441
|
-
await test$1.expect(this.contentField).toContainText(
|
|
24505
|
+
await test$1.expect(this.contentField).toContainText(emoji);
|
|
24442
24506
|
await this.page.keyboard.press("Escape");
|
|
24507
|
+
return [{ key: "emoji", value: emoji }];
|
|
24443
24508
|
};
|
|
24444
24509
|
this.verifyDynamicVariables = async (dynamicVariables) => {
|
|
24445
24510
|
for (const { key, value } of dynamicVariables) {
|
|
@@ -24452,62 +24517,72 @@ class EditorPage {
|
|
|
24452
24517
|
}
|
|
24453
24518
|
};
|
|
24454
24519
|
this.buttonsAndVerifications = {
|
|
24455
|
-
"font-size": this.verifyFontSize,
|
|
24456
|
-
emoji: this.verifyEmojiSelector,
|
|
24457
|
-
bold:
|
|
24458
|
-
italic:
|
|
24459
|
-
code:
|
|
24460
|
-
blockquote:
|
|
24461
|
-
codeBlock:
|
|
24462
|
-
underline:
|
|
24463
|
-
strike:
|
|
24464
|
-
highlight:
|
|
24465
|
-
bulletList:
|
|
24466
|
-
orderedList:
|
|
24467
|
-
link:
|
|
24468
|
-
attachments:
|
|
24469
|
-
"image-upload":
|
|
24520
|
+
"font-size": () => this.verifyFontSize(),
|
|
24521
|
+
emoji: isButtonInMoreMenu => this.verifyEmojiSelector(isButtonInMoreMenu),
|
|
24522
|
+
bold: isButtonInMoreMenu => this.verifyTextModifiers("bold", isButtonInMoreMenu),
|
|
24523
|
+
italic: isButtonInMoreMenu => this.verifyTextModifiers("italic", isButtonInMoreMenu),
|
|
24524
|
+
code: isButtonInMoreMenu => this.verifyTextModifiers("code", isButtonInMoreMenu),
|
|
24525
|
+
blockquote: isButtonInMoreMenu => this.verifyTextModifiers("blockquote", isButtonInMoreMenu),
|
|
24526
|
+
codeBlock: isButtonInMoreMenu => this.verifyTextModifiers("codeBlock", isButtonInMoreMenu),
|
|
24527
|
+
underline: isButtonInMoreMenu => this.verifyTextDeskModifier("underline", isButtonInMoreMenu),
|
|
24528
|
+
strike: isButtonInMoreMenu => this.verifyTextDeskModifier("strike", isButtonInMoreMenu),
|
|
24529
|
+
highlight: isButtonInMoreMenu => this.verifyTextDeskModifier("highlight", isButtonInMoreMenu),
|
|
24530
|
+
bulletList: isButtonInMoreMenu => this.verifyListModifiers("bulletList", isButtonInMoreMenu),
|
|
24531
|
+
orderedList: isButtonInMoreMenu => this.verifyListModifiers("orderedList", isButtonInMoreMenu),
|
|
24532
|
+
link: isButtonInMoreMenu => this.verifyEditorLinkButton(this.linkUrl, isButtonInMoreMenu),
|
|
24533
|
+
attachments: isButtonInMoreMenu => this.verifyEditorAttachmentsButton(this.filePath, isButtonInMoreMenu),
|
|
24534
|
+
"image-upload": isButtonInMoreMenu => this.verifyImageUploadOption({
|
|
24470
24535
|
imageUrl: this.imageUrl,
|
|
24471
24536
|
filePath: this.filePath,
|
|
24537
|
+
isButtonInMoreMenu,
|
|
24472
24538
|
}),
|
|
24473
|
-
"canned-responses": this.verifyCannedResponseOption,
|
|
24474
|
-
"video-embed":
|
|
24539
|
+
"canned-responses": isButtonInMoreMenu => this.verifyCannedResponseOption(isButtonInMoreMenu),
|
|
24540
|
+
"video-embed": isButtonInMoreMenu => this.verifyVideoEmbedOption(this.videoUrl, isButtonInMoreMenu),
|
|
24475
24541
|
};
|
|
24476
|
-
this.verifyDescriptionEditor = async ({
|
|
24542
|
+
this.verifyDescriptionEditor = async ({ dynamicVariables, linkUrl, filePath, imageUrl, videoUrl, cannedResponseSuccessMessage, } = {}) => {
|
|
24477
24543
|
const fixedMenuButtons = await this.fixedMenuOptions();
|
|
24478
24544
|
let moreMenuButtons = [];
|
|
24479
24545
|
(await this.moreMenuSelector.isVisible()) &&
|
|
24480
24546
|
(moreMenuButtons = await this.moreMenuOptions());
|
|
24481
|
-
const needToSkipDisabling = [
|
|
24482
|
-
"link",
|
|
24483
|
-
"attachments",
|
|
24484
|
-
"image-upload",
|
|
24485
|
-
"canned-responses",
|
|
24486
|
-
"video-embed",
|
|
24487
|
-
"emoji",
|
|
24488
|
-
];
|
|
24489
24547
|
this.linkUrl = linkUrl || this.linkUrl;
|
|
24490
24548
|
this.filePath = filePath || this.filePath;
|
|
24491
24549
|
this.imageUrl = imageUrl || this.imageUrl;
|
|
24492
24550
|
this.videoUrl = videoUrl || this.videoUrl;
|
|
24493
24551
|
this.cannedResponseSuccessMessage = cannedResponseSuccessMessage;
|
|
24494
|
-
|
|
24495
|
-
for (const button of fixedMenuButtons) {
|
|
24496
|
-
|
|
24497
|
-
await this.buttonsAndVerifications[button]();
|
|
24498
|
-
|
|
24499
|
-
(await this.editorWrapper.getByTestId(optionSelector(button)).click());
|
|
24500
|
-
}
|
|
24501
|
-
for (const button of moreMenuButtons) {
|
|
24502
|
-
await this.contentField.click({ clickCount: 3 });
|
|
24503
|
-
await this.moreMenuSelector.click();
|
|
24504
|
-
await this.buttonsAndVerifications[button]();
|
|
24505
|
-
if (!needToSkipDisabling.includes(button)) {
|
|
24506
|
-
await this.moreMenuSelector.click();
|
|
24507
|
-
await this.editorWrapper.getByTestId(optionSelector(button)).click();
|
|
24508
|
-
}
|
|
24552
|
+
const keysAndValues = [];
|
|
24553
|
+
for (const button of [...fixedMenuButtons, ...moreMenuButtons]) {
|
|
24554
|
+
const isMoreMenuButton = moreMenuButtons.includes(button);
|
|
24555
|
+
const keyValuesForButton = await this.buttonsAndVerifications[button](isMoreMenuButton);
|
|
24556
|
+
keysAndValues.push(...keyValuesForButton);
|
|
24509
24557
|
}
|
|
24510
24558
|
dynamicVariables && (await this.verifyDynamicVariables(dynamicVariables));
|
|
24559
|
+
return keysAndValues;
|
|
24560
|
+
};
|
|
24561
|
+
this.moveCursorAtBottom = async () => {
|
|
24562
|
+
const platform = require$$0$2.platform();
|
|
24563
|
+
if (platform === "darwin") {
|
|
24564
|
+
await this.page.keyboard.press("Meta+ArrowRight");
|
|
24565
|
+
await this.page.keyboard.press("Meta+ArrowDown");
|
|
24566
|
+
}
|
|
24567
|
+
else {
|
|
24568
|
+
await this.page.keyboard.press("End");
|
|
24569
|
+
await this.page.keyboard.press("PageDown");
|
|
24570
|
+
}
|
|
24571
|
+
await this.page.keyboard.press("Enter");
|
|
24572
|
+
};
|
|
24573
|
+
this.fillRandomText = async () => {
|
|
24574
|
+
let randomText;
|
|
24575
|
+
do {
|
|
24576
|
+
randomText = faker.faker.lorem.word(10);
|
|
24577
|
+
} while (this.wordsUsedInEditor.includes(randomText));
|
|
24578
|
+
await this.contentField.click();
|
|
24579
|
+
await this.moveCursorAtBottom();
|
|
24580
|
+
await this.page.keyboard.type(randomText);
|
|
24581
|
+
this.wordsUsedInEditor.push(randomText);
|
|
24582
|
+
const randomTextLocator = this.contentField.getByText(randomText);
|
|
24583
|
+
await randomTextLocator.scrollIntoViewIfNeeded();
|
|
24584
|
+
await randomTextLocator.click({ clickCount: 3 });
|
|
24585
|
+
return randomText;
|
|
24511
24586
|
};
|
|
24512
24587
|
this.page = page;
|
|
24513
24588
|
this.neetoPlaywrightUtilities = neetoPlaywrightUtilities;
|