var fstream = require("../fstream.js") var tap = require("tap") var fs = require("fs") var path = require("path") var children = -1 var dir = path.dirname(__dirname) var gotReady = false var ended = false tap.test("reader test", function (t) { var r = fstream.Reader({ path: dir , filter: function () { // return this.parent === r return this.parent === r || this === r } }) r.on("ready", function () { gotReady = true children = fs.readdirSync(dir).length console.error("Setting expected children to "+children) t.equal(r.type, "Directory", "should be a directory") }) r.on("entry", function (entry) { children -- if (!gotReady) { t.fail("children before ready!") } t.equal(entry.dirname, r.path, "basename is parent dir") }) r.on("error", function (er) { t.fail(er) t.end() process.exit(1) }) r.on("end", function () { t.equal(children, 0, "should have seen all children") ended = true }) var closed = false r.on("close", function () { t.ok(ended, "saw end before close") t.notOk(closed, "close should only happen once") closed = true t.end() }) })