From 6fcaac504651656d8ae9f23ff94b386925ed9281 Mon Sep 17 00:00:00 2001 From: Marc Nuri Date: Thu, 12 Sep 2019 19:41:11 +0200 Subject: [PATCH] actions/toolkit#127: getInput supports variables with multiple spaces (#129) * actions/toolkit#127: getInput supports variables with multiple spaces * actions/toolkit#127: PR comment, update changelog --- packages/core/RELEASES.md | 1 + packages/core/__tests__/lib.test.ts | 9 ++++++++- packages/core/src/core.ts | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/core/RELEASES.md b/packages/core/RELEASES.md index 062c2c66..fe65a27b 100644 --- a/packages/core/RELEASES.md +++ b/packages/core/RELEASES.md @@ -2,6 +2,7 @@ ### Unreleased +- Add support for action input variables with multiple spaces [#127](https://github.com/actions/toolkit/issues/127) - Switched ## commands to :: commands (should have no noticeable impact) [#110)(https://github.com/actions/toolkit/pull/110) ### 1.1.0 diff --git a/packages/core/__tests__/lib.test.ts b/packages/core/__tests__/lib.test.ts index 23c3aafb..0bbe43d8 100644 --- a/packages/core/__tests__/lib.test.ts +++ b/packages/core/__tests__/lib.test.ts @@ -16,7 +16,8 @@ const testEnvVars = { // Set inputs INPUT_MY_INPUT: 'val', INPUT_MISSING: '', - 'INPUT_SPECIAL_CHARS_\'\t"\\': '\'\t"\\ response ' + 'INPUT_SPECIAL_CHARS_\'\t"\\': '\'\t"\\ response ', + INPUT_MULTIPLE_SPACES_VARIABLE: 'I have multiple spaces' } describe('@actions/core', () => { @@ -113,6 +114,12 @@ describe('@actions/core', () => { expect(core.getInput('special chars_\'\t"\\')).toBe('\'\t"\\ response') }) + it('getInput handles multiple spaces', () => { + expect(core.getInput('multiple spaces variable')).toBe( + 'I have multiple spaces' + ) + }) + it('setOutput produces the correct command', () => { core.setOutput('some output', 'some value') assertWriteCalls([`::set-output name=some output,::some value${os.EOL}`]) diff --git a/packages/core/src/core.ts b/packages/core/src/core.ts index f7f17430..74e8aacf 100644 --- a/packages/core/src/core.ts +++ b/packages/core/src/core.ts @@ -72,7 +72,7 @@ export function addPath(inputPath: string): void { */ export function getInput(name: string, options?: InputOptions): string { const val: string = - process.env[`INPUT_${name.replace(' ', '_').toUpperCase()}`] || '' + process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '' if (options && options.required && !val) { throw new Error(`Input required and not supplied: ${name}`) }