| const core = require('@actions/core'); |
| const cleanup = require('./cleanup.js'); |
| |
| jest.mock('@actions/core'); |
| |
| const FAKE_ACCESS_KEY_ID = 'MY-AWS-ACCESS-KEY-ID'; |
| const FAKE_SECRET_ACCESS_KEY = 'MY-AWS-SECRET-ACCESS-KEY'; |
| const FAKE_SESSION_TOKEN = 'MY-AWS-SESSION-TOKEN'; |
| const FAKE_REGION = 'fake-region-1'; |
| const ACTION_ENVIRONMENT_VARIABLES = { |
| AWS_ACCESS_KEY_ID: FAKE_ACCESS_KEY_ID, |
| AWS_SECRET_ACCESS_KEY: FAKE_SECRET_ACCESS_KEY, |
| AWS_SESSION_TOKEN: FAKE_SESSION_TOKEN, |
| AWS_DEFAULT_REGION: FAKE_REGION, |
| AWS_REGION: FAKE_REGION, |
| }; |
| |
| describe('Configure AWS Credentials', () => { |
| const OLD_ENV = process.env; |
| |
| beforeEach(() => { |
| jest.resetModules(); |
| process.env = {...OLD_ENV, ...ACTION_ENVIRONMENT_VARIABLES}; |
| }); |
| |
| afterEach(() => { |
| process.env = OLD_ENV; |
| }); |
| |
| test('replaces AWS credential and region env vars with empty strings', async () => { |
| await cleanup(); |
| expect(core.setFailed).toHaveBeenCalledTimes(0); |
| expect(core.exportVariable).toHaveBeenCalledTimes(5); |
| expect(core.exportVariable).toHaveBeenCalledWith('AWS_ACCESS_KEY_ID', ''); |
| expect(core.exportVariable).toHaveBeenCalledWith('AWS_SECRET_ACCESS_KEY', ''); |
| expect(core.exportVariable).toHaveBeenCalledWith('AWS_SESSION_TOKEN', ''); |
| expect(core.exportVariable).toHaveBeenCalledWith('AWS_DEFAULT_REGION', ''); |
| expect(core.exportVariable).toHaveBeenCalledWith('AWS_REGION', ''); |
| }); |
| |
| test('error is caught and fails the action', async () => { |
| core.exportVariable.mockReset(); |
| core.exportVariable.mockImplementation(() => { |
| throw new Error(); |
| }); |
| |
| await cleanup(); |
| |
| expect(core.setFailed).toBeCalled(); |
| }); |
| }); |