diff --git a/__tests__/changedFiles.test.ts b/__tests__/changedFiles.test.ts index eab87d17..d529b82f 100644 --- a/__tests__/changedFiles.test.ts +++ b/__tests__/changedFiles.test.ts @@ -159,6 +159,15 @@ describe('toChangedFilesMatchConfig', () => { }); }); + describe('but it has empty values', () => { + const config = {'changed-files': []}; + + it(`returns an empty object`, () => { + const result = toChangedFilesMatchConfig(config); + expect(result).toEqual({}); + }); + }); + describe('and there is an unknown value in the config', () => { const config = {'changed-files': [{any: 'testing'}, {sneaky: 'test'}]}; diff --git a/src/changedFiles.ts b/src/changedFiles.ts index 19176de4..0b8da0f8 100644 --- a/src/changedFiles.ts +++ b/src/changedFiles.ts @@ -54,7 +54,10 @@ export function toChangedFilesMatchConfig( }; if (Array.isArray(changedFilesConfig)) { - if (changedFilesConfig.every(entry => typeof entry === 'string')) { + if ( + changedFilesConfig.length && + changedFilesConfig.every(entry => typeof entry === 'string') + ) { changedFilesMatchConfig.changedFiles = { any: changedFilesConfig }; @@ -80,6 +83,11 @@ export function toChangedFilesMatchConfig( } } + // If no items were added to `changedFiles` then return an empty object + if (!Object.keys(changedFilesMatchConfig.changedFiles).length) { + return {}; + } + return changedFilesMatchConfig; }