mirror of
https://github.com/bigskysoftware/htmx.git
synced 2025-10-02 07:21:05 +00:00
tests for hx-trigger
delay
and throttle
modifiers
This commit is contained in:
parent
13acf899d7
commit
9f04b85a9f
@ -469,5 +469,80 @@ describe("hx-trigger attribute", function(){
|
|||||||
byId("d1").innerText.should.equal("bar");
|
byId("d1").innerText.should.equal("bar");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('throttle prevents multiple requests from happening', function(done)
|
||||||
|
{
|
||||||
|
var requests = 0;
|
||||||
|
var server = this.server;
|
||||||
|
server.respondWith("GET", "/test", function (xhr) {
|
||||||
|
requests++;
|
||||||
|
xhr.respond(200, {}, "Requests: " + requests);
|
||||||
|
});
|
||||||
|
server.respondWith("GET", "/bar", "bar");
|
||||||
|
var div = make("<div hx-trigger='click throttle:10ms' hx-get='/test'></div>");
|
||||||
|
|
||||||
|
div.click();
|
||||||
|
server.respond();
|
||||||
|
|
||||||
|
div.click();
|
||||||
|
server.respond();
|
||||||
|
|
||||||
|
div.click();
|
||||||
|
server.respond();
|
||||||
|
|
||||||
|
div.click();
|
||||||
|
server.respond();
|
||||||
|
|
||||||
|
// should not have been replaced by click
|
||||||
|
div.innerText.should.equal("Requests: 1");
|
||||||
|
|
||||||
|
setTimeout(function () {
|
||||||
|
div.click();
|
||||||
|
server.respond();
|
||||||
|
div.innerText.should.equal("Requests: 2");
|
||||||
|
|
||||||
|
div.click();
|
||||||
|
server.respond();
|
||||||
|
div.innerText.should.equal("Requests: 2");
|
||||||
|
|
||||||
|
done();
|
||||||
|
}, 50);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('delay delays the request', function(done)
|
||||||
|
{
|
||||||
|
var requests = 0;
|
||||||
|
var server = this.server;
|
||||||
|
this.server.respondWith("GET", "/test", function (xhr) {
|
||||||
|
requests++;
|
||||||
|
xhr.respond(200, {}, "Requests: " + requests);
|
||||||
|
});
|
||||||
|
this.server.respondWith("GET", "/bar", "bar");
|
||||||
|
var div = make("<div hx-trigger='click delay:10ms' hx-get='/test'></div>");
|
||||||
|
|
||||||
|
div.click();
|
||||||
|
this.server.respond();
|
||||||
|
|
||||||
|
div.click();
|
||||||
|
this.server.respond();
|
||||||
|
|
||||||
|
div.click();
|
||||||
|
this.server.respond();
|
||||||
|
|
||||||
|
div.click();
|
||||||
|
this.server.respond();
|
||||||
|
div.innerText.should.equal("");
|
||||||
|
|
||||||
|
setTimeout(function () {
|
||||||
|
server.respond();
|
||||||
|
div.innerText.should.equal("Requests: 1");
|
||||||
|
|
||||||
|
div.click();
|
||||||
|
server.respond();
|
||||||
|
div.innerText.should.equal("Requests: 1");
|
||||||
|
|
||||||
|
done();
|
||||||
|
}, 50);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user