acs
Version:
Appcelerator Server Side Node
125 lines (102 loc) • 4.42 kB
JavaScript
var chai = require('chai'),
should = chai.should(),
rewire = require('rewire'),
sinon = require('sinon'),
util = require('../lib/util'),
helper = require('./helper');
var downloadModule = rewire('../lib/command/download');
var consolelog = console.log;
describe('download cli - ', function() {
this.timeout(20000);
var outputs = [];
var fakeS3URL = 'url-to-s3';
var positiveBody = {
success: true,
version: helper.testVersion,
url: fakeS3URL
};
before(helper.beforeHandler);
after(helper.afterHandler);
beforeEach(helper.buildBeforeEachHandler(outputs));
afterEach(helper.afterEachHandler);
it('should use host and port from command line', function(done) {
var args = [helper.testApp];
var opts = {
host: helper.testHost,
port: 8443
};
// {
// "uri": "https://admin.unittest.appcelerator.com:8443/download/testApp/deployed",
// "method": "GET",
// "proxy": null,
// "headers": {
// "Cookie": "fake-cookie-for-request",
// "Content-Type": "application/x-www-form-urlencoded",
// "Authorization": ""
// }
// }
var successRequestMock = helper.buildStreamRequestMock(function(options) {
// consolelog(JSON.stringify(options, null, 4));
options['url'].should.eql(helper.testHost + ':8443/download/testApp/deployed');
options['method'].should.eql('GET');
options['headers']['Cookie'].should.eql(helper.fakeCookieForReq);
}, null, null, positiveBody);
downloadModule.__set__('got.stream.get', successRequestMock);
downloadModule.__set__('got.stream.on', successRequestMock);
var downloadFromS3 = function(appname, version, dir, url) {
// consolelog("args", arguments)
// { '0': 'testApp', '1': '0.1.0', '2': './', '3': 'url-to-s3' }
appname.should.eql(helper.testApp);
version.should.eql(helper.testVersion);
dir.should.eql('./');
url.should.eql(fakeS3URL);
// consolelog(outputs)
// [ '\u001b[90mAdmin Hostname: https://admin.unittest.appcelerator.com\u001b[39m' ]
outputs[0].should.contain(helper.hostInfoLine(helper.testHost));
done();
}
downloadModule.__set__('downloadFromS3', downloadFromS3);
downloadModule.run(args, opts)
});
it('should use host from command line', function(done) {
var args = [helper.testApp];
var opts = {
host: helper.testHost
};
var path = '/download/testApp/deployed';
var successRequestMock =
helper.buildStreamRequestMockWithReqOptions(helper.testHost, '443', path, 'GET', positiveBody);
downloadModule.__set__('got.stream.get', successRequestMock);
downloadModule.__set__('got.stream.on', successRequestMock);
var downloadFromS3 = function(appname, version, dir, url) {
appname.should.eql(helper.testApp);
version.should.eql(helper.testVersion);
dir.should.eql('./');
url.should.eql(fakeS3URL);
outputs[0].should.contain(helper.hostInfoLine(helper.testHost));
done();
}
downloadModule.__set__('downloadFromS3', downloadFromS3);
downloadModule.run(args, opts)
});
it('should use default host', function(done) {
var args = [helper.testApp];
var opts = {};
var path = '/download/testApp/deployed';
var successRequestMock =
helper.buildStreamRequestMockWithReqOptions(helper.defaultHost, '443', path, 'GET', positiveBody);
downloadModule.__set__('got.stream.get', successRequestMock);
downloadModule.__set__('got.stream.on', successRequestMock);
var downloadFromS3 = function(appname, version, dir, url) {
appname.should.eql(helper.testApp);
version.should.eql(helper.testVersion);
dir.should.eql('./');
url.should.eql(fakeS3URL);
should.not.exist(outputs[0])
should.equal(outputs[0], undefined);
done();
}
downloadModule.__set__('downloadFromS3', downloadFromS3);
downloadModule.run(args, opts)
});
});