motion
Version:
motion - moving development forward
94 lines (83 loc) • 2.72 kB
JavaScript
var should = require('should')
var commander = require('commander')
var nixt = require('nixt')
var Surge = require('../')
var surge = new Surge
var pkg = require('../package.json')
var minimist = 'node ./test/fixtures/bin/minimist.js'
var yargs = 'node ./test/fixtures/bin/yargs.js'
var hooks = {}
describe('actions', function (done) {
describe('login', function (done) {
it('action', function (done) {
should(surge.login(hooks)).type('function')
done()
})
it('commander', function (done) {
var program = commander
program
.command('login')
.action(surge.login(hooks))
should(program.commands.length).equal(1)
done()
})
it('commander without args', function (done) {
var commander = 'node ./test/fixtures/bin/commander-no-args.js'
nixt({ colors: false })
.exec(commander + ' logout')
.run(commander + ' up')
.on(/.*email:.*/).respond('kenneth+test@chloi.io\n')
.on(/.*password:.*/).respond('12345\n')
.on(/.*domain:.*/).respond('\n')
.expect(function (result) {
should(result.stdout).match(/publish/)
})
.exec(commander + ' logout')
.end(done)
})
it('commander without hooks object', function (done) {
var commander = 'node ./test/fixtures/bin/commander-no-hooks.js'
nixt({ colors: false })
.exec(commander + ' logout')
.run(commander + ' login')
.on(/.*email:.*/).respond('kenneth+test@chloi.io\n')
.on(/.*password:.*/).respond('12345\n')
.expect(function (result) {
should(result.stdout).match(/Logged in as kenneth/)
should(result.stdout).match(/surge.sh/)
})
.exec(commander + ' logout')
.end(done)
})
it('minimist', function (done) {
nixt({ colors: false })
.run(minimist + ' login')
.on(/.*email:.*/).respond('kenneth+test@chloi.io\n')
.on(/.*password:.*/).respond('12345\n')
.expect(function (result) {
should(result.stdout).match(/Logged in as kenneth/)
should(result.stdout).match(/surge.sh/)
})
.exec(minimist + ' logout')
.end(done)
})
it('yargs', function (done) {
nixt({ colors: false })
.run(yargs + ' login')
.on(/.*email:.*/).respond('kenneth+test@chloi.io\n')
.on(/.*password:.*/).respond('12345\n')
.expect(function (result) {
should(result.stdout).match(/Logged in as kenneth/)
should(result.stdout).match(/surge.sh/)
})
.exec(yargs + ' logout')
.end(done)
})
})
// publish
// teardown
// whoami
// list
// plus
// logout
})