mirror of
https://github.com/actions/github-script.git
synced 2025-12-08 08:06:23 +00:00
refactor and add tests for retry options
This commit is contained in:
70
__test__/get-retry-options.test.ts
Normal file
70
__test__/get-retry-options.test.ts
Normal file
@@ -0,0 +1,70 @@
|
||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
|
||||
import {getRetryOptions} from '../src/retry-options'
|
||||
|
||||
describe('getRequestOptions', () => {
|
||||
test('retries disabled if retries == 0', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(0, 8, [
|
||||
400,
|
||||
500,
|
||||
502
|
||||
])
|
||||
|
||||
expect(retryOptions.enabled).toBe(false)
|
||||
expect(retryOptions.doNotRetry).toBeFalsy()
|
||||
|
||||
expect(requestOptions.retries).toBeFalsy()
|
||||
})
|
||||
|
||||
test('properties set if retries > 0', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, 8, [
|
||||
400,
|
||||
500,
|
||||
502
|
||||
])
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.doNotRetry).toEqual([400, 500, 502])
|
||||
|
||||
expect(requestOptions.retries).toEqual(1)
|
||||
expect(requestOptions.retryAfter).toEqual(8)
|
||||
})
|
||||
|
||||
test('properties set if retries > 0', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, 8, [
|
||||
400,
|
||||
500,
|
||||
502
|
||||
])
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.doNotRetry).toEqual([400, 500, 502])
|
||||
|
||||
expect(requestOptions.retries).toEqual(1)
|
||||
expect(requestOptions.retryAfter).toEqual(8)
|
||||
})
|
||||
|
||||
test('retryAfter can be set to zero', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, 0, [
|
||||
400,
|
||||
500,
|
||||
502
|
||||
])
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.doNotRetry).toEqual([400, 500, 502])
|
||||
|
||||
expect(requestOptions.retries).toEqual(1)
|
||||
expect(requestOptions.retryAfter).toEqual(0)
|
||||
})
|
||||
|
||||
test('retryOptions.doNotRetry not set if doNotRetry isEmpty', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, 0, [])
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.doNotRetry).toBeUndefined()
|
||||
|
||||
expect(requestOptions.retries).toEqual(1)
|
||||
expect(requestOptions.retryAfter).toEqual(0)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user