Files
xahau.js/test/backoff.ts
Nathan Nichols e200de3073 Adds @xrplf prettier config (#1598)
* build: new prettier config
2021-10-04 14:10:11 -04:00

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)
})
})