mirror of https://github.com/lukechilds/node.git
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.
96 lines
1.8 KiB
96 lines
1.8 KiB
10 years ago
|
var fs = require('graceful-fs')
|
||
|
var join = require('path').join
|
||
|
|
||
|
var mkdirp = require('mkdirp')
|
||
|
var rimraf = require('rimraf')
|
||
|
var test = require('tap').test
|
||
|
|
||
|
var Packer = require('..')
|
||
|
|
||
|
var pkg = join(__dirname, 'test-package')
|
||
|
|
||
|
var gitDir = join(pkg, '.git')
|
||
|
|
||
|
var elfJS = function () {/*
|
||
|
module.exports = function () {
|
||
|
console.log("i'm a elf")
|
||
|
}
|
||
|
*/}.toString().split('\n').slice(1, -1).join()
|
||
|
|
||
|
var json = {
|
||
|
'name': 'test-package',
|
||
|
'version': '3.1.4',
|
||
|
'main': 'elf.js'
|
||
|
}
|
||
|
|
||
|
test('setup', function (t) {
|
||
|
setup()
|
||
|
t.end()
|
||
|
})
|
||
|
|
||
|
var included = [
|
||
|
'package.json',
|
||
|
'elf.js'
|
||
|
]
|
||
|
|
||
|
test('follows npm package ignoring rules', function (t) {
|
||
|
var subject = new Packer({ path: pkg, type: 'Directory', isDirectory: true })
|
||
|
subject.on('entry', function (entry) {
|
||
|
t.equal(entry.type, 'File', 'only files in this package')
|
||
|
var filename = entry.basename
|
||
|
t.ok(
|
||
|
included.indexOf(filename) > -1,
|
||
|
filename + ' is included'
|
||
|
)
|
||
|
})
|
||
|
// need to do this so fstream doesn't explode when files are removed from
|
||
|
// under it
|
||
|
subject.on('end', function () { t.end() })
|
||
|
})
|
||
|
|
||
|
test('cleanup', function (t) {
|
||
|
cleanup()
|
||
|
t.end()
|
||
|
})
|
||
|
|
||
|
function setup () {
|
||
|
cleanup()
|
||
|
mkdirp.sync(pkg)
|
||
|
fs.writeFileSync(
|
||
|
join(pkg, 'package.json'),
|
||
|
JSON.stringify(json, null, 2)
|
||
|
)
|
||
|
|
||
|
fs.writeFileSync(
|
||
|
join(pkg, 'elf.js'),
|
||
|
elfJS
|
||
|
)
|
||
|
|
||
|
fs.writeFileSync(
|
||
|
join(pkg, '.npmrc'),
|
||
|
'packaged=false'
|
||
|
)
|
||
|
|
||
|
var build = join(pkg, 'build')
|
||
|
mkdirp.sync(build)
|
||
|
fs.writeFileSync(
|
||
|
join(build, 'config.gypi'),
|
||
|
"i_wont_be_included_by_fstream='with any luck'"
|
||
|
)
|
||
|
|
||
|
fs.writeFileSync(
|
||
|
join(build, 'npm-debug.log'),
|
||
|
'0 lol\n'
|
||
|
)
|
||
|
|
||
|
mkdirp.sync(gitDir)
|
||
|
fs.writeFileSync(
|
||
|
join(gitDir, 'gitstub'),
|
||
|
"won't fool git, also won't be included by fstream"
|
||
|
)
|
||
|
}
|
||
|
|
||
|
function cleanup () {
|
||
|
rimraf.sync(pkg)
|
||
|
}
|