Skip to content
Snippets Groups Projects
Select Git revision
  • 2960f3a30b3f3f30ff3765ca32e8229f454d2cda
  • master default protected
  • gh-pages
  • dependabot/npm_and_yarn/nock-14.0.6
  • dependabot/npm_and_yarn/react-19.1.0
  • dependabot/npm_and_yarn/react-dom-19.1.0
  • server-2025-02-01-6100669a
  • server-2024-11-01-87cba042
  • server-2024-10-01-6875b7c8
  • dependabot/npm_and_yarn/path-to-regexp-8.2.0
  • server-2024-09-01-3d52575c
  • daily-tests-gha2
  • daily-tests-gha
  • server-2023-12-01-92d8fb8e
  • server-2023-11-01-a80c93fd
  • server-2023-10-01-31096085
  • coc-v2
  • server-2023-09-01-8edc3810
  • server-2023-08-01-75858a03
  • server-2023-07-01-02183d8d
  • test-9317
  • server-2025-07-01
  • 5.0.2
  • 5.0.1
  • 5.0.0
  • server-2025-06-01
  • server-2025-05-01
  • server-2025-04-03
  • server-2025-03-02
  • server-2025-03-01
  • server-2025-02-02
  • server-2025-01-01
  • server-2024-12-01
  • server-2024-11-02
  • 4.1.0
  • server-2024-09-25
  • server-2024-09-02
  • server-2024-08-01
  • server-2024-07-01
  • 4.0.0
  • server-2024-06-01
41 results

load-logos.js

Blame
  • utils.spec.ts 2.01 KiB
    import { Fixtures } from '../../../../test/fixtures';
    import type { LockFile } from './types';
    import { composeLockFile, parseLockFile } from './utils';
    
    describe('modules/manager/npm/utils', () => {
      describe('parseLockFile', () => {
        it('parses lockfile string into an object', () => {
          const lockFile = Fixtures.get('lockfile-parsing/package-lock.json');
          const parseLockFileResult = parseLockFile(lockFile);
          expect(parseLockFileResult).toStrictEqual({
            detectedIndent: '  ',
            lockFileParsed: {
              lockfileVersion: 2,
              name: 'lockfile-parsing',
              packages: {
                '': {
                  license: 'ISC',
                  name: 'lockfile-parsing',
                  version: '1.0.0',
                },
              },
              requires: true,
              version: '1.0.0',
            },
          });
        });
    
        it('can deal with invalid lockfiles', () => {
          const lockFile = '';
          const parseLockFileResult = parseLockFile(lockFile);
          expect(parseLockFileResult).toStrictEqual({
            detectedIndent: '  ',
            lockFileParsed: undefined,
          });
        });
      });
    
      describe('composeLockFile', () => {
        it('composes lockfile string out of an object', () => {
          const lockFile: LockFile = {
            lockfileVersion: 2,
            name: 'lockfile-parsing',
            packages: {
              '': {
                license: 'ISC',
                name: 'lockfile-parsing',
                version: '1.0.0',
              },
            },
            requires: true,
            version: '1.0.0',
          };
          const lockFileComposed = composeLockFile(lockFile, '  ');
          expect(lockFileComposed).toMatchSnapshot();
        });
    
        it('adds trailing newline to match npms behaviour and avoid diffs', () => {
          const lockFile = Fixtures.get('lockfile-parsing/package-lock.json');
          const { detectedIndent, lockFileParsed } = parseLockFile(lockFile);
          // TODO #7154
          const lockFileComposed = composeLockFile(lockFileParsed!, detectedIndent);
          expect(lockFileComposed).toBe(lockFile);
        });
      });
    });