mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-19 03:35:49 +00:00
39 lines
1.5 KiB
TypeScript
39 lines
1.5 KiB
TypeScript
import { assert } from 'chai'
|
|
|
|
import ExponentialBackoff from '../src/client/ExponentialBackoff'
|
|
|
|
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)
|
|
})
|
|
})
|