Select Git revision
index.spec.ts
index.spec.ts 8.78 KiB
import fs from 'fs';
import path from 'path';
import { getConfig } from '../../../config/defaults';
import * as _fs from '../../../util/fs';
import * as npmExtract from '.';
const utilfs: any = _fs;
// TODO: fix types
const defaultConfig = getConfig();
function readFixture(fixture: string) {
return fs.readFileSync(
path.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('manager/npm/extract', () => {
describe('.extractPackageFile()', () => {
beforeEach(() => {
utilfs.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();
});