var test = require('tap').test; var promzard = require('../'); if (process.argv[2] === 'child') { return child() } test('exports', 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 }) setTimeout(function () { child.stdin.write('\n'); }, 100) setTimeout(function () { child.stdin.end('55\n'); }, 200) child.on('close', function () { console.error('output=%j', output) output = JSON.parse(output) t.same({ a : 3, b : '!2b', c : { x : 55, y : '/tmp/y/file.txt', } }, output); t.end() }) }); function child () { var ctx = { tmpdir : '/tmp' } var file = __dirname + '/exports.input'; promzard(file, ctx, function (err, output) { console.error(JSON.stringify(output)) }); }