%PDF- %PDF-
Direktori : /proc/self/root/usr/src/node-v0.10.4/deps/npm/node_modules/read/test/ |
Current File : //proc/self/root/usr/src/node-v0.10.4/deps/npm/node_modules/read/test/basic.js |
var tap = require('tap') var read = require('../lib/read.js') if (process.argv[2] === 'child') { return child() } var CLOSE = 'close' if (process.version.match(/^v0\.6/)) { CLOSE = 'exit' } var spawn = require('child_process').spawn tap.test('basic', function (t) { var child = spawn(process.execPath, [__filename, 'child']) var output = '' var write = child.stdin.write.bind(child.stdin) child.stdout.on('data', function (c) { console.error('data %s', c) output += c if (output.match(/Username: \(test-user\) $/)) { process.nextTick(write.bind(null, 'a user\n')) } else if (output.match(/Password: \(<default hidden>\) $/)) { process.nextTick(write.bind(null, 'a password\n')) } else if (output.match(/Password again: \(<default hidden>\) $/)) { process.nextTick(write.bind(null, 'a password\n')) } else { console.error('prompts done, output=%j', output) } }) var result = '' child.stderr.on('data', function (c) { result += c console.error('result %j', c.toString()) }) child.on(CLOSE, function () { result = JSON.parse(result) t.same(result, {"user":"a user","pass":"a password","verify":"a password","passMatch":true}) t.equal(output, 'Username: (test-user) Password: (<default hidden>) Password again: (<default hidden>) ') t.end() }) }) function child () { read({prompt: "Username: ", default: "test-user" }, function (er, user) { read({prompt: "Password: ", default: "test-pass", silent: true }, function (er, pass) { read({prompt: "Password again: ", default: "test-pass", silent: true }, function (er, pass2) { console.error(JSON.stringify({user: user, pass: pass, verify: pass2, passMatch: (pass === pass2)})) }) }) }) }