From 32b58c41cb767ff477dfdfe6e15d827f0e40397a Mon Sep 17 00:00:00 2001 From: Sascha Woo Date: Thu, 21 Sep 2023 23:44:42 +0200 Subject: Add support for event cancellation (preventDefault) in extensions (#1456) ext: add support for event cancellation via preventDefault() --- test/core/extensions.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 test/core/extensions.js (limited to 'test/core/extensions.js') diff --git a/test/core/extensions.js b/test/core/extensions.js new file mode 100644 index 00000000..2bcfe208 --- /dev/null +++ b/test/core/extensions.js @@ -0,0 +1,42 @@ +describe('Core htmx extension tests', function() { + beforeEach(function() { + this.server = makeServer(); + clearWorkArea(); + }); + afterEach(function() { + this.server.restore(); + clearWorkArea(); + }); + + it('should support event cancellation by returning false', function() { + htmx.defineExtension('ext-prevent-request', { + onEvent: function(name, evt) { + if (name === 'htmx:beforeRequest') { + return false; + } + } + }); + + this.server.respondWith('GET', '/test', 'clicked!'); + var div = make('
Click Me!
') + div.click(); + this.server.respond(); + div.innerHTML.should.equal('Click Me!'); + }); + + it('should support event cancellation with preventDefault', function() { + htmx.defineExtension('ext-prevent-request', { + onEvent: function(name, evt) { + if (name === 'htmx:beforeRequest') { + evt.preventDefault(); + } + } + }); + + this.server.respondWith('GET', '/test', 'clicked!'); + var div = make('
Click Me!
') + div.click(); + this.server.respond(); + div.innerHTML.should.equal('Click Me!'); + }); +}); -- cgit v1.2.3