From c466c12743598f08ed0411356e0871464dd3e2b8 Mon Sep 17 00:00:00 2001 From: Luke Tomlinson Date: Mon, 10 May 2021 10:27:57 -0400 Subject: [PATCH 1/4] Add option to not trim whitespace from inputs --- packages/core/__tests__/core.test.ts | 17 +++++++++++++++++ packages/core/src/core.ts | 7 +++++++ 2 files changed, 24 insertions(+) diff --git a/packages/core/__tests__/core.test.ts b/packages/core/__tests__/core.test.ts index a1ebfd7b9f..d834d489ea 100644 --- a/packages/core/__tests__/core.test.ts +++ b/packages/core/__tests__/core.test.ts @@ -27,6 +27,7 @@ const testEnvVars = { INPUT_BOOLEAN_INPUT_FALSE2: 'False', INPUT_BOOLEAN_INPUT_FALSE3: 'FALSE', INPUT_WRONG_BOOLEAN_INPUT: 'wrong', + INPUT_WITH_TRAILING_WHITESPACE: ' some val ', // Save inputs STATE_TEST_1: 'state_val', @@ -165,6 +166,22 @@ describe('@actions/core', () => { ) }) + it('getInput gets trims whitespace by default', () => { + expect(core.getInput('with trailing whitespace')).toBe('some val') + }) + + it('getInput gets trims whitespace when option is explicitly true', () => { + expect( + core.getInput('with trailing whitespace', {trimWhiteSpace: true}) + ).toBe('some val') + }) + + it('getInput gets does not trim whitespace when option is false', () => { + expect( + core.getInput('with trailing whitespace', {trimWhiteSpace: false}) + ).toBe(' some val ') + }) + it('getInput gets non-required boolean input', () => { expect(core.getBooleanInput('boolean input')).toBe(true) }) diff --git a/packages/core/src/core.ts b/packages/core/src/core.ts index 1822bf9372..624d40ac70 100644 --- a/packages/core/src/core.ts +++ b/packages/core/src/core.ts @@ -11,6 +11,9 @@ import * as path from 'path' export interface InputOptions { /** Optional. Whether the input is required. If required and not present, will throw. Defaults to false */ required?: boolean + + /** Optional. Whether whitespace will be trimmed for the input. Defaults to true */ + trimWhiteSpace?: boolean } /** @@ -88,6 +91,10 @@ export function getInput(name: string, options?: InputOptions): string { throw new Error(`Input required and not supplied: ${name}`) } + if (options && options.trimWhiteSpace === false) { + return val + } + return val.trim() } From 797132486407f5c5c947c8bc4b3b479706bdffe5 Mon Sep 17 00:00:00 2001 From: Luke Tomlinson Date: Mon, 10 May 2021 11:53:09 -0400 Subject: [PATCH 2/4] Fix typos --- packages/core/__tests__/core.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/__tests__/core.test.ts b/packages/core/__tests__/core.test.ts index d834d489ea..1d9e530b0e 100644 --- a/packages/core/__tests__/core.test.ts +++ b/packages/core/__tests__/core.test.ts @@ -166,17 +166,17 @@ describe('@actions/core', () => { ) }) - it('getInput gets trims whitespace by default', () => { + it('getInput trims whitespace by default', () => { expect(core.getInput('with trailing whitespace')).toBe('some val') }) - it('getInput gets trims whitespace when option is explicitly true', () => { + it('getInput trims whitespace when option is explicitly true', () => { expect( core.getInput('with trailing whitespace', {trimWhiteSpace: true}) ).toBe('some val') }) - it('getInput gets does not trim whitespace when option is false', () => { + it('getInput does not trim whitespace when option is false', () => { expect( core.getInput('with trailing whitespace', {trimWhiteSpace: false}) ).toBe(' some val ') From fbfd24061cda19cc194c284cd93f3c3b2c08fda7 Mon Sep 17 00:00:00 2001 From: Luke Tomlinson Date: Mon, 10 May 2021 11:53:48 -0400 Subject: [PATCH 3/4] Add doc clarification --- packages/core/src/core.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/core.ts b/packages/core/src/core.ts index 624d40ac70..0a275a6dbf 100644 --- a/packages/core/src/core.ts +++ b/packages/core/src/core.ts @@ -12,7 +12,7 @@ export interface InputOptions { /** Optional. Whether the input is required. If required and not present, will throw. Defaults to false */ required?: boolean - /** Optional. Whether whitespace will be trimmed for the input. Defaults to true */ + /** Optional. Whether leading/trailing whitespace will be trimmed for the input. Defaults to true */ trimWhiteSpace?: boolean } From e8c0dd923ffaa6ea4440c6dce317ff37493e0eac Mon Sep 17 00:00:00 2001 From: Luke Tomlinson Date: Tue, 11 May 2021 09:21:53 -0400 Subject: [PATCH 4/4] Rename options --- packages/core/__tests__/core.test.ts | 4 ++-- packages/core/src/core.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/core/__tests__/core.test.ts b/packages/core/__tests__/core.test.ts index 1d9e530b0e..dee2c78d81 100644 --- a/packages/core/__tests__/core.test.ts +++ b/packages/core/__tests__/core.test.ts @@ -172,13 +172,13 @@ describe('@actions/core', () => { it('getInput trims whitespace when option is explicitly true', () => { expect( - core.getInput('with trailing whitespace', {trimWhiteSpace: true}) + core.getInput('with trailing whitespace', {trimWhitespace: true}) ).toBe('some val') }) it('getInput does not trim whitespace when option is false', () => { expect( - core.getInput('with trailing whitespace', {trimWhiteSpace: false}) + core.getInput('with trailing whitespace', {trimWhitespace: false}) ).toBe(' some val ') }) diff --git a/packages/core/src/core.ts b/packages/core/src/core.ts index 0a275a6dbf..52e6d7950e 100644 --- a/packages/core/src/core.ts +++ b/packages/core/src/core.ts @@ -13,7 +13,7 @@ export interface InputOptions { required?: boolean /** Optional. Whether leading/trailing whitespace will be trimmed for the input. Defaults to true */ - trimWhiteSpace?: boolean + trimWhitespace?: boolean } /** @@ -91,7 +91,7 @@ export function getInput(name: string, options?: InputOptions): string { throw new Error(`Input required and not supplied: ${name}`) } - if (options && options.trimWhiteSpace === false) { + if (options && options.trimWhitespace === false) { return val }