Skip to content
Snippets Groups Projects
Select Git revision
  • 8a7d0c231620bb952d195561b288b63469bc7167
  • master default
2 results

index.spec.ts

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