@@ -434,4 +434,88 @@ describe('hx-include attribute', function() {
434434 this . server . respond ( )
435435 btn . innerHTML . should . equal ( 'Clicked!' )
436436 } )
437+
438+ it ( '`inherit` can be used to expand parent hx-include' , function ( ) {
439+ this . server . respondWith ( 'POST' , '/include' , function ( xhr ) {
440+ var params = getParameters ( xhr )
441+ params . i1 . should . equal ( 'test1' )
442+ params . i2 . should . equal ( 'test2' )
443+ xhr . respond ( 200 , { } , 'Clicked!' )
444+ } )
445+ make ( '<div hx-include="#i1">' +
446+ ' <button id="btn" hx-include="inherit, #i2" hx-post="/include"></button>' +
447+ '</div>' +
448+ '<input id="i1" name="i1" value="test1"/>' +
449+ '<input id="i2" name="i2" value="test2"/>' )
450+ var btn = byId ( 'btn' )
451+ btn . click ( )
452+ this . server . respond ( )
453+ btn . innerHTML . should . equal ( 'Clicked!' )
454+ } )
455+
456+ it ( '`inherit` can be used to expand multiple parents hx-include' , function ( ) {
457+ this . server . respondWith ( 'POST' , '/include' , function ( xhr ) {
458+ var params = getParameters ( xhr )
459+ params . i1 . should . equal ( 'test1' )
460+ params . i2 . should . equal ( 'test2' )
461+ params . i3 . should . equal ( 'test3' )
462+ xhr . respond ( 200 , { } , 'Clicked!' )
463+ } )
464+ make ( '<div hx-include="#i1">' +
465+ ' <div hx-include="inherit, #i2">' +
466+ ' <button id="btn" hx-include="inherit, #i3" hx-post="/include"></button>' +
467+ ' </div>' +
468+ '</div>' +
469+ '<input id="i1" name="i1" value="test1"/>' +
470+ '<input id="i2" name="i2" value="test2"/>' +
471+ '<input id="i3" name="i3" value="test3"/>' )
472+ var btn = byId ( 'btn' )
473+ btn . click ( )
474+ this . server . respond ( )
475+ btn . innerHTML . should . equal ( 'Clicked!' )
476+ } )
477+
478+ it ( '`inherit` chain breaks properly' , function ( ) {
479+ this . server . respondWith ( 'POST' , '/include' , function ( xhr ) {
480+ var params = getParameters ( xhr )
481+ should . not . exist ( params . i1 )
482+ params . i2 . should . equal ( 'test2' )
483+ params . i3 . should . equal ( 'test3' )
484+ xhr . respond ( 200 , { } , 'Clicked!' )
485+ } )
486+ make ( '<div hx-include="#i1">' +
487+ ' <div hx-include="#i2">' +
488+ ' <button id="btn" hx-include="inherit, #i3" hx-post="/include"></button>' +
489+ ' </div>' +
490+ '</div>' +
491+ '<input id="i1" name="i1" value="test1"/>' +
492+ '<input id="i2" name="i2" value="test2"/>' +
493+ '<input id="i3" name="i3" value="test3"/>' )
494+ var btn = byId ( 'btn' )
495+ btn . click ( )
496+ this . server . respond ( )
497+ btn . innerHTML . should . equal ( 'Clicked!' )
498+ } )
499+
500+ it ( '`inherit` syntax regex properly catches keyword' , function ( ) {
501+ this . server . respondWith ( 'POST' , '/include' , function ( xhr ) {
502+ var params = getParameters ( xhr )
503+ params . i1 . should . equal ( 'test1' )
504+ params . i2 . should . equal ( 'test2' )
505+ params . i3 . should . equal ( 'test3' )
506+ xhr . respond ( 200 , { } , 'Clicked!' )
507+ } )
508+ make ( '<div hx-include="#i1">' +
509+ ' <div hx-include="#i2, inherit,.nonexistent-class">' +
510+ ' <button id="btn" hx-include="customtag,inherit , #i3" hx-post="/include"></button>' +
511+ ' </div>' +
512+ '</div>' +
513+ '<input id="i1" name="i1" value="test1"/>' +
514+ '<input id="i2" name="i2" value="test2"/>' +
515+ '<input id="i3" name="i3" value="test3"/>' )
516+ var btn = byId ( 'btn' )
517+ btn . click ( )
518+ this . server . respond ( )
519+ btn . innerHTML . should . equal ( 'Clicked!' )
520+ } )
437521} )
0 commit comments