acs
Version:
Appcelerator Server Side Node
136 lines (99 loc) • 4.11 kB
JavaScript
var chai = require('chai'),
should = chai.should(),
rewire = require('rewire'),
sinon = require('sinon'),
util = require('../lib/util'),
helper = require('./helper');
var suModule = rewire('../lib/command/su');
var consolelog = console.log;
describe('su cli - ', () => {
var outputs = [];
var positiveBody = {
success: true,
message: 'sudo done'
};
before(helper.beforeHandler);
after(helper.afterHandler);
beforeEach(helper.buildBeforeEachHandler(outputs));
afterEach(helper.afterEachHandler);
it('should use host and port from command line', async () => {
var args = ['yjin@axway.com'];
var opts = {
host: helper.testHost,
port: 8443
};
// {
// "uri": "https://admin.unittest.appcelerator.com:8443/sudo/who",
// "uri": "https://admin.unittest.appcelerator.com:8443/sudo/yjin@axway.com",
// "method": "GET",
// "proxy": null,
// "headers": {
// "Cookie": "fake-cookie-for-request",
// "Content-Type": "application/x-www-form-urlencoded",
// "Authorization": ""
// }
// }
var successRequestMock = helper.buildRequestMock(function(options) {
// consolelog(JSON.stringify(options, null, 4));
options['url'].should.eql(helper.testHost + ':8443/sudo/yjin@axway.com');
options['method'].should.eql('GET');
options['headers']['Cookie'].should.eql(helper.fakeCookieForReq);
}, null, null, positiveBody);
suModule.__set__('got', successRequestMock);
await suModule.run(args, opts)
// consolelog(outputs)
// [ '\u001b[90mAdmin Hostname: https://admin.unittest.appcelerator.com\u001b[39m',
// 'sudo done' ]
outputs[0].should.contain(helper.hostInfoLine(helper.testHost));
outputs[1].should.eql('sudo done');
});
it('should use host from command line for who', async () => {
var args = ['who'];
var opts = {
host: helper.testHost
};
var path = '/sudo/who';
var successRequestMock =
helper.buildRequestMockWithReqOptions(helper.testHost, '443', path, 'GET', positiveBody);
suModule.__set__('got', successRequestMock);
await suModule.run(args, opts)
outputs[0].should.contain(helper.hostInfoLine(helper.testHost));
outputs[1].should.eql('sudo done');
});
it('should use host from command line for who', async () => {
var args = ['self'];
var opts = {
host: helper.testHost
};
var path = '/sudo/self';
var successRequestMock =
helper.buildRequestMockWithReqOptions(helper.testHost, '443', path, 'GET', positiveBody);
suModule.__set__('got', successRequestMock);
await suModule.run(args, opts)
outputs[0].should.contain(helper.hostInfoLine(helper.testHost));
outputs[1].should.eql('sudo done');
});
it('should use host from command line', async () => {
var args = ['yjin@axway.com'];
var opts = {
host: helper.testHost
};
var path = '/sudo/yjin@axway.com';
var successRequestMock =
helper.buildRequestMockWithReqOptions(helper.testHost, '443', path, 'GET', positiveBody);
suModule.__set__('got', successRequestMock);
await suModule.run(args, opts)
outputs[0].should.contain(helper.hostInfoLine(helper.testHost));
outputs[1].should.eql('sudo done');
});
it('should use default host', async () => {
var args = ['yjin@axway.com'];
var opts = {};
var path = '/sudo/yjin@axway.com';
var successRequestMock =
helper.buildRequestMockWithReqOptions(helper.defaultHost, '443', path, 'GET', positiveBody);
suModule.__set__('got', successRequestMock);
await suModule.run(args, opts)
outputs[0].should.eql('sudo done');
});
});