@@ -260,41 +260,70 @@ export const test = (test) => {
260
260
) ;
261
261
} ) ;
262
262
263
- test ( "Should allow passing a form element" , ( ) => {
264
- class FakeForm {
265
- get [ Symbol . toStringTag ] ( ) {
266
- return "HTMLFormElement" ;
263
+ test ( "Should allow passing a form element" , ( ) => {
264
+ /** @type {globalThis.HTMLFormElement } */
265
+ let form ;
266
+
267
+ if ( typeof window === 'undefined' ) {
268
+ /** @implements {globalThis.HTMLFormElement} */
269
+ class FakeForm {
270
+ get [ Symbol . toStringTag ] ( ) {
271
+ return "HTMLFormElement" ;
272
+ }
273
+
274
+ toString ( ) {
275
+ return `<form></form>` ;
276
+ }
277
+
278
+ // @ts -ignore
279
+ get elements ( ) {
280
+ return [
281
+ {
282
+ tagName : "INPUT" ,
283
+ name : "inside" ,
284
+ value : "" ,
285
+ } ,
286
+ {
287
+ tagName : "INPUT" ,
288
+ name : "outside" ,
289
+ value : "" ,
290
+ form : "my-form" ,
291
+ } ,
292
+ {
293
+ tagName : "INPUT" ,
294
+ name : "remember-me" ,
295
+ value : "on" ,
296
+ checked : true ,
297
+ }
298
+ ]
299
+ }
300
+
301
+ get id ( ) {
302
+ return "my-form"
303
+ }
267
304
}
268
305
269
- get elements ( ) {
270
- return [
271
- {
272
- tagName : "INPUT" ,
273
- name : "inside" ,
274
- value : "" ,
275
- } ,
276
- {
277
- tagName : "INPUT" ,
278
- name : "outside" ,
279
- value : "" ,
280
- form : "my-form" ,
281
- } ,
282
- {
283
- tagName : "INPUT" ,
284
- name : "remember-me" ,
285
- value : "on" ,
286
- checked : true ,
287
- }
288
- ]
289
- }
290
-
291
- get id ( ) {
292
- return "my-form"
293
- }
306
+ form = /** @type {globalThis.HTMLFormElement } */ ( /** @type {unknown } */ ( new FakeForm ( ) ) )
307
+ } else {
308
+ form = document . createElement ( 'form' ) ;
309
+ let inside = document . createElement ( 'input' )
310
+ let outside = document . createElement ( 'input' )
311
+ let checkbox = document . createElement ( 'input' )
312
+
313
+ form . id = 'my-form'
314
+ inside . name = 'inside'
315
+ outside . name = 'outside'
316
+ outside . setAttribute ( 'form' , 'my-form' )
317
+ checkbox . name = "remember-me"
318
+ checkbox . type = 'checkbox'
319
+ checkbox . checked = true ;
320
+
321
+ form . appendChild ( inside ) ;
322
+ form . appendChild ( checkbox ) ;
323
+ document . body . appendChild ( form ) ;
324
+ document . body . appendChild ( outside ) ;
294
325
}
295
326
296
- let form = /** @type {globalThis.HTMLFormElement } */ ( /** @type {unknown } */ ( new FakeForm ( ) ) )
297
-
298
327
const formData = new FormData ( form ) ;
299
328
assert . equal ( formData . has ( "inside" ) , true )
300
329
assert . equal ( formData . has ( "outside" ) , true )
0 commit comments