Skip to content
Snippets Groups Projects
Select Git revision
  • 101226db977d8fa85c50bcef78f18e39735f1081
  • master default
2 results

index.js

Blame
  • 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();