Challenge: If no retry-after header on 428, don't start timer for retry

This commit is contained in:
Scott Nonnenberg 2022-04-25 16:05:23 -07:00 committed by GitHub
parent 9921a07a0b
commit 1d26424f22
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 58 additions and 34 deletions

View file

@ -4,25 +4,25 @@
import { assert } from 'chai';
import { MINUTE } from '../../util/durations';
import { parseRetryAfter } from '../../util/parseRetryAfter';
import { parseRetryAfterWithDefault } from '../../util/parseRetryAfter';
describe('parseRetryAfter', () => {
it('should return 1 minute when passed non-strings', () => {
assert.equal(parseRetryAfter(undefined), MINUTE);
assert.equal(parseRetryAfter(1234), MINUTE);
assert.equal(parseRetryAfterWithDefault(undefined), MINUTE);
assert.equal(parseRetryAfterWithDefault(1234), MINUTE);
});
it('should return 1 minute with invalid strings', () => {
assert.equal(parseRetryAfter('nope'), MINUTE);
assert.equal(parseRetryAfter('1ff'), MINUTE);
assert.equal(parseRetryAfterWithDefault('nope'), MINUTE);
assert.equal(parseRetryAfterWithDefault('1ff'), MINUTE);
});
it('should return milliseconds on valid input', () => {
assert.equal(parseRetryAfter('100'), 100000);
assert.equal(parseRetryAfterWithDefault('100'), 100000);
});
it('should return 1 second at minimum', () => {
assert.equal(parseRetryAfter('0'), 1000);
assert.equal(parseRetryAfter('-1'), 1000);
assert.equal(parseRetryAfterWithDefault('0'), 1000);
assert.equal(parseRetryAfterWithDefault('-1'), 1000);
});
});