Files
renovate/lib/config/app-strings.spec.ts
Jamie Tanna 6fb540d494 feat(config): support explicit .jsonc file (#43677)
* test(config): validate how many platform-specific filenames there are

As part of future changes, we're introducing `.jsonc` files.

Before we do this, we should make sure we have a test that fully
validates the platform-specific filenames for correct test coverage.

* feat(config): support explicit `.jsonc` file

As noted in #40868, and a follow-up to #36141, we should explicitly look
for a `.jsonc` file in the repository.
2026-05-29 14:00:36 +00:00

71 lines
2.2 KiB
TypeScript

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',
]);
});
});