UNPKG

acs

Version:
177 lines (148 loc) 4.74 kB
var sinon = require('sinon'), EventEmitter = require('events').EventEmitter, util = require('util'), acsutil = require('../lib/util'); exports.fakeCookieForReq = 'fake-cookie-for-request'; exports.testHost = 'https://admin.unittest.appcelerator.com'; // exports.defaultHost = 'https://admin.cloudapp-enterprise.appcelerator.com'; exports.defaultHost = 'https://admin.ars.us.axway.com'; exports.testApp = 'testApp'; exports.testVersion = '0.1.0'; function Request(options) { } // lib/post.js pipe stream to request Request.prototype.write = function(){} Request.prototype.end = function(){} util.inherits(Request, EventEmitter); exports.buildRequestMock = function(checkOptions, error, response, body, rawBody) { if(!rawBody) { body = JSON.stringify(body); } if(!response) { response = { statusCode: 200, headers: { 'set-cookie': 'fake-cookie-for-response', 'content-type': 'json' } }; } if(!body) { body = { success: true, message: 'done' } } return function(options) { return [response,body]; } } exports.buildStreamRequestMock = function(checkOptions, error, response, body, rawBody) { if(!rawBody) { body = JSON.stringify(body); } if(!response) { response = { statusCode: 200, headers: { 'set-cookie': 'fake-cookie-for-response', 'content-type': 'json' } }; } if(!body) { body = { success: true, message: 'done' } } return function(options) { checkOptions(options); var request = new Request(); setTimeout(function() { request.emit('response', response); request.emit('data', body); request.emit('end'); }, 10); return request; } } exports.hostInfoLine = function(host) { return 'Admin Hostname: ' + host; } exports.beforeHandler = function(done) { sinon.stub(acsutil, 'getCookie', function() { return exports.fakeCookieForReq; }); sinon.stub(acsutil, 'getGlobalConfig', function() { return {}; }); sinon.stub(acsutil, 'saveGlobalConfig', function(callback) { }); var originalGetEffectiveConfig = acsutil.getEffectiveConfig; sinon.stub(acsutil, 'getEffectiveConfig', function(opts) { if(opts.host) { return originalGetEffectiveConfig(opts); } var result = acsutil.getDefaultConfig(); result.publishHostPort = result.publishHost + ':' + result.publishPort; result.isDefaultHost = true; return result; }); done(); }; exports.afterHandler = function(done) { acsutil.getCookie.restore(); acsutil.getGlobalConfig.restore(); acsutil.saveGlobalConfig.restore(); acsutil.getEffectiveConfig.restore(); done(); }; exports.buildBeforeEachHandler = function(outputs, stubConsole) { if(stubConsole == undefined) { stubConsole = true; } return function(done) { if(stubConsole) { var consolelog = console.log; sinon.stub(console, 'log', function() { consolelog.apply(this, arguments); // outputs.push(Object.values(arguments).join(' ')); outputs.push([].slice.call(arguments).join(' ')); }); } outputs.length = 0; done(); }; } exports.afterEachHandler = function(done) { if(console.log.restore) { console.log.restore(); } if(process.exit.restore) { process.exit.restore(); } done(); } exports.buildRequestMockWithReqOptions = function(host, port, path, method, body, rawBody) { return exports.buildRequestMock(function(options) { options['url'].should.eql(host + ':' + port + path); if(Array.isArray(method)) { options['method'].should.be.oneOf(method); } else { options['method'].should.eql(method); } options['headers']['Cookie'].should.eql(exports.fakeCookieForReq); }, null, null, body, rawBody); } exports.buildStreamRequestMockWithReqOptions = function(host, port, path, method, body, rawBody) { return exports.buildStreamRequestMock(function(options) { options['url'].should.eql(host + ':' + port + path); if(Array.isArray(method)) { options['method'].should.be.oneOf(method); } else { options['method'].should.eql(method); } options['headers']['Cookie'].should.eql(exports.fakeCookieForReq); }, null, null, body, rawBody); }