@bigbinary/neeto-playwright-commons 1.10.11 → 1.10.13
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 +32 -16
- package/index.cjs.js.map +1 -1
- package/index.d.ts +39 -3
- package/index.js +32 -16
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.cjs.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var child_process = require('child_process');
|
|
6
5
|
var fs$d = require('fs');
|
|
6
|
+
var Path = require('path');
|
|
7
|
+
var child_process = require('child_process');
|
|
7
8
|
var test$1 = require('@playwright/test');
|
|
8
9
|
var ramda = require('ramda');
|
|
9
10
|
var require$$0$1 = require('util');
|
|
10
|
-
var Path = require('path');
|
|
11
11
|
var faker = require('@faker-js/faker');
|
|
12
12
|
var MailosaurClient = require('mailosaur');
|
|
13
13
|
var dayjs = require('dayjs');
|
|
@@ -52,10 +52,10 @@ function _interopNamespace(e) {
|
|
|
52
52
|
|
|
53
53
|
var fs__namespace = /*#__PURE__*/_interopNamespace(fs$d);
|
|
54
54
|
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs$d);
|
|
55
|
-
var test__default = /*#__PURE__*/_interopDefaultLegacy(test$1);
|
|
56
|
-
var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
|
|
57
55
|
var Path__default = /*#__PURE__*/_interopDefaultLegacy(Path);
|
|
58
56
|
var Path__namespace = /*#__PURE__*/_interopNamespace(Path);
|
|
57
|
+
var test__default = /*#__PURE__*/_interopDefaultLegacy(test$1);
|
|
58
|
+
var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
|
|
59
59
|
var MailosaurClient__default = /*#__PURE__*/_interopDefaultLegacy(MailosaurClient);
|
|
60
60
|
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
61
61
|
var require$$0__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$0$3);
|
|
@@ -378,6 +378,7 @@ const COMMON_SELECTORS = {
|
|
|
378
378
|
submitButton: "submit-button",
|
|
379
379
|
tableRow: ".ant-table-row",
|
|
380
380
|
navigationHeaderLeftBlock: "navigation-header-left-block",
|
|
381
|
+
fileUploadBody: "file-upload-body",
|
|
381
382
|
};
|
|
382
383
|
|
|
383
384
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
@@ -3626,9 +3627,25 @@ class CustomCommands {
|
|
|
3626
3627
|
await uploadFile;
|
|
3627
3628
|
await test$1.expect(this.page.getByTestId(NEETO_IMAGE_UPLOADER_SELECTORS.uploadedImage)).toHaveAttribute("src", new RegExp(imageName), { timeout: 20000 });
|
|
3628
3629
|
};
|
|
3630
|
+
this.uploadFileViaDispatch = async ({ fileNameWithType, assetsPath = "../../../e2e/assets/", dispatchEvent = "drop", droppableZone = this.page.getByTestId(COMMON_SELECTORS.fileUploadBody), }) => {
|
|
3631
|
+
const filePath = Path__default["default"].join(__dirname, `${assetsPath}/${fileNameWithType}`);
|
|
3632
|
+
const buffer = fs$d.readFileSync(filePath).toString("base64");
|
|
3633
|
+
const dataTransfer = await droppableZone.evaluateHandle((_, { buffer, fileNameWithType }) => {
|
|
3634
|
+
var _a;
|
|
3635
|
+
const dataTransfer = new DataTransfer();
|
|
3636
|
+
const fileName = (_a = fileNameWithType.split("/")) === null || _a === void 0 ? void 0 : _a[1];
|
|
3637
|
+
const hexString = Uint8Array.from(atob(buffer), c => c.charCodeAt(0));
|
|
3638
|
+
const file = new File([hexString], fileName);
|
|
3639
|
+
dataTransfer.items.add(file);
|
|
3640
|
+
return dataTransfer;
|
|
3641
|
+
}, { buffer, fileNameWithType });
|
|
3642
|
+
await droppableZone.dispatchEvent(dispatchEvent, { dataTransfer });
|
|
3643
|
+
};
|
|
3629
3644
|
this.verifyTooltip = async ({ triggerElement, content, }) => {
|
|
3630
3645
|
await triggerElement.hover();
|
|
3631
3646
|
await test$1.expect(this.page.getByTestId(COMMON_SELECTORS.tooltip)).toContainText(content);
|
|
3647
|
+
await this.page.mouse.move(0, 0);
|
|
3648
|
+
await test$1.expect(this.page.getByTestId(COMMON_SELECTORS.tooltip)).toBeHidden();
|
|
3632
3649
|
};
|
|
3633
3650
|
this.page = page;
|
|
3634
3651
|
this.responses = [];
|
|
@@ -13516,14 +13533,16 @@ class WebhooksPage {
|
|
|
13516
13533
|
await addWebhook;
|
|
13517
13534
|
await test$1.expect(this.page.getByRole("row", { name: webhookSiteURL })).toBeVisible();
|
|
13518
13535
|
};
|
|
13519
|
-
this.verifyLatestWebhookResponse = async ({ callback = () => { }, webhookToken, ...otherParams }) => {
|
|
13536
|
+
this.verifyLatestWebhookResponse = async ({ callback = () => { }, webhookToken, parseFullResponseContent = false, ...otherParams }) => {
|
|
13520
13537
|
let response;
|
|
13521
13538
|
await test$1.expect(async () => {
|
|
13522
13539
|
response = await this.request.get(`https://webhook.site/token/${webhookToken}/request/latest`);
|
|
13523
13540
|
test$1.expect(response.status()).toBe(200);
|
|
13524
13541
|
if (response.status() === 200) {
|
|
13525
13542
|
const { content } = await response.json();
|
|
13526
|
-
const parsedResponse =
|
|
13543
|
+
const parsedResponse = parseFullResponseContent
|
|
13544
|
+
? JSON.parse(content)
|
|
13545
|
+
: JSON.parse(content).webhook;
|
|
13527
13546
|
callback({ parsedResponse, ...otherParams });
|
|
13528
13547
|
}
|
|
13529
13548
|
}).toPass({ timeout: 20000 });
|
|
@@ -13816,6 +13835,7 @@ const optionSelector = (option) => `neeto-editor-fixed-menu-${option}-option`;
|
|
|
13816
13835
|
const fixedMenuSelector = (selector) => `neeto-editor-fixed-menu-${selector}`;
|
|
13817
13836
|
|
|
13818
13837
|
const NEETO_EDITOR_SELECTORS = {
|
|
13838
|
+
fontSize: optionSelector("font-size"),
|
|
13819
13839
|
boldOption: optionSelector("bold"),
|
|
13820
13840
|
italicOption: optionSelector("italic"),
|
|
13821
13841
|
underlineOption: optionSelector("underline"),
|
|
@@ -13839,7 +13859,6 @@ const NEETO_EDITOR_SELECTORS = {
|
|
|
13839
13859
|
addLinkTextField: "neeto-editor-add-link-text-input",
|
|
13840
13860
|
addURLTextField: "neeto-editor-add-link-url-input",
|
|
13841
13861
|
submitLinkButton: "neeto-editor-add-link",
|
|
13842
|
-
fontSizeDropdown: (currentOption) => `${joinHyphenCase(currentOption)}-dropdown-icon`,
|
|
13843
13862
|
fixedMenuArrow: fixedMenuSelector("arrow"),
|
|
13844
13863
|
cannedResponseOption: optionSelector("canned-responses"),
|
|
13845
13864
|
cannedResponseSelectContainer: "select-a-canned-response-select-container",
|
|
@@ -13902,10 +13921,9 @@ class EditorPage {
|
|
|
13902
13921
|
(await this.moreMenuSelector.click());
|
|
13903
13922
|
return optionLocator.isVisible();
|
|
13904
13923
|
};
|
|
13905
|
-
this.verifyFontSize = async (
|
|
13906
|
-
|
|
13907
|
-
|
|
13908
|
-
.click();
|
|
13924
|
+
this.verifyFontSize = async () => {
|
|
13925
|
+
const fontSizeDropdown = this.editorWrapper.getByTestId(NEETO_EDITOR_SELECTORS.fontSize);
|
|
13926
|
+
await fontSizeDropdown.click();
|
|
13909
13927
|
const fontSize = Object.keys(FONT_SIZE_SELECTORS);
|
|
13910
13928
|
for (const font of fontSize) {
|
|
13911
13929
|
const fontKey = font;
|
|
@@ -13913,9 +13931,7 @@ class EditorPage {
|
|
|
13913
13931
|
.getByTestId(FONT_SIZE_SELECTORS[fontKey])
|
|
13914
13932
|
.click();
|
|
13915
13933
|
await test$1.expect(this.contentField.getByRole("heading", { level: Number(font.slice(1)) })).toBeVisible();
|
|
13916
|
-
await
|
|
13917
|
-
.getByTestId(NEETO_EDITOR_SELECTORS.fontSizeDropdown(EXPANDED_FONT_SIZE[fontKey]))
|
|
13918
|
-
.click();
|
|
13934
|
+
await fontSizeDropdown.click();
|
|
13919
13935
|
}
|
|
13920
13936
|
};
|
|
13921
13937
|
this.verifyTextModifiers = async () => {
|
|
@@ -14075,9 +14091,9 @@ class EditorPage {
|
|
|
14075
14091
|
await test$1.expect(this.contentField.getByText(dynamicVariable)).toBeVisible();
|
|
14076
14092
|
}
|
|
14077
14093
|
};
|
|
14078
|
-
this.verifyDescriptionEditor = async ({ text, dynamicVariables,
|
|
14094
|
+
this.verifyDescriptionEditor = async ({ text, dynamicVariables, linkUrl = faker.faker.internet.url(), filePath = "../../../e2e/assets/images/BigBinary.png", imageUrl = "https://picsum.photos/200/300", videoUrl = "https://youtu.be/jNQXAC9IVRw", cannedResponseSuccessMessage, }) => {
|
|
14079
14095
|
await this.contentField.fill(text);
|
|
14080
|
-
await this.verifyFontSize(
|
|
14096
|
+
await this.verifyFontSize();
|
|
14081
14097
|
if (await this.assertOptionVisibility(this.paragraphSelector)) {
|
|
14082
14098
|
await this.paragraphSelector.click();
|
|
14083
14099
|
const paragraphRole = DESCRIPTION_EDITOR_TEXTS.paragraphOption;
|