mirror of
https://github.com/actions/github-script.git
synced 2025-12-08 16:16:21 +00:00
Fix overriding request options from @actions/github
This commit is contained in:
@@ -4,38 +4,66 @@ import {getRetryOptions} from '../src/retry-options'
|
||||
|
||||
describe('getRequestOptions', () => {
|
||||
test('retries disabled if retries == 0', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(0, [400, 500, 502])
|
||||
const [retryOptions, requestOptions] = getRetryOptions(
|
||||
0,
|
||||
[400, 500, 502],
|
||||
[]
|
||||
)
|
||||
|
||||
expect(retryOptions.enabled).toBe(false)
|
||||
expect(retryOptions.doNotRetry).toBeFalsy()
|
||||
|
||||
expect(requestOptions.retries).toBeFalsy()
|
||||
expect(requestOptions?.retries).toBeFalsy()
|
||||
})
|
||||
|
||||
test('properties set if retries > 0', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, [400, 500, 502])
|
||||
const [retryOptions, requestOptions] = getRetryOptions(
|
||||
1,
|
||||
[400, 500, 502],
|
||||
[]
|
||||
)
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.doNotRetry).toEqual([400, 500, 502])
|
||||
|
||||
expect(requestOptions.retries).toEqual(1)
|
||||
expect(requestOptions?.retries).toEqual(1)
|
||||
})
|
||||
|
||||
test('properties set if retries > 0', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, [400, 500, 502])
|
||||
const [retryOptions, requestOptions] = getRetryOptions(
|
||||
1,
|
||||
[400, 500, 502],
|
||||
[]
|
||||
)
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.doNotRetry).toEqual([400, 500, 502])
|
||||
|
||||
expect(requestOptions.retries).toEqual(1)
|
||||
expect(requestOptions?.retries).toEqual(1)
|
||||
})
|
||||
|
||||
test('retryOptions.doNotRetry not set if exemptStatusCodes isEmpty', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, [])
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, [], [])
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.doNotRetry).toBeUndefined()
|
||||
|
||||
expect(requestOptions.retries).toEqual(1)
|
||||
expect(requestOptions?.retries).toEqual(1)
|
||||
})
|
||||
|
||||
test('requestOptions does not override defaults from @actions/github', async () => {
|
||||
const [retryOptions, requestOptions] = getRetryOptions(1, [], {
|
||||
request: {
|
||||
agent: 'default-user-agent'
|
||||
},
|
||||
foo: 'bar'
|
||||
})
|
||||
|
||||
expect(retryOptions.enabled).toBe(true)
|
||||
expect(retryOptions.doNotRetry).toBeUndefined()
|
||||
|
||||
expect(requestOptions?.retries).toEqual(1)
|
||||
expect(requestOptions?.agent).toEqual('default-user-agent')
|
||||
expect(requestOptions?.foo).toBeUndefined() // this should not be in the `options.request` object, but at the same level as `request`
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user