mirror of
https://github.com/actions/github-script.git
synced 2026-04-07 22:50:04 +00:00
Add the ability to have a delay before retrying
This commit is contained in:
parent
98814c53be
commit
e778eeb4a7
5 changed files with 70 additions and 20 deletions
|
|
@ -1,17 +1,19 @@
|
|||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
|
||||
import {getRetryOptions} from '../src/retry-options'
|
||||
import { getRetryOptions } from '../src/retry-options'
|
||||
|
||||
describe('getRequestOptions', () => {
|
||||
test('retries disabled if retries == 0', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(
|
||||
0,
|
||||
[400, 500, 502],
|
||||
321,
|
||||
[]
|
||||
)
|
||||
|
||||
expect(retryOptions.enabled).toBe(false)
|
||||
expect(retryOptions.doNotRetry).toBeFalsy()
|
||||
expect(retryOptions.delay).toBeFalsy()
|
||||
|
||||
expect(requestOptions?.retries).toBeFalsy()
|
||||
})
|
||||
|
|
@ -20,39 +22,59 @@ describe('getRequestOptions', () => {
|
|||
const [retryOptions, requestOptions] = getRetryOptions(
|
||||
1,
|
||||
[400, 500, 502],
|
||||
321,
|
||||
[]
|
||||
)
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.doNotRetry).toEqual([400, 500, 502])
|
||||
expect(retryOptions.delay).toEqual(321)
|
||||
|
||||
expect(requestOptions?.retries).toEqual(1)
|
||||
})
|
||||
|
||||
test('properties set if retries > 0', async () => {
|
||||
test('delay should be undefined if retryAfter < 0', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(
|
||||
1,
|
||||
[400, 500, 502],
|
||||
-1,
|
||||
[]
|
||||
)
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.doNotRetry).toEqual([400, 500, 502])
|
||||
expect(retryOptions.delay).toBeUndefined()
|
||||
|
||||
expect(requestOptions?.retries).toEqual(1)
|
||||
})
|
||||
|
||||
test('delay should be undefined if retryAfter = 0', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(
|
||||
1,
|
||||
[400, 500, 502],
|
||||
0,
|
||||
[]
|
||||
)
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.doNotRetry).toEqual([400, 500, 502])
|
||||
expect(retryOptions.delay).toBeUndefined()
|
||||
|
||||
expect(requestOptions?.retries).toEqual(1)
|
||||
})
|
||||
|
||||
test('retryOptions.doNotRetry not set if exemptStatusCodes isEmpty', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, [], [])
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, [], 321, [])
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.doNotRetry).toBeUndefined()
|
||||
expect(retryOptions.delay).toBe(321)
|
||||
|
||||
expect(requestOptions?.retries).toEqual(1)
|
||||
})
|
||||
|
||||
test('requestOptions does not override defaults from @actions/github', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, [], {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, [], 321, {
|
||||
request: {
|
||||
agent: 'default-user-agent'
|
||||
},
|
||||
|
|
@ -60,6 +82,7 @@ describe('getRequestOptions', () => {
|
|||
})
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.delay).toBe(321)
|
||||
expect(retryOptions.doNotRetry).toBeUndefined()
|
||||
|
||||
expect(requestOptions?.retries).toEqual(1)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue