1'use strict' 2const fs = require('fs') 3var path = require('path') 4var test = require('tap').test 5var mr = require('npm-registry-mock') 6var Tacks = require('tacks') 7var File = Tacks.File 8var Dir = Tacks.Dir 9var common = require('../common-tap.js') 10 11var basedir = common.pkg 12var testdir = path.join(basedir, 'testdir') 13var cachedir = common.cache 14var globaldir = path.join(basedir, 'global') 15var tmpdir = path.join(basedir, 'tmp') 16 17var conf = { 18 cwd: testdir, 19 env: Object.assign({}, process.env, { 20 npm_config_cache: cachedir, 21 npm_config_tmp: tmpdir, 22 npm_config_prefix: globaldir, 23 npm_config_registry: common.registry, 24 npm_config_loglevel: 'warn' 25 }) 26} 27 28var server 29var fixture = new Tacks(Dir({ 30 cache: Dir(), 31 global: Dir(), 32 tmp: Dir(), 33 testdir: Dir({ 34 'package-lock.json': File({ 35 name: 'http-locks', 36 version: '1.0.0', 37 lockfileVersion: 1, 38 requires: true, 39 dependencies: { 40 minimist: { 41 version: common.registry + '/minimist/-/minimist-0.0.5.tgz', 42 integrity: 'sha1-16oye87PUY+RBqxrjwA/o7zqhWY=' 43 } 44 } 45 }), 46 'package.json': File({ 47 name: 'http-locks', 48 version: '1.0.0', 49 dependencies: { 50 minimist: common.registry + '/minimist/-/minimist-0.0.5.tgz' 51 } 52 }) 53 }) 54})) 55 56function setup () { 57 cleanup() 58 fixture.create(basedir) 59} 60 61function cleanup () { 62 fixture.remove(basedir) 63} 64 65test('setup', function (t) { 66 setup() 67 mr({port: common.port, throwOnUnmatched: true}, function (err, s) { 68 if (err) throw err 69 server = s 70 t.done() 71 }) 72}) 73 74test('http deps in lock files', function (t) { 75 common.npm(['install'], conf, function (err, code, stdout, stderr) { 76 if (err) throw err 77 t.is(code, 0, 'command ran ok') 78 t.comment(stdout.trim()) 79 t.comment(stderr.trim()) 80 const minPackage = JSON.parse(fs.readFileSync(testdir + '/node_modules/minimist/package.json')) 81 t.is(minPackage.version, '0.0.5', 'package version was maintained') 82 t.done() 83 }) 84}) 85 86test('cleanup', function (t) { 87 server.close() 88 cleanup() 89 t.done() 90}) 91