summaryrefslogtreecommitdiff
path: root/deps/npm/test/tap/git-npmignore.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/test/tap/git-npmignore.js')
-rw-r--r--deps/npm/test/tap/git-npmignore.js131
1 files changed, 78 insertions, 53 deletions
diff --git a/deps/npm/test/tap/git-npmignore.js b/deps/npm/test/tap/git-npmignore.js
index 4cd9898722..6b99bdf1fa 100644
--- a/deps/npm/test/tap/git-npmignore.js
+++ b/deps/npm/test/tap/git-npmignore.js
@@ -1,21 +1,50 @@
-var cat = require('graceful-fs').writeFileSync
-var exec = require('child_process').exec
+var child_process = require('child_process')
var readdir = require('graceful-fs').readdirSync
+var path = require('path')
var resolve = require('path').resolve
-var mkdirp = require('mkdirp')
var rimraf = require('rimraf')
var test = require('tap').test
-var tmpdir = require('osenv').tmpdir
var which = require('which')
var common = require('../common-tap.js')
+var escapeArg = require('../../lib/utils/escape-arg.js')
+var Tacks = require('tacks')
+var Dir = Tacks.Dir
+var File = Tacks.File
+
+var fixture = new Tacks(Dir({
+ deps: Dir({
+ gitch: Dir({
+ '.npmignore': File(
+ 't.js\n'
+ ),
+ '.gitignore': File(
+ 'node_modules/\n'
+ ),
+ 'a.js': File(
+ "console.log('hi');"
+ ),
+ 't.js': File(
+ "require('tap').test(function (t) { t.pass('I am a test!'); t.end(); });"
+ ),
+ 'package.json': File({
+ name: 'gitch',
+ version: '1.0.0',
+ private: true,
+ main: 'a.js'
+ })
+ })
+ }),
+ 'node_modules': Dir({
+ })
+}))
-var pkg = resolve(__dirname, 'git-npmignore')
-var dep = resolve(pkg, 'deps', 'gitch')
+var testdir = resolve(__dirname, path.basename(__filename, '.js'))
+var dep = resolve(testdir, 'deps', 'gitch')
var packname = 'gitch-1.0.0.tgz'
-var packed = resolve(pkg, packname)
-var modules = resolve(pkg, 'node_modules')
+var packed = resolve(testdir, packname)
+var modules = resolve(testdir, 'node_modules')
var installed = resolve(modules, 'gitch')
var expected = [
'a.js',
@@ -23,18 +52,11 @@ var expected = [
'.npmignore'
].sort()
-var EXEC_OPTS = { cwd: pkg }
-
-var gitignore = 'node_modules/\n'
-var npmignore = 't.js\n'
+var NPM_OPTS = { cwd: testdir }
-var a = "console.log('hi');"
-var t = "require('tap').test(function (t) { t.pass('I am a test!'); t.end(); });"
-var fixture = {
- 'name': 'gitch',
- 'version': '1.0.0',
- 'private': true,
- 'main': 'a.js'
+function exec (todo, opts, cb) {
+ console.log(' # EXEC:', todo)
+ child_process.exec(todo, opts, cb)
}
test('setup', function (t) {
@@ -50,7 +72,10 @@ test('npm pack directly from directory', function (t) {
})
test('npm pack via git', function (t) {
- packInstallTest('git+file://' + dep, t)
+ var urlPath = dep
+ .replace(/\\/g, '/') // fixup slashes for Windows
+ .replace(/^\/+/, '') // remove any leading slashes
+ packInstallTest('git+file:///' + urlPath, t)
})
test('cleanup', function (t) {
@@ -60,31 +85,32 @@ test('cleanup', function (t) {
})
function packInstallTest (spec, t) {
+ console.log(' # pack', spec)
common.npm(
[
- '--loglevel', 'silent',
+ '--loglevel', 'error',
'pack', spec
],
- EXEC_OPTS,
+ NPM_OPTS,
function (err, code, stdout, stderr) {
- t.ifError(err, 'npm pack ran without error')
- t.notOk(code, 'npm pack exited cleanly')
- t.notOk(stderr, 'npm pack ran silently')
- t.equal(stdout.trim(), packname, 'got expected package name')
+ if (err) throw err
+ t.is(code, 0, 'npm pack exited cleanly')
+ t.is(stderr, '', 'npm pack ran silently')
+ t.is(stdout.trim(), packname, 'got expected package name')
common.npm(
[
- '--loglevel', 'silent',
+ '--loglevel', 'error',
'install', packed
],
- EXEC_OPTS,
+ NPM_OPTS,
function (err, code, stdout, stderr) {
- t.ifError(err, 'npm install ran without error')
- t.notOk(code, 'npm install exited cleanly')
- t.notOk(stderr, 'npm install ran silently')
+ if (err) throw err
+ t.is(code, 0, 'npm install exited cleanly')
+ t.is(stderr, '', 'npm install ran silently')
var actual = readdir(installed).sort()
- t.same(actual, expected, 'no unexpected files in packed directory')
+ t.isDeeply(actual, expected, 'no unexpected files in packed directory')
rimraf(packed, function () {
t.end()
@@ -96,72 +122,71 @@ function packInstallTest (spec, t) {
}
function cleanup () {
- process.chdir(tmpdir())
- rimraf.sync(pkg)
+ fixture.remove(testdir)
+ rimraf.sync(testdir)
}
function setup (cb) {
cleanup()
- mkdirp.sync(modules)
- mkdirp.sync(dep)
-
- process.chdir(dep)
-
- cat(resolve(dep, '.npmignore'), npmignore)
- cat(resolve(dep, '.gitignore'), gitignore)
- cat(resolve(dep, 'a.js'), a)
- cat(resolve(dep, 't.js'), t)
- cat(resolve(dep, 'package.json'), JSON.stringify(fixture))
+ fixture.create(testdir)
common.npm(
[
- '--loglevel', 'silent',
+ '--loglevel', 'error',
'cache', 'clean'
],
- EXEC_OPTS,
+ NPM_OPTS,
function (er, code, _, stderr) {
if (er) return cb(er)
if (code) return cb(new Error('npm cache nonzero exit: ' + code))
if (stderr) return cb(new Error('npm cache clean error: ' + stderr))
- which('git', function found (er, git) {
+ which('git', function found (er, gitPath) {
if (er) return cb(er)
- exec(git + ' init', init)
+ var git = escapeArg(gitPath)
+
+ exec(git + ' init', {cwd: dep}, init)
function init (er, _, stderr) {
if (er) return cb(er)
if (stderr) return cb(new Error('git init error: ' + stderr))
- exec(git + " config user.name 'Phantom Faker'", user)
+ exec(git + " config user.name 'Phantom Faker'", {cwd: dep}, user)
}
function user (er, _, stderr) {
if (er) return cb(er)
if (stderr) return cb(new Error('git config error: ' + stderr))
- exec(git + ' config user.email nope@not.real', email)
+ exec(git + ' config user.email nope@not.real', {cwd: dep}, email)
}
function email (er, _, stderr) {
if (er) return cb(er)
if (stderr) return cb(new Error('git config error: ' + stderr))
- exec(git + ' add .', addAll)
+ exec(git + ' config core.autocrlf input', {cwd: dep}, autocrlf)
+ }
+
+ function autocrlf (er, _, stderr) {
+ if (er) return cb(er)
+ if (stderr) return cb(new Error('git config error: ' + stderr))
+
+ exec(git + ' add .', {cwd: dep}, addAll)
}
function addAll (er, _, stderr) {
if (er) return cb(er)
if (stderr) return cb(new Error('git add . error: ' + stderr))
- exec(git + ' commit -m boot', commit)
+ exec(git + ' commit -m boot', {cwd: dep}, commit)
}
function commit (er, _, stderr) {
if (er) return cb(er)
if (stderr) return cb(new Error('git commit error: ' + stderr))
-
cb()
}
})