From e6dcc9542abab7e8400e21807927f83b5cb8c3da Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Mon, 19 Jul 2021 00:06:51 +0800 Subject: [PATCH] Merge pull request #15615 from apalumbo/next Trailing comma handling for "-s" command line paramenter --- .../src/cli/__tests__/utils.test.ts | 26 +++++++++++++++++++ lib/core-server/src/cli/utils.ts | 5 +++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 lib/core-server/src/cli/__tests__/utils.test.ts diff --git a/lib/core-server/src/cli/__tests__/utils.test.ts b/lib/core-server/src/cli/__tests__/utils.test.ts new file mode 100644 index 000000000000..765c669d0142 --- /dev/null +++ b/lib/core-server/src/cli/__tests__/utils.test.ts @@ -0,0 +1,26 @@ +import { parseList } from '../utils'; + +describe('parseList', () => { + test.each` + source | expected + ${'item1,item2, item3'} | ${['item1', 'item2', 'item3']} + ${'item1 , item2, item3 '} | ${['item1', 'item2', 'item3']} + `(`Items will be trimmed, source "$source" should return $expected`, ({ source, expected }) => { + const result = parseList(source); + expect(result).toEqual(expected); + }); + + test.each` + source | expected + ${'item1,item2, '} | ${['item1', 'item2']} + ${'item1, ,item3 '} | ${['item1', 'item3']} + ${'item1,,item3 '} | ${['item1', 'item3']} + ${'item1,, '} | ${['item1']} + `( + `Empty items will be stripped, source "$source" should return $expected`, + ({ source, expected }) => { + const result = parseList(source); + expect(result).toEqual(expected); + } + ); +}); diff --git a/lib/core-server/src/cli/utils.ts b/lib/core-server/src/cli/utils.ts index 03e1baae0d33..36360ba9efbe 100644 --- a/lib/core-server/src/cli/utils.ts +++ b/lib/core-server/src/cli/utils.ts @@ -2,7 +2,10 @@ import deprecate from 'util-deprecate'; import dedent from 'ts-dedent'; export function parseList(str: string): string[] { - return str.split(','); + return str + .split(',') + .map((item) => item.trim()) + .filter((item) => item.length > 0); } export function getEnvConfig(program: Record, configEnv: Record): void {