@@ -272,6 +272,54 @@ describe("core.dom tests", () => {
272272 done ( ) ;
273273 } ) ;
274274
275+ it ( "Support multiple root nodes" , ( done ) => {
276+ const el1 = document . createElement ( "div" ) ;
277+ el1 . className = "el1" ;
278+ const el2 = document . createElement ( "span" ) ;
279+ el2 . className = "el2" ;
280+ const el3 = document . createElement ( "div" ) ;
281+ el3 . className = "el3" ;
282+
283+ const ret = dom . querySelectorAllAndMe ( [ el1 , el2 , el3 ] , "div" ) ;
284+ const ids = ret . map ( el => el . className ) . sort ( ) . join ( " " ) ;
285+
286+ expect ( ret . length ) . toBe ( 2 ) ;
287+ expect ( ids ) . toBe ( "el1 el3" ) ;
288+
289+ done ( ) ;
290+ } ) ;
291+
292+ it ( "Support nesting" , ( done ) => {
293+ const el1 = document . createElement ( "div" ) ;
294+ el1 . className = "el1" ;
295+ el1 . innerHTML = '<div class="el11"></div>' ;
296+ const el2 = document . createElement ( "span" ) ;
297+ el2 . className = "el2" ;
298+ const el3 = document . createElement ( "div" ) ;
299+ el3 . className = "el3" ;
300+
301+ const ret = dom . querySelectorAllAndMe ( [ el1 , el2 , el3 ] , "div" ) ;
302+ const ids = ret . map ( el => el . className ) . sort ( ) . join ( " " ) ;
303+
304+ expect ( ret . length ) . toBe ( 3 ) ;
305+ expect ( ids ) . toBe ( "el1 el11 el3" ) ;
306+
307+ done ( ) ;
308+ } ) ;
309+
310+ it ( "Does not return the same element twice" , ( done ) => {
311+ const el1 = document . createElement ( "div" ) ;
312+ el1 . className = "el1" ;
313+
314+ const ret = dom . querySelectorAllAndMe ( [ el1 , el1 , el1 ] , "div" ) ;
315+ const ids = ret . map ( el => el . className ) . sort ( ) . join ( " " ) ;
316+
317+ expect ( ret . length ) . toBe ( 1 ) ;
318+ expect ( ids ) . toBe ( "el1" ) ;
319+
320+ done ( ) ;
321+ } ) ;
322+
275323 it ( "return empty list, if no element is passed." , ( done ) => {
276324 const res = dom . querySelectorAllAndMe ( ) ;
277325 expect ( Array . isArray ( res ) ) . toBe ( true ) ;
0 commit comments