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
path: root/test
diff options
context:
space:
mode:
authorKat Marchán <kzm@sykosomatic.org>2017-05-16 06:44:53 +0300
committerRebecca Turner <me@re-becca.org>2017-05-26 04:55:23 +0300
commit180e2981a5a2a7c43a2b35fda73b641abfde704c (patch)
treeba1f352aaaf683feabb23a18ceea9120eb5b8f07 /test
parent2d346e9ba9e64cffffd2bdd0d19a2be2413ebb61 (diff)
feat(shrinkwrap): support extra metadata fields
Diffstat (limited to 'test')
-rw-r--r--test/tap/dedupe.js1
-rw-r--r--test/tap/shrinkwrap-default-dev.js2
-rw-r--r--test/tap/shrinkwrap-dev-dependency.js2
-rw-r--r--test/tap/shrinkwrap-empty-deps.js34
-rw-r--r--test/tap/shrinkwrap-extra-metadata.js83
-rw-r--r--test/tap/shrinkwrap-local-dependency.js6
-rw-r--r--test/tap/shrinkwrap-optional-dependency.js2
-rw-r--r--test/tap/shrinkwrap-optional-property.js2
-rw-r--r--test/tap/shrinkwrap-prod-dependency-also.js6
-rw-r--r--test/tap/shrinkwrap-prod-dependency.js2
-rw-r--r--test/tap/shrinkwrap-shared-dev-dependency.js2
11 files changed, 121 insertions, 21 deletions
diff --git a/test/tap/dedupe.js b/test/tap/dedupe.js
index bdda3474a..b6c601cba 100644
--- a/test/tap/dedupe.js
+++ b/test/tap/dedupe.js
@@ -60,6 +60,7 @@ test('setup', function (t) {
test('dedupe finds the common module and moves it up one level', function (t) {
common.npm([
'--registry', common.registry,
+ '--no-save',
'install', '.'
],
EXEC_OPTS,
diff --git a/test/tap/shrinkwrap-default-dev.js b/test/tap/shrinkwrap-default-dev.js
index 67266644c..5c8929a43 100644
--- a/test/tap/shrinkwrap-default-dev.js
+++ b/test/tap/shrinkwrap-default-dev.js
@@ -83,7 +83,7 @@ test('shrinkwrap-default-dev', function (t) {
t.comment(stdout.trim())
t.comment(stderr.trim())
var swrap = JSON.parse(fs.readFileSync(shrinkwrapPath))
- t.isDeeply(swrap, shrinkwrapWithDev, 'Shrinkwrap included dev deps by default')
+ t.isDeeply(swrap.dependencies, shrinkwrapWithDev.dependencies, 'Shrinkwrap included dev deps by default')
t.done()
})
})
diff --git a/test/tap/shrinkwrap-dev-dependency.js b/test/tap/shrinkwrap-dev-dependency.js
index 20e2de1d2..79d3b7cd0 100644
--- a/test/tap/shrinkwrap-dev-dependency.js
+++ b/test/tap/shrinkwrap-dev-dependency.js
@@ -79,7 +79,7 @@ test("shrinkwrap doesn't strip out the dependency", function (t) {
} catch (ex) {
t.comment(ex)
}
- t.deepEqual(results, desired)
+ t.deepEqual(results.dependencies, desired.dependencies)
s.close()
t.end()
})
diff --git a/test/tap/shrinkwrap-empty-deps.js b/test/tap/shrinkwrap-empty-deps.js
index cf7e9a6e8..37ce4d4f1 100644
--- a/test/tap/shrinkwrap-empty-deps.js
+++ b/test/tap/shrinkwrap-empty-deps.js
@@ -1,19 +1,22 @@
-var fs = require('fs')
-var path = require('path')
+'use strict'
-var mkdirp = require('mkdirp')
-var mr = require('npm-registry-mock')
-var osenv = require('osenv')
-var rimraf = require('rimraf')
-var test = require('tap').test
+const common = require('../common-tap.js')
+const fs = require('fs')
+const mkdirp = require('mkdirp')
+const mr = require('npm-registry-mock')
+const npm = require('../../lib/npm.js')
+const osenv = require('osenv')
+const path = require('path')
+const rimraf = require('rimraf')
+const shrinkwrap = require('../../lib/shrinkwrap.js')
+const ssri = require('ssri')
+const test = require('tap').test
-var common = require('../common-tap.js')
+const pkg = path.resolve(__dirname, 'shrinkwrap-empty-deps')
-var pkg = path.resolve(__dirname, 'shrinkwrap-empty-deps')
+const EXEC_OPTS = { cwd: pkg }
-var EXEC_OPTS = { cwd: pkg }
-
-var json = {
+const json = {
author: 'Rockbert',
name: 'shrinkwrap-empty-deps',
version: '0.0.0',
@@ -51,7 +54,12 @@ test('returns a list of removed items', function (t) {
t.same(
{
'name': 'shrinkwrap-empty-deps',
- 'version': '0.0.0'
+ 'version': '0.0.0',
+ 'createdWith': `npm@${npm.version}`,
+ 'lockfileVersion': shrinkwrap.PKGLOCK_VERSION,
+ 'packageIntegrity': ssri.fromData(JSON.stringify(json, null, 2), {
+ algorithms: ['sha512']
+ }).toString()
},
JSON.parse(desired),
'shrinkwrap handled empty deps without exploding'
diff --git a/test/tap/shrinkwrap-extra-metadata.js b/test/tap/shrinkwrap-extra-metadata.js
new file mode 100644
index 000000000..1947ee575
--- /dev/null
+++ b/test/tap/shrinkwrap-extra-metadata.js
@@ -0,0 +1,83 @@
+'use strict'
+
+const common = require('../common-tap.js')
+const fs = require('fs')
+const mkdirp = require('mkdirp')
+const mr = require('npm-registry-mock')
+const npm = require('../../lib/npm.js')
+const osenv = require('osenv')
+const path = require('path')
+const rimraf = require('rimraf')
+const shrinkwrap = require('../../lib/shrinkwrap.js')
+const ssri = require('ssri')
+const test = require('tap').test
+
+const pkg = path.join(__dirname, path.basename(__filename, '.js'))
+
+const EXEC_OPTS = { cwd: pkg }
+
+const json = {
+ author: 'Rockbert',
+ name: 'shrinkwrap-extra-metadata',
+ version: '0.0.0'
+}
+
+test('setup', function (t) {
+ cleanup()
+ mkdirp.sync(pkg)
+ fs.writeFileSync(
+ path.join(pkg, 'package.json'),
+ JSON.stringify(json, null, 2)
+ )
+
+ process.chdir(pkg)
+ t.end()
+})
+
+test('adds additional metadata fields from the pkglock spec', function (t) {
+ mr({ port: common.port }, function (er, s) {
+ common.npm(
+ [
+ '--registry', common.registry,
+ '--loglevel', 'silent',
+ 'shrinkwrap'
+ ],
+ EXEC_OPTS,
+ function (err, code, stdout, stderr) {
+ t.ifError(err, 'shrinkwrap ran without issue')
+ t.notOk(code, 'shrinkwrap ran without raising error code')
+
+ fs.readFile(path.resolve(pkg, 'npm-shrinkwrap.json'), function (err, desired) {
+ t.ifError(err, 'read npm-shrinkwrap.json without issue')
+ t.same(
+ {
+ 'name': 'shrinkwrap-extra-metadata',
+ 'version': '0.0.0',
+ 'createdWith': `npm@${npm.version}`,
+ 'lockfileVersion': shrinkwrap.PKGLOCK_VERSION,
+ 'packageIntegrity': ssri.fromData(JSON.stringify(json, null, 2), {
+ algorithms: ['sha512']
+ }).toString()
+ },
+ JSON.parse(desired),
+ 'shrinkwrap wrote the expected metadata fields'
+ )
+
+ s.close()
+ t.end()
+ })
+ }
+ )
+ })
+})
+
+test('cleanup', function (t) {
+ cleanup()
+
+ t.end()
+})
+
+function cleanup () {
+ process.chdir(osenv.tmpdir())
+ rimraf.sync(pkg)
+}
diff --git a/test/tap/shrinkwrap-local-dependency.js b/test/tap/shrinkwrap-local-dependency.js
index 56e044de0..992343ccf 100644
--- a/test/tap/shrinkwrap-local-dependency.js
+++ b/test/tap/shrinkwrap-local-dependency.js
@@ -85,7 +85,11 @@ test('shrinkwrap uses resolved with file: on local deps', function (t) {
t.comment(stderr.trim())
t.equal(code, 0, 'npm exited normally')
var data = fs.readFileSync(path.join(testdir, 'npm-shrinkwrap.json'), { encoding: 'utf8' })
- t.deepEqual(JSON.parse(data), shrinkwrap, 'shrinkwrap looks correct')
+ t.deepEqual(
+ JSON.parse(data).dependencies,
+ shrinkwrap.dependencies,
+ 'shrinkwrap looks correct'
+ )
t.end()
})
})
diff --git a/test/tap/shrinkwrap-optional-dependency.js b/test/tap/shrinkwrap-optional-dependency.js
index 0e9b3b202..0373e89e6 100644
--- a/test/tap/shrinkwrap-optional-dependency.js
+++ b/test/tap/shrinkwrap-optional-dependency.js
@@ -43,7 +43,7 @@ test('shrinkwrap does not fail on missing optional dependency', function (t) {
npm.commands.shrinkwrap([], true, function (err, results) {
if (err) return fail(err)
- t.deepEqual(results, desired)
+ t.deepEqual(results.dependencies, desired.dependencies)
s.close()
t.end()
})
diff --git a/test/tap/shrinkwrap-optional-property.js b/test/tap/shrinkwrap-optional-property.js
index 52deba863..19e55a45f 100644
--- a/test/tap/shrinkwrap-optional-property.js
+++ b/test/tap/shrinkwrap-optional-property.js
@@ -33,7 +33,7 @@ test('shrinkwrap adds optional property when optional dependency', function (t)
npm.commands.shrinkwrap([], true, function (err, results) {
if (err) return fail(err)
- t.deepEqual(results, desired)
+ t.deepEqual(results.dependencies, desired.dependencies)
s.close()
t.end()
})
diff --git a/test/tap/shrinkwrap-prod-dependency-also.js b/test/tap/shrinkwrap-prod-dependency-also.js
index 4d18aedca..6cc388946 100644
--- a/test/tap/shrinkwrap-prod-dependency-also.js
+++ b/test/tap/shrinkwrap-prod-dependency-also.js
@@ -46,7 +46,11 @@ test("shrinkwrap --also=development doesn't strip out prod dependencies", functi
t.ifError(ex, 'read shrinkwrap')
}
}
- t.deepEqual(results, desired, 'results have dev dep')
+ t.deepEqual(
+ results.dependencies,
+ desired.dependencies,
+ 'results have dev dep'
+ )
s.done()
t.end()
})
diff --git a/test/tap/shrinkwrap-prod-dependency.js b/test/tap/shrinkwrap-prod-dependency.js
index cdb6416cc..023a3bf0b 100644
--- a/test/tap/shrinkwrap-prod-dependency.js
+++ b/test/tap/shrinkwrap-prod-dependency.js
@@ -26,7 +26,7 @@ test("shrinkwrap --dev doesn't strip out prod dependencies", function (t) {
npm.commands.shrinkwrap([], true, function (err, results) {
if (err) return t.fail(err)
- t.deepEqual(results, desired)
+ t.deepEqual(results.dependencies, desired.dependencies)
s.close()
t.end()
})
diff --git a/test/tap/shrinkwrap-shared-dev-dependency.js b/test/tap/shrinkwrap-shared-dev-dependency.js
index 0414ac8c2..71e6371bc 100644
--- a/test/tap/shrinkwrap-shared-dev-dependency.js
+++ b/test/tap/shrinkwrap-shared-dev-dependency.js
@@ -67,7 +67,7 @@ test("shrinkwrap doesn't strip out the shared dependency", function (t) {
}).spread((code) => {
t.is(code, 0, 'shrinkwrap')
var results = JSON.parse(fs.readFileSync(`${pkg}/npm-shrinkwrap.json`))
- t.deepEqual(results, desired)
+ t.deepEqual(results.dependencies, desired.dependencies)
t.end()
})
})