diff options
author | Kat Marchán <kzm@sykosomatic.org> | 2017-05-16 06:44:53 +0300 |
---|---|---|
committer | Rebecca Turner <me@re-becca.org> | 2017-05-26 04:55:23 +0300 |
commit | 180e2981a5a2a7c43a2b35fda73b641abfde704c (patch) | |
tree | ba1f352aaaf683feabb23a18ceea9120eb5b8f07 /test | |
parent | 2d346e9ba9e64cffffd2bdd0d19a2be2413ebb61 (diff) |
feat(shrinkwrap): support extra metadata fields
Diffstat (limited to 'test')
-rw-r--r-- | test/tap/dedupe.js | 1 | ||||
-rw-r--r-- | test/tap/shrinkwrap-default-dev.js | 2 | ||||
-rw-r--r-- | test/tap/shrinkwrap-dev-dependency.js | 2 | ||||
-rw-r--r-- | test/tap/shrinkwrap-empty-deps.js | 34 | ||||
-rw-r--r-- | test/tap/shrinkwrap-extra-metadata.js | 83 | ||||
-rw-r--r-- | test/tap/shrinkwrap-local-dependency.js | 6 | ||||
-rw-r--r-- | test/tap/shrinkwrap-optional-dependency.js | 2 | ||||
-rw-r--r-- | test/tap/shrinkwrap-optional-property.js | 2 | ||||
-rw-r--r-- | test/tap/shrinkwrap-prod-dependency-also.js | 6 | ||||
-rw-r--r-- | test/tap/shrinkwrap-prod-dependency.js | 2 | ||||
-rw-r--r-- | test/tap/shrinkwrap-shared-dev-dependency.js | 2 |
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() }) }) |