it('Create', () => co(function * () {
    let server = yield apemanApi({
      port,
      configuration: {
        $api: {
          pingPong: {
            ping () {
              let { lang } = this
              return 'pong:' + lang
            }
          },
          $middlewares: [
            create(loc, {})
          ],
          $pathname: '/api/rpc'
        }
      }

    })
    assert(server)

    let agent = superagent()
    let client = apemanApiClient(`${baseUrl}/api/rpc`, { agent })
    assert.ok(client)

    {
      let pingPong = yield client.connect('pingPong')
      let pong = yield pingPong.ping()
      assert.equal(pong, 'pong:en')
    }
    {
      agent.set('accept-language', 'ja')
      let pingPong = yield client.connect('pingPong')
      let pong = yield pingPong.ping()
      assert.equal(pong, 'pong:ja')
    }

    yield asleep(300)
    yield server.close()
  }))
Example #2
0
/*jslint node: true */
/*global describe, before, beforeEach, it*/
'use strict';

var _ = require('lodash');
var expect = require('expect.js');
var async = require('async');
var superagentDefaults = require('superagent-defaults');

var request = superagentDefaults();

var conf = require('nconf');
conf.argv().env().file({file: __dirname + '../config.json'}).defaults();
conf.set('port','1337');

// Override normal ENV values with nconf ENV values (ENV values are used the same way without nconf)
// FIXME can't get nconf file above to load...
process.env.BASE_URL = conf.get("BASE_URL");
process.env.FACEBOOK_KEY = conf.get("FACEBOOK_KEY");
process.env.FACEBOOK_SECRET = conf.get("FACEBOOK_SECRET");
process.env.NODE_DB_URI = 'mongodb://localhost/habitrpg';

var User = require('../src/models/user').model;
var Group = require('../src/models/group').model;
var Challenge = require('../src/models/challenge').model;

var app = require('../src/server');
var shared = require('habitrpg-shared');

// ###### Helpers & Variables ######
var model, uuid, taskPath,
 * 2. From that commit fetch the file_tree at the time that commit was made
 * 3. Grab the package.json blob from the tree, and convert it into json and grab the version
 * 4. Repeat steps 1-3 but with the new commit
 * 5. Compare the version from step 3 and from step 4 if they are different submit a new release
 *
 */


var Q = require('q')
  , context = require('superagent-defaults')
  , envs = require('envs')
  , api = envs("GITHUB_URL")
  , GITHUB_LOGIN = envs("GITHUB_LOGIN")
  , GITHUB_PASSWORD = envs("GITHUB_PASSWORD");

var superagent = context()
    .on('request', function(request){
      request
        .set('Accept', 'application/json')
        .set('User-Agent', 'curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5')
        .set('Content-Type', 'application/json')
        .auth(GITHUB_LOGIN, GITHUB_PASSWORD);
    });

module.exports = function(app) {
  app.post("/version-check", function(req, res) {
    res.send(202);

    var payload = JSON.parse(req.body.payload);

    if (typeof payload === 'undefined') { return console.log("Invalid Payload"); }
Example #4
0
  oecloud.emit('test-start');
});


var chalk = require('chalk');
var chai = require('chai');
var async = require('async');
chai.use(require('chai-things'));
chai.use(require('chai-datetime'));

var expect = chai.expect;

var app = oecloud;
var defaults = require('superagent-defaults');
var supertest = require('supertest');
var api = defaults(supertest(app));
var basePath = app.get('restApiRoot');

var defaultContext = {};

function getContext(usr, roles, group) {
  return {
    ctx: {
      username: usr,
      remoteUser: usr,
      roles: roles,
      group: group
    }
  };
}
Example #5
0
function fsSuperagent(config, addlRequestHandler) {
  var user = config.user || {}
    , cookies = config.cookies || {}
    , headers = config.headers || {};

  return superagent().on('request', function(request) {
    var reqId = headers['x-request-id']
      , sessId = user.sessionId || cookies.fssessionid
      , info = url.parse(request.url)
      , addToLogs = {}
      , endHandler;

    // TODO: Add centralized metric logging (BEGIN);

    request.set('accept', 'application/json');
    request.set('X-Requested-With','XMLHttpRequest'); // so that express sets req.xhr = true.

    // Do we want a default timeout on the client?
    // request.timeout(20000);

    if (reqId) request.set('x-request-id', reqId);
    if (sessId) request.set('authorization', 'Bearer ' + sessId);

    request.setLocale = function(locale) {
      locale = (locale || headers['accept-language'] || 'en').substr(0,2);
      request.query({ 'locale' : locale });
      return request;
    };

    request.setSessionId = function(sessionName) {
      var query = {};

      query[sessionName] = sessId;
      request.query(query);
      return request;
    };

    request.addErrorHandler = function(handler) {
      request.on('error', handler);
      return request;
    };

    request.addLog = function(name, value) {
      if (typeof name === 'string' && typeof value === 'string') {
        addToLogs[name] = value;
      }
      if (typeof name === 'object') {
        for (var key in name) {
          if (name.hasOwnProperty(key)) {
            addToLogs[key] = name[key];
          }
        }
      }
      return request;
    };

    request.handleEnd = function(handler) {
      if (typeof handler === 'function') {
        endHandler = handler;
      }
    };

    if (addlRequestHandler) {
      addlRequestHandler(request);
    }


    // We have to overwrite the request.end to fix the error handling problems
    request._end = request.end;
    request.end = function(cb) {

      function doCb() {
        if(typeof endHandler === 'function') {
          return endHandler(cb, arguments);
        }
        cb.apply(null, arguments);
      }

      // Default to no error callback
      var okCB = function(response) {
        doCb(response);
      };
      if (cb.length === 2) {
        // 200 callback requires empty first param
        okCB = function(response) {
          doCb(null, response);
        };
        // Bind the error callback for errors
        request.addErrorHandler(doCb);
      }

      request._end(function(response) {
        // TODO: Add centralized metric logging (FINISHED);
        okCB(response);
      });
    };
  });
}