diff options
author | Sascha Woo <sascha.woo@gmail.com> | 2023-09-21 23:44:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-21 15:44:42 -0600 |
commit | 32b58c41cb767ff477dfdfe6e15d827f0e40397a (patch) | |
tree | 1f018f484aa75e4525dd1e972afcc1d5f842d93c /test/core/extensions.js | |
parent | bb5413dfd2fc5842eda7a29a1bdc53aa92e177c4 (diff) | |
download | htmx-32b58c41cb767ff477dfdfe6e15d827f0e40397a.tar.gz htmx-32b58c41cb767ff477dfdfe6e15d827f0e40397a.zip |
Add support for event cancellation (preventDefault) in extensions (#1456)
ext: add support for event cancellation via preventDefault()
Diffstat (limited to 'test/core/extensions.js')
-rw-r--r-- | test/core/extensions.js | 42 |
1 files changed, 42 insertions, 0 deletions
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('<div hx-get="/test" hx-ext="ext-prevent-request">Click Me!</div>') + 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('<div hx-get="/test" hx-ext="ext-prevent-request">Click Me!</div>') + div.click(); + this.server.respond(); + div.innerHTML.should.equal('Click Me!'); + }); +}); |