Files
yarn/__tests__/package-request.js
William Hilton 2b09caff06 Update: Separate lockfile into its own npm package (#4114)
**Summary**

Fixes #3879. Separates the lockfile parser as a separate npm package.

**Test plan**

Existing unit tests.
2017-08-20 00:53:54 +01:00

51 lines
1.6 KiB
JavaScript

/* @flow */
import PackageRequest from '../src/package-request.js';
import * as reporters from '../src/reporters/index.js';
import PackageResolver from '../src/package-resolver.js';
import Lockfile from '../src/lockfile';
import Config from '../src/config.js';
async function prepareRequest(pattern, version, resolved): Object {
const privateDepCache = {[pattern]: {version, resolved}};
const lockfile = new Lockfile({cache: privateDepCache});
const reporter = new reporters.NoopReporter({});
const depRequestPattern = {
pattern,
registry: 'npm',
hint: null,
optional: false,
};
const config = await Config.create({}, reporter);
const resolver = new PackageResolver(config, lockfile);
const request = new PackageRequest(depRequestPattern, resolver);
return {request, reporter};
}
test('Produce valid remote type for a git private dep', async () => {
const {request, reporter} = await prepareRequest(
'private-dep@github:yarnpkg/private-dep#1.0.0',
'1.0.0',
'git+ssh://git@github.com/yarnpkg/private-dep.git#d6c57894210c52be02da7859dbb5205feb85d8b0',
);
expect(request.getLocked('git')._remote.type).toBe('git');
expect(request.getLocked('tarball')._remote.type).toBe('git');
await reporter.close();
});
test('Produce valid remote type for a git public dep', async () => {
const {request, reporter} = await prepareRequest(
'public-dep@yarnpkg/public-dep#1fde368',
'1.0.0',
'https://codeload.github.com/yarnpkg/public-dep/tar.gz/1fde368',
);
expect(request.getLocked('git')._remote.type).toBe('git');
expect(request.getLocked('tarball')._remote.type).toBe('tarball');
await reporter.close();
});