htmx/test/core/extensions.js
2023-12-21 13:22:10 -05:00

43 lines
1.2 KiB
JavaScript

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!')
})
})