Skip to content

Commit 192ec20

Browse files
committed
add basic tests for reading in the dependencies
1 parent 1c8dbc5 commit 192ec20

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"validate-npm-package-name": "^2.0.1"
2424
},
2525
"devDependencies": {
26+
"mkdirp": "^0.5.1",
2627
"npm": "^2",
2728
"rimraf": "^2.1.4",
2829
"tap": "^1.2.0"

test/dependencies.js

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
var tap = require('tap')
2+
var init = require('../')
3+
var path = require('path')
4+
var rimraf = require('rimraf')
5+
var mkdirp = require('mkdirp')
6+
var fs = require('fs')
7+
8+
var EXPECT = {
9+
name: 'test-deps',
10+
version: '1.0.0',
11+
description: '',
12+
author: '',
13+
scripts: { test: 'mocha' },
14+
main: 'index.js',
15+
keywords: [],
16+
license: 'ISC',
17+
dependencies: {
18+
'tap': '*'
19+
},
20+
devDependencies: {
21+
'mocha': '^1.0.0'
22+
}
23+
}
24+
25+
var origwd = process.cwd()
26+
var testdir = path.resolve(__dirname, 'test-deps')
27+
mkdirp.sync(testdir)
28+
process.chdir(testdir)
29+
30+
fs.writeFileSync(path.resolve(testdir, 'package.json'), JSON.stringify({
31+
dependencies: {
32+
'tap': '*'
33+
}
34+
}))
35+
36+
var fakedeps = ['mocha', 'tap', 'async', 'foobar']
37+
38+
fakedeps.forEach(function(dep) {
39+
var depdir = path.resolve(testdir, 'node_modules', dep)
40+
mkdirp.sync(depdir)
41+
42+
fs.writeFileSync(path.resolve(depdir, 'package.json'), JSON.stringify({
43+
name: dep,
44+
version: '1.0.0'
45+
}))
46+
})
47+
48+
tap.test('read in dependencies and dev deps', function (t) {
49+
init(testdir, testdir, {yes: 'yes', 'save-prefix': '^'}, function (er, data) {
50+
if (er) throw er
51+
52+
t.has(data, EXPECT, 'used the correct dependency information')
53+
t.end()
54+
})
55+
})
56+
57+
tap.test('teardown', function (t) {
58+
process.chdir(origwd)
59+
rimraf(testdir, t.end.bind(t))
60+
})

0 commit comments

Comments
 (0)