]> 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/examples/reader.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 / examples / reader.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/fstream/examples/reader.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/fstream/examples/reader.js
new file mode 100644 (file)
index 0000000..19affbe
--- /dev/null
@@ -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()
+  })
+})