Sha256: d7a091c6c49b518aeee7a043374f3a0a5db9b9462a6a21111edf4c84219989cd

Contents?: true

Size: 1.99 KB

Versions: 75

Compression:

Stored size: 1.99 KB

Contents

var IgnoreFile = require("../")
, fs = require('fs')

// set the ignores just for this test
var c = require("./common.js")
c.ignores({ ".gitignore": ["a/b/c/abc"] })
c.ignores({ ".ignore": ["*", "!a/b/c/abc"] })

// the only files we expect to see
var expected =
  [ "/a"
  , "/a/b"
  , "/a/b/c"
  , "/a/b/c/abc" ]

var originalReadFile = fs.readFile
, parallelCount = 0
, firstCall

// Overwrite fs.readFile so that when .gitignore and .ignore are read in
// parallel, .ignore will always be read first.
fs.readFile = function (filename, options, callback) {
  if (typeof options === 'function') {
    callback = options
    options = false
  }

  parallelCount++

  process.nextTick(function () {
    if (parallelCount > 1) {
      if (!firstCall) {
        return firstCall = function (cb) {
          originalReadFile(filename, options, function (err, data) {
            callback(err, data)
            if (cb) cb()
          })
        }
      }

      if (filename.indexOf('.gitignore') !== -1) {
        firstCall(function () {
          originalReadFile(filename, options, callback)
        })
      } else {
        originalReadFile(filename, options, function (err, data) {
          callback(err, data)
          firstCall()
        })
      }
    } else {
      originalReadFile(filename, options, callback)
      parallelCount = 0
    }
  })
}

require("tap").test("read file order", function (t) {
  t.pass("start")

  IgnoreFile({ path: __dirname + "/fixtures"
             , ignoreFiles: [".gitignore", ".ignore"] })
    .on("ignoreFile", function (e) {
      console.error("ignore file!", e)
    })
    .on("child", function (e) {
      var p = e.path.substr(e.root.path.length)
      var i = expected.indexOf(p)
      if (i === -1) {
        t.fail("unexpected file found", {f: p})
      } else {
        t.pass(p)
        expected.splice(i, 1)
      }
    })
    .on("close", function () {
      fs.readFile = originalReadFile
      t.notOk(expected.length, "all expected files should be seen")
      t.end()
    })
})

Version data entries

75 entries across 75 versions & 3 rubygems

Version Path
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.6.2 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.6.1 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.6 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.19 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.18 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.17 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.16 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.15 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.14 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.13 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.12 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.11 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.10 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.9 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.8 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.7 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js
brwy_rails-0.0.6 test/dummy/node_modules/fsevents/node_modules/fstream-ignore/test/read-file-order.js
brwy_rails-0.0.5 test/dummy/node_modules/fsevents/node_modules/fstream-ignore/test/read-file-order.js
trusty-festivity-extension-2.5.6 node_modules/bower/node_modules/fstream-ignore/test/read-file-order.js