acs
Version: 
Appcelerator Server Side Node
115 lines (87 loc) • 3.75 kB
JavaScript
var chai = require('chai'),
    should = chai.should(),
    rewire = require('rewire'),
    sinon = require('sinon'),
    util = require('../lib/util'),
    zlib = require('zlib'),
    helper = require('./helper');
var logcatModule = rewire('../lib/command/logcat');
var consolelog = console.log;
describe('logcat cli - ',  () => {
    var outputs = [];
    var positiveBody = {
        success: true,
        logmessages: [
            {
                date: new Date(),
                serverid: 'fake-server-id',
                message: 'fake-log-message'
            }
        ]
    };
   var positiveBodyZipped = zlib.gzipSync(Buffer.from(JSON.stringify(positiveBody)));
    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 = [helper.testApp];
        var opts = {
            interval: 0,
            host: helper.testHost,
            port: 8443
        };
        // {
        //     "uri": "https://admin.unittest.appcelerator.com:8443/log/testApp/NOSERVERID/NODATETME/NODATETME/LATEST/100?sortOrder=desc",
        //     "method": "POST",
        //     "proxy": null,
        //     "encoding": null,
        //     "headers": {
        //         "Cookie": "fake-cookie-for-request",
        //         "Content-Type": "application/json",
        //         "accept-encoding": "gzip",
        //         "Authorization": ""
        //     },
        //     "body": "{}"
        // }
        var successRequestMock = helper.buildRequestMock(function(options) {
            // consolelog(JSON.stringify(options, null, 4));
            options['url'].should.eql(helper.testHost + ':8443/log/testApp/NOSERVERID/NODATETME/NODATETME/LATEST/100?sortOrder=desc');
            options['method'].should.eql('POST');
            options['headers']['Cookie'].should.eql(helper.fakeCookieForReq); 
        }, null, null, positiveBodyZipped, true);
        logcatModule.__set__('got', successRequestMock);
        await logcatModule.run(args, opts)
        // consolelog(outputs);
        // [ '\u001b[90mAdmin Hostname: https://admin.unittest.appcelerator.com\u001b[39m',
        // 'Retrieving debug log from the server' ]
        outputs[0].should.contain(helper.hostInfoLine(helper.testHost));
        outputs[1].should.eql('Retrieving debug log from the server');
    });
    it('should use host from command line',  async () => {
        var args = [helper.testApp];
        var opts = {
            interval: 0,
            host: helper.testHost
        };
        var path = '/log/testApp/NOSERVERID/undefined/NODATETME/LATEST/100?sortOrder=desc';
        var successRequestMock =
            helper.buildRequestMockWithReqOptions(helper.testHost, '443', path, 'POST', positiveBodyZipped, true);
        logcatModule.__set__('got', successRequestMock);
        await logcatModule.run(args, opts)
        outputs[0].should.contain(helper.hostInfoLine(helper.testHost));
        outputs[1].should.eql('Retrieving debug log from the server');
    });
    it('should use the default host',  async () => {
        var args = [helper.testApp];
        var opts = {
            interval: 0
        };
        var path = '/log/testApp/NOSERVERID/undefined/NODATETME/LATEST/100?sortOrder=desc';
        var successRequestMock =
            helper.buildRequestMockWithReqOptions(helper.defaultHost, '443', path, 'POST', positiveBodyZipped, true);
        logcatModule.__set__('got', successRequestMock);
        await logcatModule.run(args, opts)
        outputs[0].should.eql('Retrieving debug log from the server');
    });
});