summaryrefslogtreecommitdiffstatshomepage
path: root/test/attributes/hx-request.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/attributes/hx-request.js')
-rw-r--r--test/attributes/hx-request.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/attributes/hx-request.js b/test/attributes/hx-request.js
new file mode 100644
index 00000000..e64f6481
--- /dev/null
+++ b/test/attributes/hx-request.js
@@ -0,0 +1,39 @@
+describe("hx-request attribute", function() {
+ beforeEach(function () {
+ this.server = makeServer();
+ clearWorkArea();
+ });
+ afterEach(function () {
+ this.server.restore();
+ clearWorkArea();
+ });
+
+ it('basic hx-request timeout works', function (done) {
+ var timedOut = false;
+ this.server.respondWith("GET", "/test", "Clicked!");
+ var div = make("<div hx-post='/vars' hx-request='\"timeout\":1'></div>")
+ htmx.on(div, 'htmx:timeout', function(){
+ timedOut = true;
+ })
+ div.click();
+ setTimeout(function(){
+ div.innerHTML.should.equal("");
+ // unfortunately it looks like sinon.js doesn't implement the timeout functionality
+ // timedOut.should.equal(true);
+ done();
+ }, 400)
+ });
+
+ it('hx-request header works', function () {
+ this.server.respondWith("POST", "/vars", function (xhr) {
+ should.equal(xhr.requestHeaders['HX-Request'], undefined);
+ xhr.respond(200, {}, "Clicked!")
+ });
+ var div = make("<div hx-post='/vars' hx-request='{\"noHeaders\":true}'></div>")
+ div.click();
+ this.server.respond();
+ div.innerHTML.should.equal("Clicked!");
+ });
+
+
+}); \ No newline at end of file