forked from renovatebot/renovate
/
index.spec.ts
48 lines (43 loc) · 1.58 KB
/
index.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import { getName, mocked } from '../../../../test/util';
import { CONFIG_VALIDATION } from '../../../constants/error-messages';
import { massageConfig } from '../../massage';
import { validateConfig } from '../../validation';
import { resolveConfigPresets } from '../index';
import * as _npm from '../npm';
import * as internal from '.';
jest.mock('./npm');
jest.mock('../../../datasource/npm');
const npm = mocked(_npm);
npm.getPreset = jest.fn((_) => null);
const ignoredPresets = ['default:group', 'default:timezone'];
describe(getName(), () => {
it('fails for undefined internal preset', async () => {
const preset = 'foo:bar';
const presetConfig = { extends: [preset] };
await expect(resolveConfigPresets(presetConfig)).rejects.toThrow(
CONFIG_VALIDATION
);
});
for (const [groupName, groupPresets] of Object.entries(internal.groups)) {
for (const [presetName, presetConfig] of Object.entries(groupPresets)) {
const preset = `${groupName}:${presetName}`;
if (presetName !== 'description' && !ignoredPresets.includes(preset)) {
it(`${preset} validates`, async () => {
try {
const config = await resolveConfigPresets(
massageConfig(presetConfig)
);
const res = await validateConfig(config, true);
expect(res.errors).toHaveLength(0);
expect(res.warnings).toHaveLength(0);
} catch (err) {
if (err.validationError) {
throw new Error(err.validationError);
}
throw err;
}
});
}
}
}
});