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

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)
}