Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Fritz <fritzy@github.com>2022-05-10 22:21:03 +0300
committerGitHub <noreply@github.com>2022-05-10 22:21:03 +0300
commitbfb8bccbe83753e527b43c8a3889696087dbe8f1 (patch)
treef1871422a6eed1fdba619298be2588dffa2929fa /workspaces/arborist/test
parentc024e90a12b4ef17394ba79cfc2ea94f3f933b26 (diff)
feat: add flag --omit-lockfile-registry-resolved (#4874)
* feat(arborist): added flag to omit lockfile resolved * feat: add flag --omit-lockfile-registry-resolved Co-authored-by: Caleb ツ Everett <calebev@amazon.com>
Diffstat (limited to 'workspaces/arborist/test')
-rw-r--r--workspaces/arborist/test/node.js23
-rw-r--r--workspaces/arborist/test/shrinkwrap.js88
2 files changed, 111 insertions, 0 deletions
diff --git a/workspaces/arborist/test/node.js b/workspaces/arborist/test/node.js
index 73e081893..36856a4cc 100644
--- a/workspaces/arborist/test/node.js
+++ b/workspaces/arborist/test/node.js
@@ -2908,3 +2908,26 @@ t.test('overrides', (t) => {
t.end()
})
+
+t.test('node with no edges in is not a registry dep', async t => {
+ const node = new Node({ path: '/foo' })
+ t.equal(node.isRegistryDependency, false)
+})
+
+t.test('node with non registry edge in is not a registry dep', async t => {
+ const root = new Node({ path: '/some/path', pkg: { dependencies: { registry: '', tar: '' } } })
+ const node = new Node({ pkg: { name: 'node', version: '1.0.0' }, parent: root })
+
+ new Node({ pkg: { name: 'registry', dependencies: { node: '^1.0.0' } }, parent: root })
+ new Node({ pkg: { name: 'tar', dependencies: { node: 'file:node' } }, parent: root })
+
+ t.equal(node.isRegistryDependency, false)
+})
+
+t.test('node with only registry edges in a registry dep', async t => {
+ const root = new Node({ path: '/some/path', pkg: { dependencies: { registry: '', tar: '' } } })
+ const node = new Node({ pkg: { name: 'node', version: '1.0.0' }, parent: root })
+ new Node({ pkg: { name: 'registry', dependencies: { node: '^1.0.0' } }, parent: root })
+
+ t.equal(node.isRegistryDependency, true)
+})
diff --git a/workspaces/arborist/test/shrinkwrap.js b/workspaces/arborist/test/shrinkwrap.js
index d47266d30..07178062e 100644
--- a/workspaces/arborist/test/shrinkwrap.js
+++ b/workspaces/arborist/test/shrinkwrap.js
@@ -231,6 +231,94 @@ t.test('throws when attempting to access data before loading', t => {
t.end()
})
+t.only('resolveOptions', async t => {
+ const url = 'https://private.registry.org/deadbeef/registry/-/registry-1.2.3.tgz'
+ const someOtherRegistry = 'https://someother.registry.org/registry/-/registry-1.2.3.tgz'
+ const getData = async (resolveOptions) => {
+ const dir = t.testdir()
+ const meta = await Shrinkwrap.load({
+ path: dir,
+ resolveOptions,
+ })
+
+ const root = new Node({
+ pkg: {
+ name: 'root',
+ dependencies: {
+ registry: '^1.0.0',
+ 'some-other-registry': '^1.0.0',
+ '@scoped/some-other-registry': '^1.0.0',
+ tar: url,
+ },
+ },
+ path: dir,
+ realpath: dir,
+ meta,
+ })
+
+ const registry = new Node({
+ pkg: { name: 'registry', version: '1.2.3' },
+ resolved: url,
+ integrity: 'sha512-registry',
+ parent: root,
+ })
+
+ const otherRegistry = new Node({
+ pkg: { name: 'some-other-registry', version: '1.2.3' },
+ resolved: someOtherRegistry,
+ integrity: 'sha512-registry',
+ parent: root,
+ })
+
+ const scopedOtherRegistry = new Node({
+ pkg: { name: '@scope/some-other-registry', version: '1.2.3' },
+ resolved: someOtherRegistry,
+ integrity: 'sha512-registry',
+ parent: root,
+ })
+
+ const tar = new Node({
+ pkg: { name: 'tar', version: '1.2.3' },
+ resolved: url,
+ integrity: 'sha512-registry',
+ parent: root,
+ })
+
+ calcDepFlags(root)
+ meta.add(root)
+ return { data: meta.commit(), registry, tar, root, otherRegistry, scopedOtherRegistry }
+ }
+
+ await t.test('omitLockfileRegistryResolved', async t => {
+ const { data } = await getData({ omitLockfileRegistryResolved: true })
+ // registry dependencies in v2 packages and v1 dependencies should
+ // have resolved stripped.
+ t.strictSame(data.packages['node_modules/registry'].resolved, undefined)
+ t.strictSame(data.dependencies.registry.resolved, undefined)
+
+ // tar should have resolved because it is not a registry dep.
+ t.strictSame(data.packages['node_modules/tar'].resolved, url)
+ // v1 url dependencies never have resolved.
+ t.strictSame(data.dependencies.tar.resolved, undefined)
+ })
+
+ await t.test('omitLockfileRegistryResolved: false', async t => {
+ const { data } = await getData({ omitLockfileRegistryResolved: false })
+ t.strictSame(data.packages['node_modules/registry'].resolved, url)
+ t.strictSame(data.dependencies.registry.resolved, url)
+
+ t.strictSame(data.packages['node_modules/tar'].resolved, url)
+ // v1 url dependencies never have resolved.
+ t.strictSame(data.dependencies.tar.resolved, undefined)
+ })
+
+ t.test('metaFromNode default', async t => {
+ // test to cover options default.
+ const { registry } = await getData(undefined)
+ t.strictSame(Shrinkwrap.metaFromNode(registry, '').resolved, url)
+ })
+})
+
t.test('construct metadata from node and package data', t => {
const meta = new Shrinkwrap({ path: '/home/user/projects/root' })
// fake load