Skip to content

Commit ba0062e

Browse files
test: remove skipped number field tests and add validation for numeric input
1 parent a6aaced commit ba0062e

2 files changed

Lines changed: 12 additions & 55 deletions

File tree

src/visualBuilder/__test__/visualBuilderInput.test.tsx

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -661,59 +661,4 @@ describe("When an inline element is edited in visual builder mode", () => {
661661
});
662662
});
663663
});
664-
describe.skip("number field", () => {
665-
let numberField: HTMLParagraphElement;
666-
let visualBuilder: VisualBuilder;
667-
let overlayWrapper: HTMLDivElement;
668-
669-
beforeAll(() => {
670-
(visualBuilderPostMessage?.send as Mock).mockImplementation(
671-
(eventName: string, args) => {
672-
if (
673-
eventName ===
674-
VisualBuilderPostMessageEvents.GET_FIELD_DATA
675-
) {
676-
return Promise.resolve({
677-
fieldData: "87",
678-
});
679-
}
680-
return Promise.resolve({});
681-
}
682-
);
683-
});
684-
685-
beforeEach(() => {
686-
numberField = document.createElement("p");
687-
numberField.setAttribute(
688-
"data-cslp",
689-
"all_fields.bltapikey.en-us.number"
690-
);
691-
numberField.textContent = "87";
692-
document.body.appendChild(numberField);
693-
visualBuilder = new VisualBuilder();
694-
overlayWrapper = document.querySelector(
695-
".visual-builder__overlay__wrapper"
696-
) as HTMLDivElement;
697-
});
698-
699-
afterEach(() => {
700-
visualBuilder.destroy();
701-
});
702-
703-
test("should only accept characters like a number input", async () => {
704-
await userEvent.click(numberField);
705-
await waitFor(() => {
706-
expect(numberField).toHaveAttribute("contenteditable");
707-
});
708-
await userEvent.keyboard("ab56c78e-h10");
709-
710-
await waitFor(() => {
711-
// TODO cursor is placed at the start, instead of the end
712-
// so typed content appears at the start
713-
expect(numberField).toHaveTextContent(`5678e-1087`);
714-
});
715-
});
716-
}, {
717-
timeout: 20 * 1000
718-
});
719664
});

src/visualBuilder/utils/__test__/handleFieldMouseDown.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import * as insertSpaceAtCursor from "../insertSpaceAtCursor";
55
import * as generateOverlay from "../../generators/generateOverlay";
66
import { VisualBuilderPostMessageEvents } from "../types/postMessage.types";
77
import { FieldDataType } from "../types/index.types";
8+
import userEvent from "@testing-library/user-event";
9+
import { waitFor, screen } from "@testing-library/preact";
810

911
vi.mock("lodash-es", async () => ({
1012
...(await import("lodash-es")),
@@ -113,6 +115,16 @@ describe("handle numeric field key down", () => {
113115
h1.dispatchEvent(keyDownEvent);
114116
expect(spiedPreventDefault).toHaveBeenCalledTimes(1);
115117
});
118+
119+
test("should only accept characters like a number input", async () => {
120+
h1.innerHTML = '';
121+
await userEvent.click(h1);
122+
await userEvent.keyboard("ab56c78e-h10");
123+
124+
await waitFor(() => {
125+
expect(h1).toHaveTextContent(`5678e-10`);
126+
});
127+
});
116128
});
117129

118130
describe("handle keydown in button contenteditable", () => {

0 commit comments

Comments
 (0)