diff options
-rw-r--r-- | src/ext/ws.js | 2 | ||||
-rw-r--r-- | test/ext/ws.js | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/ext/ws.js b/src/ext/ws.js index afd82995..3366e9e5 100644 --- a/src/ext/ws.js +++ b/src/ext/ws.js @@ -379,7 +379,7 @@ This extension adds support for WebSockets to htmx. See /www/extensions/ws.md f socketWrapper.send(body, elt); - if (api.shouldCancel(evt, elt)) { + if (evt && api.shouldCancel(evt, elt)) { evt.preventDefault(); } }); diff --git a/test/ext/ws.js b/test/ext/ws.js index 96de6009..7e6f140d 100644 --- a/test/ext/ws.js +++ b/test/ext/ws.js @@ -172,6 +172,18 @@ describe("web-sockets extension", function () { this.messages.length.should.equal(1); }) + it('sends data to the server with polling trigger', function () { + var div = make('<div hx-ext="ws" ws-connect="ws://localhost:8080"><div hx-trigger="every 1s" ws-send id="d1">div1</div></div>'); + this.tickMock(); + this.clock.tick(2000); + + byId("d1").click(); + + this.tickMock(); + + this.messages.length.should.equal(2); + }) + it('sends expected headers to the server', function () { var div = make('<div hx-ext="ws" ws-connect="ws://localhost:8080"><button hx-trigger="click" hx-target="#target" ws-send id="d1" name="d1-name">div1</button><output id="target"></output></div>'); this.tickMock(); |