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(); if (IsIE11()) { // IE11 doesn't set defaultPrevented to true on custom events it seems, so use a // return false instead to cancel the event return false } } } }); this.server.respondWith('GET', '/test', 'clicked!'); var div = make('
Click Me!
') div.click(); this.server.respond(); div.innerHTML.should.equal('Click Me!'); }); });