@@ -336,4 +336,88 @@ describe('hx-include attribute', function() {
336336 this . server . respond ( )
337337 btn . innerHTML . should . equal ( 'Clicked!' )
338338 } )
339+
340+ it ( '`inherit` can be used to expand parent hx-include' , function ( ) {
341+ this . server . respondWith ( 'POST' , '/include' , function ( xhr ) {
342+ var params = getParameters ( xhr )
343+ params . i1 . should . equal ( 'test1' )
344+ params . i2 . should . equal ( 'test2' )
345+ xhr . respond ( 200 , { } , 'Clicked!' )
346+ } )
347+ make ( '<div hx-include="#i1">' +
348+ ' <button id="btn" hx-include="inherit, #i2" hx-post="/include"></button>' +
349+ '</div>' +
350+ '<input id="i1" name="i1" value="test1"/>' +
351+ '<input id="i2" name="i2" value="test2"/>' )
352+ var btn = byId ( 'btn' )
353+ btn . click ( )
354+ this . server . respond ( )
355+ btn . innerHTML . should . equal ( 'Clicked!' )
356+ } )
357+
358+ it ( '`inherit` can be used to expand multiple parents hx-include' , function ( ) {
359+ this . server . respondWith ( 'POST' , '/include' , function ( xhr ) {
360+ var params = getParameters ( xhr )
361+ params . i1 . should . equal ( 'test1' )
362+ params . i2 . should . equal ( 'test2' )
363+ params . i3 . should . equal ( 'test3' )
364+ xhr . respond ( 200 , { } , 'Clicked!' )
365+ } )
366+ make ( '<div hx-include="#i1">' +
367+ ' <div hx-include="inherit, #i2">' +
368+ ' <button id="btn" hx-include="inherit, #i3" hx-post="/include"></button>' +
369+ ' </div>' +
370+ '</div>' +
371+ '<input id="i1" name="i1" value="test1"/>' +
372+ '<input id="i2" name="i2" value="test2"/>' +
373+ '<input id="i3" name="i3" value="test3"/>' )
374+ var btn = byId ( 'btn' )
375+ btn . click ( )
376+ this . server . respond ( )
377+ btn . innerHTML . should . equal ( 'Clicked!' )
378+ } )
379+
380+ it ( '`inherit` chain breaks properly' , function ( ) {
381+ this . server . respondWith ( 'POST' , '/include' , function ( xhr ) {
382+ var params = getParameters ( xhr )
383+ should . not . exist ( params . i1 )
384+ params . i2 . should . equal ( 'test2' )
385+ params . i3 . should . equal ( 'test3' )
386+ xhr . respond ( 200 , { } , 'Clicked!' )
387+ } )
388+ make ( '<div hx-include="#i1">' +
389+ ' <div hx-include="#i2">' +
390+ ' <button id="btn" hx-include="inherit, #i3" hx-post="/include"></button>' +
391+ ' </div>' +
392+ '</div>' +
393+ '<input id="i1" name="i1" value="test1"/>' +
394+ '<input id="i2" name="i2" value="test2"/>' +
395+ '<input id="i3" name="i3" value="test3"/>' )
396+ var btn = byId ( 'btn' )
397+ btn . click ( )
398+ this . server . respond ( )
399+ btn . innerHTML . should . equal ( 'Clicked!' )
400+ } )
401+
402+ it ( '`inherit` syntax regex properly catches keyword' , function ( ) {
403+ this . server . respondWith ( 'POST' , '/include' , function ( xhr ) {
404+ var params = getParameters ( xhr )
405+ params . i1 . should . equal ( 'test1' )
406+ params . i2 . should . equal ( 'test2' )
407+ params . i3 . should . equal ( 'test3' )
408+ xhr . respond ( 200 , { } , 'Clicked!' )
409+ } )
410+ make ( '<div hx-include="#i1">' +
411+ ' <div hx-include="#i2, inherit,.nonexistent-class">' +
412+ ' <button id="btn" hx-include="customtag,inherit , #i3" hx-post="/include"></button>' +
413+ ' </div>' +
414+ '</div>' +
415+ '<input id="i1" name="i1" value="test1"/>' +
416+ '<input id="i2" name="i2" value="test2"/>' +
417+ '<input id="i3" name="i3" value="test3"/>' )
418+ var btn = byId ( 'btn' )
419+ btn . click ( )
420+ this . server . respond ( )
421+ btn . innerHTML . should . equal ( 'Clicked!' )
422+ } )
339423} )
0 commit comments