import { getConfigFileNames, setUserConfigFileNames } from './app-strings.ts'; describe('config/app-strings', () => { beforeEach(() => { setUserConfigFileNames([]); }); it('adds user configured filenames to list', () => { let filenames = getConfigFileNames(); expect(filenames.includes('abc')).toBeFalse(); expect(filenames.includes('def')).toBeFalse(); setUserConfigFileNames(['abc', 'def']); filenames = getConfigFileNames(); expect(filenames.includes('abc')).toBeTrue(); expect(filenames.includes('def')).toBeTrue(); }); it('expands brace patterns for json, jsonc and json5 filenames', () => { const filenames = getConfigFileNames(); expect(filenames.includes('renovate.json')).toBeTrue(); expect(filenames.includes('renovate.jsonc')).toBeTrue(); expect(filenames.includes('renovate.json5')).toBeTrue(); expect(filenames.includes('.renovaterc.json')).toBeTrue(); expect(filenames.includes('.renovaterc.jsonc')).toBeTrue(); expect(filenames.includes('.renovaterc.json5')).toBeTrue(); expect(filenames.includes('renovate.json{,c,5}')).toBeFalse(); expect(filenames.includes('package.jsonc')).toBeFalse(); expect(filenames.includes('package.json5')).toBeFalse(); }); it('filters based on platform', () => { const filenames = getConfigFileNames('gitea'); expect(filenames.includes('.github/renovate.json')).toBeFalse(); expect(filenames.includes('.gitea/renovate.json')).toBeTrue(); const platformSpecificFilenames = filenames.filter((v) => v.startsWith('.gitea/'), ); expect(platformSpecificFilenames).toEqual([ '.gitea/renovate.json', '.gitea/renovate.jsonc', '.gitea/renovate.json5', ]); expect( getConfigFileNames('github').includes('.github/renovate.json'), ).toBeTrue(); }); it('does not allow the local platform to have an associated filename', () => { const filenames = getConfigFileNames('local'); expect(filenames.includes('.local/renovate.json')).toBeFalse(); expect(filenames).toEqual([ 'renovate.json', 'renovate.jsonc', 'renovate.json5', '.renovaterc', '.renovaterc.json', '.renovaterc.jsonc', '.renovaterc.json5', 'package.json', ]); }); });