| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | var fstream = require('../fstream.js')var tap = require('tap')var fs = require('fs')var path = require('path')var dir = path.dirname(__dirname)tap.test('reader test', function (t) {  var children = -1  var gotReady = false  var ended = false  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()  })})tap.test('reader error test', function (t) {  // assumes non-root on a *nix system  var r = fstream.Reader({ path: '/etc/shadow' })  r.once('error', function (er) {    t.ok(true)    t.end()  })  r.on('end', function () {    t.fail('reader ended without error')    t.end()  })})
 |