@@ -225,4 +225,87 @@ describe("hx-include attribute", function() {
225225 btn . innerHTML . should . equal ( "Clicked!" ) ;
226226 } )
227227
228+ it ( '`inherit` can be used to expand parent hx-include' , function ( ) {
229+ this . server . respondWith ( "POST" , "/include" , function ( xhr ) {
230+ var params = getParameters ( xhr ) ;
231+ params [ 'i1' ] . should . equal ( "test1" ) ;
232+ params [ 'i2' ] . should . equal ( "test2" ) ;
233+ xhr . respond ( 200 , { } , "Clicked!" )
234+ } ) ;
235+ make ( '<div hx-include="#i1">' +
236+ ' <button id="btn" hx-include="inherit, #i2" hx-post="/include"></button>' +
237+ '</div>' +
238+ '<input id="i1" name="i1" value="test1"/>' +
239+ '<input id="i2" name="i2" value="test2"/>' ) ;
240+ var btn = byId ( 'btn' )
241+ btn . click ( ) ;
242+ this . server . respond ( ) ;
243+ btn . innerHTML . should . equal ( "Clicked!" ) ;
244+ } )
245+
246+ it ( '`inherit` can be used to expand multiple parents hx-include' , function ( ) {
247+ this . server . respondWith ( "POST" , "/include" , function ( xhr ) {
248+ var params = getParameters ( xhr ) ;
249+ params [ 'i1' ] . should . equal ( "test1" ) ;
250+ params [ 'i2' ] . should . equal ( "test2" ) ;
251+ params [ 'i3' ] . should . equal ( "test3" ) ;
252+ xhr . respond ( 200 , { } , "Clicked!" )
253+ } ) ;
254+ make ( '<div hx-include="#i1">' +
255+ ' <div hx-include="inherit, #i2">' +
256+ ' <button id="btn" hx-include="inherit, #i3" hx-post="/include"></button>' +
257+ ' </div>' +
258+ '</div>' +
259+ '<input id="i1" name="i1" value="test1"/>' +
260+ '<input id="i2" name="i2" value="test2"/>' +
261+ '<input id="i3" name="i3" value="test3"/>' ) ;
262+ var btn = byId ( 'btn' )
263+ btn . click ( ) ;
264+ this . server . respond ( ) ;
265+ btn . innerHTML . should . equal ( "Clicked!" ) ;
266+ } )
267+
268+ it ( '`inherit` chain breaks properly' , function ( ) {
269+ this . server . respondWith ( "POST" , "/include" , function ( xhr ) {
270+ var params = getParameters ( xhr ) ;
271+ should . not . exist ( params [ 'i1' ] )
272+ params [ 'i2' ] . should . equal ( "test2" ) ;
273+ params [ 'i3' ] . should . equal ( "test3" ) ;
274+ xhr . respond ( 200 , { } , "Clicked!" )
275+ } ) ;
276+ make ( '<div hx-include="#i1">' +
277+ ' <div hx-include="#i2">' +
278+ ' <button id="btn" hx-include="inherit, #i3" hx-post="/include"></button>' +
279+ ' </div>' +
280+ '</div>' +
281+ '<input id="i1" name="i1" value="test1"/>' +
282+ '<input id="i2" name="i2" value="test2"/>' +
283+ '<input id="i3" name="i3" value="test3"/>' ) ;
284+ var btn = byId ( 'btn' )
285+ btn . click ( ) ;
286+ this . server . respond ( ) ;
287+ btn . innerHTML . should . equal ( "Clicked!" ) ;
288+ } )
289+
290+ it ( '`inherit` syntax regex properly catches keyword' , function ( ) {
291+ this . server . respondWith ( "POST" , "/include" , function ( xhr ) {
292+ var params = getParameters ( xhr ) ;
293+ params [ 'i1' ] . should . equal ( "test1" ) ;
294+ params [ 'i2' ] . should . equal ( "test2" ) ;
295+ params [ 'i3' ] . should . equal ( "test3" ) ;
296+ xhr . respond ( 200 , { } , "Clicked!" )
297+ } ) ;
298+ make ( '<div hx-include="#i1">' +
299+ ' <div hx-include="#i2, inherit,.nonexistent-class">' +
300+ ' <button id="btn" hx-include="customtag,inherit , #i3" hx-post="/include"></button>' +
301+ ' </div>' +
302+ '</div>' +
303+ '<input id="i1" name="i1" value="test1"/>' +
304+ '<input id="i2" name="i2" value="test2"/>' +
305+ '<input id="i3" name="i3" value="test3"/>' ) ;
306+ var btn = byId ( 'btn' )
307+ btn . click ( ) ;
308+ this . server . respond ( ) ;
309+ btn . innerHTML . should . equal ( "Clicked!" ) ;
310+ } )
228311} ) ;
0 commit comments