describe("hx-disinherit attribute", function() { beforeEach(function () { this.server = makeServer(); clearWorkArea(); }); afterEach(function () { this.server.restore(); clearWorkArea(); }); it('basic inheritance sanity-check', function () { var response_inner = '
Hello world
' var response = '
' + response_inner + '
' this.server.respondWith("GET", "/test", response); var div = make('
') var btn = byId("bx1"); btn.click(); this.server.respond(); btn.innerHTML.should.equal(response_inner); }) it('disinherit exclude single attribute', function () { var response_inner = '
Hello world
' var response = '
' + response_inner + '
' this.server.respondWith("GET", "/test", response); var div = make('
') var btn = byId("bx1"); btn.click(); this.server.respond(); btn.innerHTML.should.equal(response + 'Click Me!'); }); it('disinherit exclude multiple attributes', function () { var response_inner = '
Hello world
' var response = '
' + response_inner + '
' this.server.respondWith("GET", "/test", response); var div = make('
' + ' ' + '
') var btn = byId("bx1"); btn.click(); this.server.respond(); console.log(btn.innerHTML); console.log(response); btn.innerHTML.should.equal('' + response + ''); }); it('disinherit exclude all attributes', function () { var response_inner = '
Hello world
' var response = '
' + response_inner + '
' this.server.respondWith("GET", "/test", response); var div = make('
' + ' ' + '
') var btn = byId("bx1"); btn.click(); this.server.respond(); btn.innerHTML.should.equal(response); }); it('same-element inheritance disable', function () { var response_inner = '
Hello world
' var response = '
' + response_inner + '
' this.server.respondWith("GET", "/test", response); var btn = make('') btn.click(); this.server.respond(); btn.innerHTML.should.equal(response_inner); }); it('same-element inheritance disable with child nodes', function () { var response_inner = '
Hello world
' var response = '
' + response_inner + '
' this.server.respondWith("GET", "/test", response); this.server.respondWith("GET", "/test2", 'unique-snowflake'); var div = make('
') var btn = byId("bx1"); btn.click(); this.server.respond(); btn.innerHTML.should.equal('
unique-snowflake
'); var count = (div.parentElement.innerHTML.match(/snowflake/g) || []).length; count.should.equal(2); // hx-select of parent div and newly loaded inner content }); it('boosted element hx-disinherit sanity check', function () { try { var request; var handler = htmx.on("htmx:beforeRequest", function (evt) { request = evt; }); var div = make('
Click me
'); var link = byId("a1"); link.click(); // should match the fully resolved href of the boosted element should.equal(request.detail.requestConfig.path, request.detail.elt.href); should.equal(request.detail.elt["htmx-internal-data"].boosted, true); } finally { htmx.off("htmx:beforeRequest", handler); } }); it('boosted element inheritance manual unset', function () { try { var request; var handler = htmx.on("htmx:beforeRequest", function (evt) { request = evt; }); var div = make('
Click me
'); var link = byId("a1"); should.equal(link["htmx-internal-data"].boosted, undefined); } finally { htmx.off("htmx:beforeRequest", handler); } }); it('nested htmx-node with boosting parent', function () { try { var request; var handler = htmx.on("htmx:beforeRequest", function (evt) { request = evt; }); var div = make('
Click me
'); var link = byId("a1"); link.click(); should.equal(request.detail.requestConfig.path, '/test2'); should.equal(request.detail.elt["htmx-internal-data"].boosted, undefined); should.equal(request.detail.target.id, "a1"); } finally { htmx.off("htmx:beforeRequest", handler); } }); });