]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/fstream-npm/test/ignores.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / fstream-npm / test / ignores.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/fstream-npm/test/ignores.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/fstream-npm/test/ignores.js
new file mode 100644 (file)
index 0000000..ac94251
--- /dev/null
@@ -0,0 +1,132 @@
+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 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',
+  join('deps', 'foo', 'config', 'config.gypi')
+]
+
+test('follows npm package ignoring rules', function (t) {
+  var subject = new Packer({ path: pkg, type: 'Directory', isDirectory: true })
+  var filenames = []
+  subject.on('entry', function (entry) {
+    t.equal(entry.type, 'File', 'only files in this package')
+
+    // include relative path in filename
+    var filename = entry._path.slice(entry.root._path.length + 1)
+
+    filenames.push(filename)
+  })
+  // need to do this so fstream doesn't explode when files are removed from
+  // under it
+  subject.on('end', function () {
+    // ensure we get *exactly* the results we expect by comparing in both
+    // directions
+    filenames.forEach(function (filename) {
+      t.ok(
+        included.indexOf(filename) > -1,
+        filename + ' is included'
+      )
+    })
+    included.forEach(function (filename) {
+      t.ok(
+        filenames.indexOf(filename) > -1,
+        filename + ' is not included'
+      )
+    })
+    t.end()
+  })
+})
+
+test('cleanup', function (t) {
+  // rimraf.sync chokes here for some reason
+  rimraf(pkg, function () { t.end() })
+})
+
+function setup () {
+  rimraf.sync(pkg)
+  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'
+  )
+
+  fs.writeFileSync(
+    join(pkg, '.npmignore'),
+    '.npmignore\ndummy\npackage.json'
+  )
+
+  fs.writeFileSync(
+    join(pkg, 'dummy'),
+    'foo'
+  )
+
+  var buildDir = join(pkg, 'build')
+  mkdirp.sync(buildDir)
+  fs.writeFileSync(
+    join(buildDir, 'config.gypi'),
+    "i_wont_be_included_by_fstream='with any luck'"
+  )
+
+  var depscfg = join(pkg, 'deps', 'foo', 'config')
+  mkdirp.sync(depscfg)
+  fs.writeFileSync(
+    join(depscfg, 'config.gypi'),
+    "i_will_be_included_by_fstream='with any luck'"
+  )
+
+  fs.writeFileSync(
+    join(buildDir, 'npm-debug.log'),
+    '0 lol\n'
+  )
+
+  var gitDir = join(pkg, '.git')
+  mkdirp.sync(gitDir)
+  fs.writeFileSync(
+    join(gitDir, 'gitstub'),
+    "won't fool git, also won't be included by fstream"
+  )
+
+  var historyDir = join(pkg, 'node_modules/history')
+  mkdirp.sync(historyDir)
+  fs.writeFileSync(
+    join(historyDir, 'README.md'),
+    "please don't include me"
+  )
+}