You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

60 lines
1.3 KiB

var tap = require('tap')
var init = require('../')
var path = require('path')
var rimraf = require('rimraf')
var mkdirp = require('mkdirp')
var fs = require('fs')
var EXPECT = {
name: 'test-deps',
version: '1.0.0',
description: '',
author: '',
scripts: { test: 'mocha' },
main: 'index.js',
keywords: [],
license: 'ISC',
dependencies: {
'tap': '*'
},
devDependencies: {
'mocha': '^1.0.0'
}
}
var origwd = process.cwd()
var testdir = path.resolve(__dirname, 'test-deps')
mkdirp.sync(testdir)
process.chdir(testdir)
fs.writeFileSync(path.resolve(testdir, 'package.json'), JSON.stringify({
dependencies: {
'tap': '*'
}
}))
var fakedeps = ['mocha', 'tap', 'async', 'foobar']
fakedeps.forEach(function(dep) {
var depdir = path.resolve(testdir, 'node_modules', dep)
mkdirp.sync(depdir)
fs.writeFileSync(path.resolve(depdir, 'package.json'), JSON.stringify({
name: dep,
version: '1.0.0'
}))
})
tap.test('read in dependencies and dev deps', function (t) {
init(testdir, testdir, {yes: 'yes', 'save-prefix': '^'}, function (er, data) {
if (er) throw er
t.same(data, EXPECT, 'used the correct dependency information')
t.end()
})
})
tap.test('teardown', function (t) {
process.chdir(origwd)
rimraf(testdir, t.end.bind(t))
})