]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / init-package-json / node_modules / promzard / test / fn.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js
new file mode 100644 (file)
index 0000000..899ebed
--- /dev/null
@@ -0,0 +1,56 @@
+var test = require('tap').test;
+var promzard = require('../');
+var fs = require('fs')
+var file = __dirname + '/fn.input';
+
+var expect = {
+  a : 3,
+  b : '!2B...',
+  c : {
+    x : 5500,
+    y : '/tmp/y/file.txt',
+  }
+}
+expect.a_function = fs.readFileSync(file, 'utf8')
+expect.asyncPrompt = 'async prompt'
+
+if (process.argv[2] === 'child') {
+  return child()
+}
+
+test('prompt callback param', function (t) {
+  t.plan(1);
+
+  var spawn = require('child_process').spawn
+  var child = spawn(process.execPath, [__filename, 'child'])
+
+  var output = ''
+  child.stderr.on('data', function (c) {
+    output += c
+  })
+
+  child.on('close', function () {
+    console.error('output=%j', output)
+    output = JSON.parse(output)
+    t.same(output, expect);
+    t.end()
+  })
+
+  setTimeout(function () {
+    child.stdin.write('\n')
+  }, 100)
+  setTimeout(function () {
+    child.stdin.write('55\n')
+  }, 150)
+  setTimeout(function () {
+    child.stdin.end('async prompt\n')
+  }, 200)
+})
+
+function child () {
+  var ctx = { tmpdir : '/tmp' }
+  var file = __dirname + '/fn.input';
+  promzard(file, ctx, function (err, output) {
+    console.error(JSON.stringify(output))
+  })
+}