• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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