@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 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 = JSON.parse(content).webhook;
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 (defaultFontSizeOption) => {
13906
- await this.editorWrapper
13907
- .getByTestId(NEETO_EDITOR_SELECTORS.fontSizeDropdown(defaultFontSizeOption))
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 this.editorWrapper
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, defaultFontSizeOption = "Paragraph", linkUrl = faker.faker.internet.url(), filePath = "../../../e2e/assets/images/BigBinary.png", imageUrl = "https://picsum.photos/200/300", videoUrl = "https://youtu.be/jNQXAC9IVRw", cannedResponseSuccessMessage, }) => {
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(defaultFontSizeOption);
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;