mirror of
https://github.com/docker/login-action.git
synced 2025-02-22 10:20:25 +00:00
add tests for retries
Signed-off-by: Fedor Dikarev <fedor.dikarev@gmail.com>
This commit is contained in:
parent
cc953186b8
commit
1a78bc10dc
1 changed files with 37 additions and 0 deletions
37
__tests__/retries.test.ts
Normal file
37
__tests__/retries.test.ts
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
import { expect, jest, test, } from '@jest/globals';
|
||||||
|
import * as path from 'path';
|
||||||
|
|
||||||
|
// import * as dockerModule from '../src/docker';
|
||||||
|
|
||||||
|
import { login } from '../src/docker';
|
||||||
|
import { Docker } from '@docker/actions-toolkit/lib/docker/docker';
|
||||||
|
|
||||||
|
test('login retries function', async () => {
|
||||||
|
const stderr_strings = [
|
||||||
|
'mock error, failed with status: 408 Request Timeout',
|
||||||
|
'mock error, failed with status: 502 Request Timeout',
|
||||||
|
'mock error, failed with status: 400 Request Timeout',
|
||||||
|
]
|
||||||
|
let call_count: number = 0
|
||||||
|
|
||||||
|
Docker.getExecOutput = jest.fn(async () => {
|
||||||
|
if (call_count >= stderr_strings.length) {
|
||||||
|
return {
|
||||||
|
exitCode: 0,
|
||||||
|
stdout: 'Mock success',
|
||||||
|
stderr: ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
exitCode: 1,
|
||||||
|
stdout: '',
|
||||||
|
stderr: stderr_strings[(call_count++) % stderr_strings.length]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const username = 'dbowie';
|
||||||
|
const password = 'groundcontrol';
|
||||||
|
const registry = 'https://ghcr.io';
|
||||||
|
|
||||||
|
await login(registry, username, password, 'false', ['408', '502', '400'], 5, 0.5);
|
||||||
|
});
|
Loading…
Add table
Reference in a new issue