describe("hx-swap-oob attribute", function () {
beforeEach(function () {
this.server = makeServer();
clearWorkArea();
});
afterEach(function () {
this.server.restore();
clearWorkArea();
});
it('handles basic response properly', function () {
this.server.respondWith("GET", "/test", "Clicked
Swapped
");
var div = make('click me
');
make('');
div.click();
this.server.respond();
div.innerHTML.should.equal("Clicked");
byId("d1").innerHTML.should.equal("Swapped");
})
it('handles more than one oob swap properly', function () {
this.server.respondWith("GET", "/test", "ClickedSwapped1
Swapped2
");
var div = make('click me
');
make('');
make('');
div.click();
this.server.respond();
div.innerHTML.should.equal("Clicked");
byId("d1").innerHTML.should.equal("Swapped1");
byId("d2").innerHTML.should.equal("Swapped2");
})
it('handles no id match properly', function () {
this.server.respondWith("GET", "/test", "ClickedSwapped
");
var div = make('click me
');
div.click();
this.server.respond();
div.innerText.should.equal("Clicked");
})
it('handles basic response properly w/ data-* prefix', function () {
this.server.respondWith("GET", "/test", "ClickedSwapped
");
var div = make('click me
');
make('');
div.click();
this.server.respond();
div.innerHTML.should.equal("Clicked");
byId("d1").innerHTML.should.equal("Swapped");
})
it('handles outerHTML response properly', function () {
this.server.respondWith("GET", "/test", "ClickedSwapped
");
var div = make('click me
');
make('');
div.click();
this.server.respond();
byId("d1").getAttribute("foo").should.equal("bar");
div.innerHTML.should.equal("Clicked");
byId("d1").innerHTML.should.equal("Swapped");
})
it('handles innerHTML response properly', function () {
this.server.respondWith("GET", "/test", "ClickedSwapped
");
var div = make('click me
');
make('');
div.click();
this.server.respond();
should.equal(byId("d1").getAttribute("foo"), null);
div.innerHTML.should.equal("Clicked");
byId("d1").innerHTML.should.equal("Swapped");
})
it('oob swaps can be nested in content', function () {
this.server.respondWith("GET", "/test", "");
var div = make('click me
');
make('');
div.click();
this.server.respond();
should.equal(byId("d1").getAttribute("foo"), null);
div.innerHTML.should.equal("Clicked
");
byId("d1").innerHTML.should.equal("Swapped");
})
it('oob swaps can use selectors to match up', function () {
this.server.respondWith("GET", "/test", "");
var div = make('click me
');
make('');
div.click();
this.server.respond();
should.equal(byId("d1").getAttribute("foo"), "bar");
div.innerHTML.should.equal("Clicked
");
byId("d1").innerHTML.should.equal("Swapped");
})
});