Select Git revision
index.spec.ts 9.76 KiB
import { readFileSync } from 'fs';
import upath from 'upath';
import { getName } from '../../../../test/util';
import { getConfig } from '../../../config/defaults';
import * as _fs from '../../../util/fs';
import * as npmExtract from '.';
const fs: any = _fs;
// TODO: fix types
const defaultConfig = getConfig();
function readFixture(fixture: string) {
return readFileSync(
upath.resolve(__dirname, `../__fixtures__/${fixture}`),
'utf8'
);
}
const input01Content = readFixture('inputs/01.json');
const workspacesContent = readFixture('inputs/workspaces.json');
const workspacesSimpleContent = readFixture('inputs/workspaces-simple.json');
const vendorisedContent = readFixture('is-object.json');
const invalidNameContent = readFixture('invalid-name.json');
describe(getName(__filename), () => {
describe('.extractPackageFile()', () => {
beforeEach(() => {
fs.readLocalFile = jest.fn(() => null);
});
it('returns null if cannot parse', async () => {
const res = await npmExtract.extractPackageFile(
'not json',
'package.json',
defaultConfig
);
expect(res).toBeNull();
});
it('catches invalid names', async () => {
const res = await npmExtract.extractPackageFile(
invalidNameContent,
'package.json',
defaultConfig
);
expect(res).toMatchSnapshot();
});
it('ignores vendorised package.json', async () => {
const res = await npmExtract.extractPackageFile(
vendorisedContent,
'package.json',
defaultConfig
);
expect(res).toBeNull();
});
it('throws error if non-root renovate config', async () => {
await expect(
npmExtract.extractPackageFile(
'{ "renovate": {} }',
'backend/package.json',
defaultConfig
)
).rejects.toThrow();
});
it('returns null if no deps', async () => {
const res = await npmExtract.extractPackageFile(
'{ "renovate": {} }',
'package.json',
defaultConfig
);
expect(res).toBeNull();