Skip to content

Commit 951084f

Browse files
committed
feat(core events): Standard JavaScript event factories.
Provide a library with standard JavaScript event factories, beginning with ``changed`` and ``submit`` events.
1 parent 31da974 commit 951084f

File tree

2 files changed

+73
-0
lines changed

2 files changed

+73
-0
lines changed

src/core/events.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
const change_event = () => {
2+
return new Event("change", {
3+
bubbles: true,
4+
cancelable: false,
5+
});
6+
};
7+
8+
const input_event = () => {
9+
return new Event("input", {
10+
bubbles: true,
11+
cancelable: false,
12+
});
13+
};
14+
15+
const submit_event = () => {
16+
return new Event("submit", {
17+
bubbles: true,
18+
cancelable: true,
19+
});
20+
};
21+
22+
export default {
23+
change_event: change_event,
24+
input_event: input_event,
25+
submit_event: submit_event,
26+
};

src/core/events.test.js

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import events from "./events";
2+
import utils from "./utils";
3+
4+
describe("core.events tests", () => {
5+
let catched;
6+
let outer;
7+
let inner;
8+
9+
beforeEach(() => {
10+
catched = null;
11+
const el = document.createElement("div");
12+
el.innerHTML = `
13+
<div id="outer">
14+
<div id="inner"></div>
15+
</div>
16+
`;
17+
outer = el.querySelector("#outer");
18+
inner = el.querySelector("#inner");
19+
});
20+
21+
it("change event", async () => {
22+
outer.addEventListener("change", () => {
23+
catched = "outer";
24+
});
25+
inner.dispatchEvent(events.change_event());
26+
await utils.timeout(1);
27+
expect(catched).toBe("outer");
28+
});
29+
30+
it("input event", async () => {
31+
outer.addEventListener("input", () => {
32+
catched = "outer";
33+
});
34+
inner.dispatchEvent(events.input_event());
35+
await utils.timeout(1);
36+
expect(catched).toBe("outer");
37+
});
38+
39+
it("submit event", async () => {
40+
outer.addEventListener("submit", () => {
41+
catched = "outer";
42+
});
43+
inner.dispatchEvent(events.submit_event());
44+
await utils.timeout(1);
45+
expect(catched).toBe("outer");
46+
});
47+
});

0 commit comments

Comments
 (0)