summaryrefslogtreecommitdiffstatshomepage
path: root/test/core/extensions.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/core/extensions.js')
-rw-r--r--test/core/extensions.js42
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!');
+ });
+});