diff --git a/src/util/__tests__/config-file.js b/src/util/__tests__/config-file.js index 4314059..6af8ff2 100644 --- a/src/util/__tests__/config-file.js +++ b/src/util/__tests__/config-file.js @@ -19,6 +19,15 @@ const NoNameConfigFile = { contributorsPerLine: 6, contributors: [], } +const NoFilesConfigFile = { + projectOwner: 'jfmengels', + projectName: 'all-contributors-cli', + imageSize: 100, + commit: false, + contributorsPerLine: 6, + contributors: [], + files: [], +} test('Reading an absent configuration file throws a helpful error', () => { expect(() => configFile.readConfig(absentFile)).toThrowError( @@ -41,3 +50,11 @@ test('Should throw error and not allow editing config file if project name or ow configFile.writeConfig(incompleteConfigFilePath, NoNameConfigFile), ).toThrow(`Error! Project name is not set in ${incompleteConfigFilePath}`) }) + +test(`throws if 'files' was overridden in .all-contributorsrc and is empty`, () => { + expect(() => + configFile.writeConfig(incompleteConfigFilePath, NoFilesConfigFile), + ).toThrow( + `Error! Project files was overridden and is empty in ${incompleteConfigFilePath}`, + ) +}) diff --git a/src/util/config-file.js b/src/util/config-file.js index 28b03f5..3fd4853 100644 --- a/src/util/config-file.js +++ b/src/util/config-file.js @@ -24,6 +24,11 @@ function writeConfig(configPath, content) { if (!content.projectName) { throw new Error(`Error! Project name is not set in ${configPath}`) } + if (!content.files.length) { + throw new Error( + `Error! Project files was overridden and is empty in ${configPath}`, + ) + } return pify(fs.writeFile)(configPath, `${JSON.stringify(content, null, 2)}\n`) }