Skip to content

Commit c2ec64e

Browse files
committed
fix: Add a test for the form reset feature fix.
Before modernization the reset button did not reset the placeholders in the pat-content-mirror mirror element. Not it does. This test just shows it, the fix was done in the previous commit.
1 parent 78c3b67 commit c2ec64e

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

src/pat-content-mirror.test.js

+58
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,62 @@ describe("pat-content-mirror", () => {
6161
expect(mirror2.textContent).toBe("this is a test text 2.");
6262
});
6363

64+
it("works with multiple content mirrors, placeholders and form resets.", async () => {
65+
document.body.innerHTML = `
66+
<form>
67+
<p class="mirror-1">
68+
<span class="text">
69+
<em class="placeholder"></em>
70+
</span>
71+
</p>
72+
<textarea
73+
class="txt-1 pat-content-mirror"
74+
data-pat-content-mirror="target:.mirror-1 .text"
75+
placeholder="placeholder 1"></textarea>
76+
77+
<p class="mirror-2">
78+
<span class="text">
79+
<em class="placeholder"></em>
80+
</span>
81+
</p>
82+
<textarea
83+
class="txt-2 pat-content-mirror"
84+
data-pat-content-mirror="target:.mirror-2 .text"
85+
placeholder="placeholder 2"></textarea>
86+
87+
<button type="reset">Reset</button>
88+
</form>
89+
`;
90+
91+
const txt1 = document.querySelector(".txt-1");
92+
const txt2 = document.querySelector(".txt-2");
93+
94+
const mirror1 = document.querySelector(".mirror-1 .text");
95+
const mirror2 = document.querySelector(".mirror-2 .text");
96+
97+
const instance1 = new Pattern(txt1);
98+
const instance2 = new Pattern(txt2);
99+
100+
await events.await_pattern_init(instance1);
101+
await events.await_pattern_init(instance2);
102+
103+
expect(mirror1.textContent.trim()).toBe("placeholder 1");
104+
expect(mirror2.textContent.trim()).toBe("placeholder 2");
105+
106+
txt1.value = "this is a test text 1.";
107+
txt2.value = "this is a test text 2.";
108+
109+
txt1.dispatchEvent(new Event("input"));
110+
txt2.dispatchEvent(new Event("input"));
111+
112+
expect(mirror1.textContent).toBe("this is a test text 1.");
113+
expect(mirror2.textContent).toBe("this is a test text 2.");
114+
115+
const button = document.querySelector("button");
116+
button.click();
117+
118+
expect(mirror1.textContent.trim()).toBe("placeholder 1");
119+
expect(mirror2.textContent).toBe("placeholder 2");
120+
});
121+
64122
});

0 commit comments

Comments
 (0)