@@ -61,4 +61,62 @@ describe("pat-content-mirror", () => {
61
61
expect ( mirror2 . textContent ) . toBe ( "this is a test text 2." ) ;
62
62
} ) ;
63
63
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
+
64
122
} ) ;
0 commit comments