describe("hx-boost attribute", function() { beforeEach(function () { this.server = makeServer(); clearWorkArea(); }); afterEach(function () { this.server.restore(); clearWorkArea(); }); it('handles basic anchor properly', function () { this.server.respondWith("GET", "/test", "Boosted"); var div = make('
'); var a = byId('a1'); a.click(); this.server.respond(); div.innerHTML.should.equal("Boosted"); }) it('handles basic form post properly', function () { this.server.respondWith("POST", "/test", "Boosted"); var div = make(''); var btn = byId('b1'); btn.click(); this.server.respond(); div.innerHTML.should.equal("Boosted"); }) it('handles basic form post with button formaction properly', function () { this.server.respondWith("POST", "/test", "Boosted"); var div = make(''); var btn = byId('b1'); btn.click(); this.server.respond(); div.innerHTML.should.equal("Boosted"); }) it('handles basic form post with button formmethod properly', function () { this.server.respondWith("POST", "/test", "Boosted"); var div = make(''); var btn = byId('b1'); btn.click(); this.server.respond(); div.innerHTML.should.equal("Boosted"); }) it('handles basic form post properly w/ explicit action', function () { this.server.respondWith("POST", "/test", "Boosted"); var div = make(''); var form = byId('f1'); form.click(); this.server.respond(); div.innerHTML.should.equal("Boosted"); }) it('handles basic form get properly', function () { this.server.respondWith("GET", "/test", "Boosted"); var div = make(''); var btn = byId('b1'); btn.click(); this.server.respond(); div.innerHTML.should.equal("Boosted"); }) it('handles basic form with no explicit method property', function () { this.server.respondWith("GET", "/test", "Boosted"); var div = make(''); var btn = byId('b1'); btn.click(); this.server.respond(); div.innerHTML.should.equal("Boosted"); }) it('handles basic anchor properly w/ data-* prefix', function () { this.server.respondWith("GET", "/test", "Boosted"); var div = make(''); var a = byId('a1'); a.click(); this.server.respond(); div.innerHTML.should.equal("Boosted"); }) it('overriding default swap style does not effect boosting', function () { htmx.config.defaultSwapStyle = "afterend"; try { this.server.respondWith("GET", "/test", "Boosted"); var a = make('Foo'); a.click(); this.server.respond(); a.innerHTML.should.equal("Boosted"); } finally { htmx.config.defaultSwapStyle = "innerHTML"; } }) it('anchors w/ explicit targets are not boosted', function () { var a = make('Foo'); var internalData = htmx._("getInternalData")(a); should.equal(undefined, internalData.boosted); }) it('includes an HX-Boosted Header', function() { this.server.respondWith("GET", "/test", function(xhr){ should.equal(xhr.requestHeaders['HX-Boosted'], "true"); xhr.respond(200, {}, "Boosted!"); }); var btn = make('Click Me!') btn.click(); this.server.respond(); btn.innerHTML.should.equal("Boosted!"); }); });