46 lines
No EOL
1.1 KiB
JavaScript
46 lines
No EOL
1.1 KiB
JavaScript
describe("delay", function() {
|
|
before(function() {
|
|
this.clock = sinon.useFakeTimers();
|
|
});
|
|
|
|
after(function() {
|
|
this.clock.restore();
|
|
});
|
|
|
|
it("вызывает функцию через указанный таймаут", function() {
|
|
var start = Date.now();
|
|
|
|
function f(x) {
|
|
assert.equal(Date.now() - start, 1000);
|
|
}
|
|
f = sinon.spy(f);
|
|
|
|
var f1000 = delay(f, 1000);
|
|
f1000("test");
|
|
this.clock.tick(2000);
|
|
assert(f.calledOnce, 'calledOnce check fails');
|
|
});
|
|
|
|
it("передаёт аргументы и контекст", function() {
|
|
var start = Date.now();
|
|
var user = {
|
|
sayHi: function(phrase, who) {
|
|
assert.equal(this, user);
|
|
assert.equal(phrase, "Привет");
|
|
assert.equal(who, "Вася");
|
|
assert.equal(Date.now() - start, 1500);
|
|
}
|
|
};
|
|
|
|
user.sayHi = sinon.spy(user.sayHi);
|
|
|
|
var spy = user.sayHi;
|
|
user.sayHi = delay(user.sayHi, 1500);
|
|
|
|
user.sayHi("Привет", "Вася");
|
|
|
|
this.clock.tick(2000);
|
|
|
|
assert(spy.calledOnce, 'проверка calledOnce не сработала');
|
|
});
|
|
}); |