mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-19 19:55:51 +00:00
39 lines
1.5 KiB
TypeScript
39 lines
1.5 KiB
TypeScript
import { assert } from "chai";
|
|
|
|
import { ExponentialBackoff } from "../src/client/backoff";
|
|
|
|
describe("ExponentialBackoff", function () {
|
|
it("duration() return value starts with the min value", function () {
|
|
// default: 100ms
|
|
assert.equal(new ExponentialBackoff().duration(), 100);
|
|
assert.equal(new ExponentialBackoff({ min: 100 }).duration(), 100);
|
|
assert.equal(new ExponentialBackoff({ min: 123 }).duration(), 123);
|
|
});
|
|
|
|
it("duration() return value increases when called multiple times", function () {
|
|
const backoff = new ExponentialBackoff({ min: 100, max: 1000 });
|
|
assert.strictEqual(backoff.duration(), 100);
|
|
assert.strictEqual(backoff.duration(), 200);
|
|
assert.strictEqual(backoff.duration(), 400);
|
|
assert.strictEqual(backoff.duration(), 800);
|
|
});
|
|
|
|
it("duration() never returns greater than the max value", function () {
|
|
const backoff = new ExponentialBackoff({ min: 300, max: 1000 });
|
|
assert.strictEqual(backoff.duration(), 300);
|
|
assert.strictEqual(backoff.duration(), 600);
|
|
assert.strictEqual(backoff.duration(), 1000);
|
|
assert.strictEqual(backoff.duration(), 1000);
|
|
});
|
|
|
|
it("reset() will reset the duration() value", function () {
|
|
const backoff = new ExponentialBackoff({ min: 100, max: 1000 });
|
|
assert.strictEqual(backoff.duration(), 100);
|
|
assert.strictEqual(backoff.duration(), 200);
|
|
assert.strictEqual(backoff.duration(), 400);
|
|
backoff.reset();
|
|
assert.strictEqual(backoff.duration(), 100);
|
|
assert.strictEqual(backoff.duration(), 200);
|
|
});
|
|
});
|