1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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))
- })
- }
|