mirror of
https://github.com/docker/login-action.git
synced 2024-12-05 03:24:45 +01:00
test: fix tests after toolkit update
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
parent
a64852414f
commit
0e7803459f
4 changed files with 7 additions and 69 deletions
|
@ -1,5 +1,6 @@
|
||||||
import {beforeEach, describe, expect, jest, test} from '@jest/globals';
|
import {beforeEach, describe, expect, jest, test} from '@jest/globals';
|
||||||
import {AuthorizationData} from '@aws-sdk/client-ecr';
|
import {AuthorizationData} from '@aws-sdk/client-ecr';
|
||||||
|
|
||||||
import * as aws from '../src/aws';
|
import * as aws from '../src/aws';
|
||||||
|
|
||||||
describe('isECR', () => {
|
describe('isECR', () => {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import {expect, test} from '@jest/globals';
|
import {expect, test} from '@jest/globals';
|
||||||
|
|
||||||
import {getInputs} from '../src/context';
|
import {getInputs} from '../src/context';
|
||||||
|
|
||||||
test('with password and username getInputs does not throw error', async () => {
|
test('with password and username getInputs does not throw error', async () => {
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
import {expect, jest, test} from '@jest/globals';
|
import {expect, jest, test} from '@jest/globals';
|
||||||
import {loginStandard, logout} from '../src/docker';
|
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import * as exec from '@actions/exec';
|
|
||||||
|
import {loginStandard, logout} from '../src/docker';
|
||||||
|
import {Exec} from '@docker/actions-toolkit/lib/exec';
|
||||||
|
|
||||||
process.env['RUNNER_TEMP'] = path.join(__dirname, 'runner');
|
process.env['RUNNER_TEMP'] = path.join(__dirname, 'runner');
|
||||||
|
|
||||||
test('loginStandard calls exec', async () => {
|
test('loginStandard calls exec', async () => {
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const execSpy = jest.spyOn(exec, 'getExecOutput').mockImplementation(async () => {
|
const execSpy = jest.spyOn(Exec, 'getExecOutput').mockImplementation(async () => {
|
||||||
return {
|
return {
|
||||||
exitCode: expect.any(Number),
|
exitCode: expect.any(Number),
|
||||||
stdout: expect.any(Function),
|
stdout: expect.any(Function),
|
||||||
|
@ -32,7 +33,7 @@ test('loginStandard calls exec', async () => {
|
||||||
test('logout calls exec', async () => {
|
test('logout calls exec', async () => {
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const execSpy = jest.spyOn(exec, 'getExecOutput').mockImplementation(async () => {
|
const execSpy = jest.spyOn(Exec, 'getExecOutput').mockImplementation(async () => {
|
||||||
return {
|
return {
|
||||||
exitCode: expect.any(Number),
|
exitCode: expect.any(Number),
|
||||||
stdout: expect.any(Function),
|
stdout: expect.any(Function),
|
||||||
|
|
|
@ -1,65 +0,0 @@
|
||||||
import {expect, jest, test} from '@jest/globals';
|
|
||||||
import osm = require('os');
|
|
||||||
|
|
||||||
import {main} from '../src/main';
|
|
||||||
import * as docker from '../src/docker';
|
|
||||||
import * as stateHelper from '../src/state-helper';
|
|
||||||
|
|
||||||
test('errors without username and password', async () => {
|
|
||||||
jest.spyOn(osm, 'platform').mockImplementation(() => 'linux');
|
|
||||||
process.env['INPUT_LOGOUT'] = 'true'; // default value
|
|
||||||
await expect(main()).rejects.toThrow(new Error('Username and password required'));
|
|
||||||
});
|
|
||||||
|
|
||||||
test('successful with username and password', async () => {
|
|
||||||
jest.spyOn(osm, 'platform').mockImplementation(() => 'linux');
|
|
||||||
const setRegistrySpy = jest.spyOn(stateHelper, 'setRegistry');
|
|
||||||
const setLogoutSpy = jest.spyOn(stateHelper, 'setLogout');
|
|
||||||
const dockerSpy = jest.spyOn(docker, 'login').mockImplementation(() => Promise.resolve());
|
|
||||||
|
|
||||||
const username = 'dbowie';
|
|
||||||
process.env[`INPUT_USERNAME`] = username;
|
|
||||||
|
|
||||||
const password = 'groundcontrol';
|
|
||||||
process.env[`INPUT_PASSWORD`] = password;
|
|
||||||
|
|
||||||
const ecr = 'auto';
|
|
||||||
process.env['INPUT_ECR'] = ecr;
|
|
||||||
|
|
||||||
const logout = false;
|
|
||||||
process.env['INPUT_LOGOUT'] = String(logout);
|
|
||||||
|
|
||||||
await main();
|
|
||||||
|
|
||||||
expect(setRegistrySpy).toHaveBeenCalledWith('');
|
|
||||||
expect(setLogoutSpy).toHaveBeenCalledWith(logout);
|
|
||||||
expect(dockerSpy).toHaveBeenCalledWith('', username, password, ecr);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('calls docker login', async () => {
|
|
||||||
jest.spyOn(osm, 'platform').mockImplementation(() => 'linux');
|
|
||||||
const setRegistrySpy = jest.spyOn(stateHelper, 'setRegistry');
|
|
||||||
const setLogoutSpy = jest.spyOn(stateHelper, 'setLogout');
|
|
||||||
const dockerSpy = jest.spyOn(docker, 'login').mockImplementation(() => Promise.resolve());
|
|
||||||
|
|
||||||
const username = 'dbowie';
|
|
||||||
process.env[`INPUT_USERNAME`] = username;
|
|
||||||
|
|
||||||
const password = 'groundcontrol';
|
|
||||||
process.env[`INPUT_PASSWORD`] = password;
|
|
||||||
|
|
||||||
const registry = 'ghcr.io';
|
|
||||||
process.env[`INPUT_REGISTRY`] = registry;
|
|
||||||
|
|
||||||
const ecr = 'auto';
|
|
||||||
process.env['INPUT_ECR'] = ecr;
|
|
||||||
|
|
||||||
const logout = true;
|
|
||||||
process.env['INPUT_LOGOUT'] = String(logout);
|
|
||||||
|
|
||||||
await main();
|
|
||||||
|
|
||||||
expect(setRegistrySpy).toHaveBeenCalledWith(registry);
|
|
||||||
expect(setLogoutSpy).toHaveBeenCalledWith(logout);
|
|
||||||
expect(dockerSpy).toHaveBeenCalledWith(registry, username, password, ecr);
|
|
||||||
});
|
|
Loading…
Reference in a new issue