')
var b1 = byId('b1')
var b2 = byId('b2')
b1.click()
b2.click()
this.server.respond()
this.server.respond()
b1.innerHTML.should.equal('Click 0')
b2.innerHTML.should.equal('Initial')
})
it('defaults to the drop strategy', function() {
var count = 0
this.server.respondWith('GET', '/test', function(xhr) {
xhr.respond(200, {}, 'Click ' + count++)
})
make('
' +
'
')
var b1 = byId('b1')
var b2 = byId('b2')
b1.click()
b2.click()
this.server.respond()
this.server.respond()
b1.innerHTML.should.equal('Click 0')
b2.innerHTML.should.equal('Initial')
})
it('can use replace strategy', function() {
var count = 0
this.server.respondWith('GET', '/test', function(xhr) {
xhr.respond(200, {}, 'Click ' + count++)
})
make('
' +
'
')
var b1 = byId('b1')
var b2 = byId('b2')
b1.click()
b2.click()
this.server.respond()
this.server.respond()
b1.innerHTML.should.equal('Initial')
b2.innerHTML.should.equal('Click 0')
})
it('can use queue all strategy', function() {
var count = 0
this.server.respondWith('GET', '/test', function(xhr) {
xhr.respond(200, {}, 'Click ' + count++)
})
make('
' +
' ' +
'
')
var b1 = byId('b1')
b1.click()
var b2 = byId('b2')
b2.click()
var b3 = byId('b3')
b3.click()
this.server.respond()
b1.innerHTML.should.equal('Click 0')
b2.innerHTML.should.equal('Initial')
b3.innerHTML.should.equal('Initial')
this.server.respond()
b1.innerHTML.should.equal('Click 0')
b2.innerHTML.should.equal('Click 1')
b3.innerHTML.should.equal('Initial')
this.server.respond()
b1.innerHTML.should.equal('Click 0')
b2.innerHTML.should.equal('Click 1')
b3.innerHTML.should.equal('Click 2')
})
it('can use queue last strategy', function() {
var count = 0
this.server.respondWith('GET', '/test', function(xhr) {
xhr.respond(200, {}, 'Click ' + count++)
})
make('
' +
' ' +
'
')
var b1 = byId('b1')
b1.click()
var b2 = byId('b2')
b2.click()
var b3 = byId('b3')
b3.click()
this.server.respond()
b1.innerHTML.should.equal('Click 0')
b2.innerHTML.should.equal('Initial')
b3.innerHTML.should.equal('Initial')
this.server.respond()
b1.innerHTML.should.equal('Click 0')
b2.innerHTML.should.equal('Initial')
b3.innerHTML.should.equal('Click 1')
this.server.respond()
b1.innerHTML.should.equal('Click 0')
b2.innerHTML.should.equal('Initial')
b3.innerHTML.should.equal('Click 1')
})
it('can use queue first strategy', function() {
var count = 0
this.server.respondWith('GET', '/test', function(xhr) {
xhr.respond(200, {}, 'Click ' + count++)
})
make('
' +
' ' +
'
')
var b1 = byId('b1')
b1.click()
var b2 = byId('b2')
b2.click()
var b3 = byId('b3')
b3.click()
this.server.respond()
b1.innerHTML.should.equal('Click 0')
b2.innerHTML.should.equal('Initial')
b3.innerHTML.should.equal('Initial')
this.server.respond()
b1.innerHTML.should.equal('Click 0')
b2.innerHTML.should.equal('Click 1')
b3.innerHTML.should.equal('Initial')
this.server.respond()
b1.innerHTML.should.equal('Click 0')
b2.innerHTML.should.equal('Click 1')
b3.innerHTML.should.equal('Initial')
})
it('can use abort strategy to end existing abortable request', function() {
var count = 0
this.server.respondWith('GET', '/test', function(xhr) {
xhr.respond(200, {}, 'Click ' + count++)
})
make('
' +
'
')
var b1 = byId('b1')
var b2 = byId('b2')
b1.click()
b2.click()
this.server.respond()
this.server.respond()
b1.innerHTML.should.equal('Initial')
b2.innerHTML.should.equal('Click 0')
})
it('can use abort strategy to drop abortable request when one is in flight', function() {
var count = 0
this.server.respondWith('GET', '/test', function(xhr) {
xhr.respond(200, {}, 'Click ' + count++)
})
make('
' +
'
')
var b1 = byId('b1')
var b2 = byId('b2')
b2.click()
b1.click()
this.server.respond()
this.server.respond()
b1.innerHTML.should.equal('Initial')
b2.innerHTML.should.equal('Click 0')
})
it('can abort a request programmatically', function() {
var count = 0
this.server.respondWith('GET', '/test', function(xhr) {
xhr.respond(200, {}, 'Click ' + count++)
})
make('
' +
'
')
var b1 = byId('b1')
var b2 = byId('b2')
b1.click()
b2.click()
htmx.trigger(b1, 'htmx:abort')
this.server.respond()
this.server.respond()
b1.innerHTML.should.equal('Initial')
b2.innerHTML.should.equal('Click 0')
})
})