@@ -134,10 +134,17 @@ describe("pat-autosubmit", function () {
134
134
</form>
135
135
` ;
136
136
const el = document . querySelector ( ".pat-autosubmit" ) ;
137
- const instance = new Pattern ( el ) ;
138
- const spy = jest . spyOn ( instance . $el , "submit" ) ;
137
+
138
+ let submit_dispatched = false ;
139
+ el . addEventListener ( "submit" , ( ) => {
140
+ submit_dispatched = true ;
141
+ } ) ;
142
+
143
+ new Pattern ( el ) ;
144
+
139
145
$ ( el ) . trigger ( "pat-update" , { pattern : "clone" , action : "removed" } ) ;
140
- expect ( spy ) . toHaveBeenCalled ( ) ;
146
+
147
+ expect ( submit_dispatched ) . toBe ( true ) ;
141
148
} ) ;
142
149
143
150
it ( "2.4 - when pat-sortable changes the sorting" , function ( ) {
@@ -146,10 +153,50 @@ describe("pat-autosubmit", function () {
146
153
</form>
147
154
` ;
148
155
const el = document . querySelector ( ".pat-autosubmit" ) ;
149
- const instance = new Pattern ( el ) ;
150
- const spy = jest . spyOn ( instance . $el , "submit" ) ;
156
+
157
+ let submit_dispatched = false ;
158
+ el . addEventListener ( "submit" , ( ) => {
159
+ submit_dispatched = true ;
160
+ } ) ;
161
+
162
+ new Pattern ( el ) ;
163
+
151
164
$ ( el ) . trigger ( "pat-update" , { pattern : "sortable" } ) ;
152
- expect ( spy ) . toHaveBeenCalled ( ) ;
165
+
166
+ expect ( submit_dispatched ) . toBe ( true ) ;
167
+ } ) ;
168
+
169
+ it ( "2.5 - when a change on a single input happens with delay option" , async function ( ) {
170
+ document . body . innerHTML = `
171
+ <form>
172
+ <input
173
+ class="pat-autosubmit"
174
+ type="text"
175
+ name="q"
176
+ data-pat-autosubmit="delay: 20"
177
+ />
178
+ </form>
179
+ ` ;
180
+ const input = document . querySelector ( ".pat-autosubmit" ) ;
181
+ new Pattern ( input ) ;
182
+ let submit_input_dispatched = false ;
183
+ let submit_form_dispatched = false ;
184
+ input . addEventListener ( "submit" , ( ) => {
185
+ submit_input_dispatched = true ;
186
+ } ) ;
187
+ document . querySelector ( "form" ) . addEventListener ( "submit" , ( ) => {
188
+ submit_form_dispatched = true ;
189
+ } ) ;
190
+ input . dispatchEvent ( events . input_event ( ) ) ;
191
+ await utils . timeout ( 1 ) ;
192
+ expect ( submit_input_dispatched ) . toBe ( false ) ;
193
+ expect ( submit_form_dispatched ) . toBe ( false ) ;
194
+ await utils . timeout ( 9 ) ;
195
+ expect ( submit_input_dispatched ) . toBe ( false ) ;
196
+ expect ( submit_form_dispatched ) . toBe ( false ) ;
197
+ await utils . timeout ( 10 ) ;
198
+ expect ( submit_input_dispatched ) . toBe ( true ) ;
199
+ expect ( submit_form_dispatched ) . toBe ( true ) ;
153
200
} ) ;
154
201
} ) ;
155
202
0 commit comments