@@ -134,10 +134,17 @@ describe("pat-autosubmit", function () {
134134 </form>
135135 ` ;
136136 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+
139145 $ ( el ) . trigger ( "pat-update" , { pattern : "clone" , action : "removed" } ) ;
140- expect ( spy ) . toHaveBeenCalled ( ) ;
146+
147+ expect ( submit_dispatched ) . toBe ( true ) ;
141148 } ) ;
142149
143150 it ( "2.4 - when pat-sortable changes the sorting" , function ( ) {
@@ -146,10 +153,50 @@ describe("pat-autosubmit", function () {
146153 </form>
147154 ` ;
148155 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+
151164 $ ( 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 ) ;
153200 } ) ;
154201 } ) ;
155202
0 commit comments