From 7d49d5ab583bda3005034b817da97a95d234afb3 Mon Sep 17 00:00:00 2001 From: carson Date: Fri, 18 Sep 2020 09:29:24 -0600 Subject: [PATCH] bump to 0.1.2 and add test for namespaced event and extension --- package.json | 2 +- test/attributes/hx-ext.js | 22 ++++++++++++++++++++-- test/core/headers.js | 13 +++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 904bf4a9..f03eae4b 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "AJAX", "HTML" ], - "version": "0.1.1", + "version": "0.1.2", "homepage": "https://htmx.org/", "bugs": { "url": "https://github.com/bigskysoftware/htmx/issues" diff --git a/test/attributes/hx-ext.js b/test/attributes/hx-ext.js index 1211e722..6c7c92c0 100644 --- a/test/attributes/hx-ext.js +++ b/test/attributes/hx-ext.js @@ -1,9 +1,9 @@ describe("hx-ext attribute", function() { - var ext1Calls, ext2Calls, ext3Calls; + var ext1Calls, ext2Calls, ext3Calls, ext4Calls; beforeEach(function () { - ext1Calls = ext2Calls = ext3Calls = 0; + ext1Calls = ext2Calls = ext3Calls = ext4Calls = 0; this.server = makeServer(); clearWorkArea(); htmx.defineExtension("ext-1", { @@ -27,6 +27,13 @@ describe("hx-ext attribute", function() { } } }); + htmx.defineExtension("ext-4", { + onEvent : function(name, evt) { + if(name === "namespace:example"){ + ext4Calls++; + } + } + }); }); afterEach(function () { @@ -94,5 +101,16 @@ describe("hx-ext attribute", function() { ext3Calls.should.equal(0); }); + it('A simple extension is invoked properly when an HX-Trigger event w/ a namespace fires', function () { + this.server.respondWith("GET", "/test", [200, {"HX-Trigger":"namespace:example"}, ""]); + var btn = make('') + btn.click(); + this.server.respond(); + ext1Calls.should.equal(0); + ext2Calls.should.equal(0); + ext3Calls.should.equal(0); + ext4Calls.should.equal(1); + }); + }); \ No newline at end of file diff --git a/test/core/headers.js b/test/core/headers.js index ab59f992..8271bc56 100644 --- a/test/core/headers.js +++ b/test/core/headers.js @@ -61,6 +61,19 @@ describe("Core htmx AJAX headers", function() { invokedEvent.should.equal(true); }) + it("should handle a namespaced HX-Trigger response header properly", function(){ + this.server.respondWith("GET", "/test", [200, {"HX-Trigger" : "namespace:foo"}, ""]); + + var div = make('
'); + var invokedEvent = false; + div.addEventListener("namespace:foo", function (evt) { + invokedEvent = true; + }); + div.click(); + this.server.respond(); + invokedEvent.should.equal(true); + }) + it("should handle basic JSON HX-Trigger response header properly", function(){ this.server.respondWith("GET", "/test", [200, {"HX-Trigger" : "{\"foo\":null}"}, ""]);