summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/fstream/examples/reader.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/fstream/examples/reader.js')
-rw-r--r--deps/npm/node_modules/fstream/examples/reader.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/deps/npm/node_modules/fstream/examples/reader.js b/deps/npm/node_modules/fstream/examples/reader.js
new file mode 100644
index 0000000000..19affbe7e6
--- /dev/null
+++ b/deps/npm/node_modules/fstream/examples/reader.js
@@ -0,0 +1,68 @@
+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()
+ })
+})