Skip to content

Commit b28a74c

Browse files
committed
maint(pat auto submit): Use JS submit event instead of jQuery.
1 parent 321845a commit b28a74c

File tree

3 files changed

+28
-12
lines changed

3 files changed

+28
-12
lines changed

src/pat/auto-submit/auto-submit.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import "../../core/jquery-ext";
22
import $ from "jquery";
33
import Base from "../../core/base";
4+
import events from "../../core/events";
45
import input_change_events from "../../lib/input-change-events";
56
import logging from "../../core/logging";
67
import Parser from "../../core/parser";
@@ -43,7 +44,7 @@ export default Base.extend({
4344
data?.pattern === "sortable"
4445
) {
4546
// Directly submit when removing a clone or changing the sorting.
46-
this.$el.submit();
47+
this.el.dispatchEvent(events.submit_event());
4748
log.debug(
4849
`triggered by pat-update, pattern: ${data.pattern}, action: ${data.action}`
4950
);
@@ -119,7 +120,7 @@ export default Base.extend({
119120

120121
onInputChange(e) {
121122
e.stopPropagation();
122-
this.$el.submit();
123+
this.el.dispatchEvent(events.submit_event());
123124
log.debug("triggered by " + e.type);
124125
},
125126
});

src/pat/auto-submit/auto-submit.test.js

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ describe("pat-autosubmit", function () {
6969
});
7070

7171
describe("2 - Trigger a submit", function () {
72-
it("when a change on a single input happens", async function () {
72+
it("when a change on a single input happens", function () {
7373
document.body.innerHTML = `
7474
<form>
7575
<input
@@ -82,10 +82,13 @@ describe("pat-autosubmit", function () {
8282
`;
8383
const input = document.querySelector(".pat-autosubmit");
8484
const instance = new Pattern(input);
85-
const spy = jest.spyOn(instance.$el, "submit");
85+
let called = false;
86+
instance.el.addEventListener("submit", (e) => {
87+
e.preventDefault();
88+
called = true;
89+
});
8690
input.dispatchEvent(events.input_event());
87-
await utils.timeout(1);
88-
expect(spy).toHaveBeenCalled();
91+
expect(called).toBe(true);
8992
});
9093

9194
it("when pat-clone removes an element", function () {
@@ -95,9 +98,13 @@ describe("pat-autosubmit", function () {
9598
`;
9699
const el = document.querySelector(".pat-autosubmit");
97100
const instance = new Pattern(el);
98-
const spy = jest.spyOn(instance.$el, "submit");
101+
let called = false;
102+
instance.el.addEventListener("submit", (e) => {
103+
e.preventDefault();
104+
called = true;
105+
});
99106
$(el).trigger("pat-update", { pattern: "clone", action: "remove" });
100-
expect(spy).toHaveBeenCalled();
107+
expect(called).toBe(true);
101108
});
102109

103110
it("when pat-sortable changes the sorting", function () {
@@ -107,9 +114,13 @@ describe("pat-autosubmit", function () {
107114
`;
108115
const el = document.querySelector(".pat-autosubmit");
109116
const instance = new Pattern(el);
110-
const spy = jest.spyOn(instance.$el, "submit");
117+
let called = false;
118+
instance.el.addEventListener("submit", (e) => {
119+
e.preventDefault();
120+
called = true;
121+
});
111122
$(el).trigger("pat-update", { pattern: "sortable" });
112-
expect(spy).toHaveBeenCalled();
123+
expect(called).toBe(true);
113124
});
114125
});
115126

src/pat/auto-suggest/auto-suggest.test.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,13 +292,17 @@ describe("pat-autosuggest", function () {
292292
const input = document.querySelector("input");
293293
new pattern(input);
294294
const instance_autosubmit = new pattern_autosubmit(input);
295-
const spy = jest.spyOn(instance_autosubmit.$el, "submit");
295+
let called = false;
296+
instance_autosubmit.el.addEventListener("submit", (e) => {
297+
e.preventDefault();
298+
called = true;
299+
});
296300
await utils.timeout(1); // wait a tick for async to settle.
297301

298302
$(".select2-input").click();
299303
$(document.querySelector(".select2-result")).mouseup();
300304

301-
expect(spy).toHaveBeenCalled();
305+
expect(called).toBe(true);
302306
});
303307
});
304308
});

0 commit comments

Comments
 (0)