Ejemplo n.º 1
0
    it('sends log file to remote server', function (done) {


        var broadcast = null;
        var server = Hapi.createServer('127.0.0.1', 8001);

        server.route({
            path: '/',
            method: 'POST',
            handler: function (request, reply) {

                expect(request.payload.schema).to.equal('good.v1');
                expect(request.payload.events[1].id).to.equal('1369328753222-42369-62002');

                broadcast.kill('SIGUSR2');
            }
        });

        server.start( function () {
            var url = 'http://127.0.0.1:8001/';

            broadcast = ChildProcess.spawn(process.execPath, [broadcastPath, '-l', '/Users/nvcexploder/src/git/spumko/good/test/fixtures/test_01.log', '-u', url, '-i', 5, '-p', 0]);

            broadcast.stderr.on('data', function (data) {
                expect(data.toString()).to.not.exist;
            });

            broadcast.once('close', function (code) {

                expect(code).to.equal(0);
                done();
            });
        });
    });
Ejemplo n.º 2
0
gulp.task('cordova', function(){

    console.log(config);

    gulp.src('./public/**').pipe(gulp.dest('./cordova/www'));

    var server = Hapi.createServer(config.host, config.port, config.hapi.options);
    
    var plugins = require('./server/config/plugins');

    server.pack.register(plugins.concat([{ plugin: require("./index") }]), function(err) {

        var options = {
            method: "GET",
            url: "/"
        };
     
        server.inject(options, function(response) {

            var result = response.result;

            string_src("index.html", result).pipe(gulp.dest('./cordova/www/'));

            //console.log(result);
        });
    });

    server.stop();
})
Ejemplo n.º 3
0
	var setupServer = function(options, done) {
		server = Hapi.createServer('0.0.0.0', 1234);
		server.pack.register({
			plugin: require('../'),
			options: options
		}, function(err) {
			expect(err).not.to.exist;

			var internals = server.plugins['scoped-registry-api'].internals;
			internals.createUser(_.clone(user.valid), function(err, newToken) {
				expect(err).not.to.exist;
				expect(newToken).to.exist;
				token = newToken;

				internals.createUser(_.clone(user.permitted), function(err, newToken) {
					expect(err).not.to.exist;
					expect(newToken).to.exist;
					token_permitted = newToken;

					publishPackage(function() {
						done();
					});
				});
			});
		});
	};
Ejemplo n.º 4
0
module.exports = function (done) {
  process.env.NODE_ENV = 'dev';

  var metrics = new MetricsClient(metricsConfig);

  var server = Hapi.createServer(serverOptions);
  server.methods = require('./mock-server-methods')(server);

  server.pack.register(require('hapi-auth-cookie'), function (err) {
    if (err) throw err;

    server.app.cache = server.cache('sessions', {
      expiresIn: 30
    });

    server.auth.strategy('session', 'cookie', 'try', {
      password: '******'
    });

    server.pack.register([
      { plugin: user, options: config },
      { plugin: require('crumb'), options: { isSecure: true } }
    ], function (err) {

      // manually start the cache
      server.app.cache._cache.connection.start(done);
    });
  });

  return server;
}
 t.test("case with both route and query params", function (t) {
    var agent  = helper.instrumentMockedAgent()
    var hapi   = require('hapi')
    var server = hapi.createServer('localhost', 8089)


    // disabled by default
    agent.config.capture_params = true

    agent.on('transactionFinished', function (transaction) {
      t.ok(transaction.trace, 'transaction has a trace.')
      if (transaction.trace.parameters.httpResponseMessage) {
        t.deepEqual(transaction.trace.parameters, {
          "request.headers.accept" : "application/json",
          "request.headers.host" : "localhost:8089",
          "request.method" : "GET",
          "response.status" : 200,
          "httpResponseCode": "200",
          "httpResponseMessage": "OK",
          "id" : "1337",
          "name" : "hapi"
        }, 'parameters should have name and id')
      } else {
        t.deepEqual(transaction.trace.parameters, {
          "request.headers.accept" : "application/json",
          "request.headers.host" : "localhost:8089",
          "request.method" : "GET",
          "response.status" : 200,
          "httpResponseCode": "200",
          "id" : "1337",
          "name" : "hapi"
        }, 'parameters should have name and id')
      }

      helper.unloadAgent(agent)
      server.stop(function () {
        t.end()
      })
    })

    server.route({
      method : 'GET',
      path   : '/test/{id}/',
      handler : function (request, reply) {
        t.ok(agent.getTransaction(), "transaction is available")

        reply({status : 'ok'})
      }
    })

    server.start(function () {
      request.get('http://localhost:8089/test/1337/?name=hapi',
                  {json : true},
                  function (error, res, body) {

        t.equal(res.statusCode, 200, "nothing exploded")
        t.deepEqual(body, {status : 'ok'}, "got expected response")
      })
    })
  })
Ejemplo n.º 6
0
  self.initializeServer = function() {
    self.server = Hapi.createServer(self.ipaddress, self.port, {
      debug: {
        request: ['error']
      }
    });

    self.createRoutes();

    self.server.views({
      engines: {
        jade: require('jade')
      },
      path: './public'
    });

    self.server.route({
      method: 'GET',
      path: '/admin/{param*}',
      handler: {
        directory: {
          path: 'public'
        }
      }
    });
  };
Ejemplo n.º 7
0
before(function (done) {
  server = Hapi.createServer('localhost', '8123');

  var metrics = new MetricsClient(metricsConfig);

  server.pack.register(corporate, function () {
    server.start(done);
  });
});
Ejemplo n.º 8
0
    before(function(done) {
        
        server = Hapi.createServer(config.host, config.port, config.hapi.options);
        
        server.pack.register(plugins.concat([{ plugin: require("../index") }]), function(err) {

            done(err);
        });
    });
Ejemplo n.º 9
0
  t.test("for a normal request", {timeout : 1000}, function (t) {
    var agent  = helper.instrumentMockedAgent()
      , hapi   = require('hapi')
      , server = hapi.createServer(TEST_HOST, TEST_PORT)
      ;

    // set apdexT so apdex stats will be recorded
    agent.config.apdex_t = 1;

    server.route({
      method  : 'GET',
      path    : TEST_PATH,
      handler : function (request, reply) {
        reply({yep : true});
      }
    });

    server.start(function cb_start() {
      request.get(TEST_URL, function (error, response, body) {
        if (error) t.fail(error);

        t.ok(/application\/json/.test(response.headers['content-type']),
             "got correct content type");
        t.deepEqual(JSON.parse(body), {"yep":true}, "response survived");

        var stats;

        stats = agent.metrics.getMetric('WebTransaction/Hapi/GET//test');
        t.ok(stats, "found unscoped stats for request path");
        t.equal(stats.callCount, 1, "/test was only requested once");

        stats = agent.metrics.getOrCreateApdexMetric('Apdex/Hapi/GET//test');
        t.ok(stats, "found apdex stats for request path");
        t.equal(stats.satisfying, 1, "got satisfactory response time");
        t.equal(stats.tolerating, 0, "got no tolerable requests");
        t.equal(stats.frustrating, 0, "got no frustrating requests");

        stats = agent.metrics.getMetric('WebTransaction');
        t.ok(stats, "found roll-up statistics for web requests");
        t.equal(stats.callCount, 1, "only one web request was made");

        stats = agent.metrics.getMetric('HttpDispatcher');
        t.ok(stats, "found HTTP dispatcher statistics");
        t.equal(stats.callCount, 1, "only one HTTP-dispatched request was made");

        var serialized = JSON.stringify(agent.metrics);
        t.ok(serialized.match(/WebTransaction\/Hapi\/GET\/\/test/),
             "serialized metrics as expected");

        server.stop(function cb_stop() {
          helper.unloadAgent(agent);
          t.end();
        });
      });
    });
  });
Ejemplo n.º 10
0
	createService: function(port) {
		var columbo = container.find("columbo");
		var server = Hapi.createServer("0.0.0.0", port, {
			cors: true
		});
		server.addRoutes(columbo.discover());
		server.start();

		container.find("logger").info("RESTServer", "Running at", "http://localhost:" + port);
	}
Ejemplo n.º 11
0
before(function (done) {
  var serverOptions  = {
    views: {
      engines: {hbs: require('handlebars')},
      partialsPath: '../../hbs-partials',
      helpersPath: '../../hbs-helpers'
    }
  };
  server = Hapi.createServer(serverOptions);
  server.pack.register(registry, done);
});
Ejemplo n.º 12
0
before(function (done) {
  server = Hapi.createServer('localhost', '9110');

  server.pack.register([
    {
      plugin: npme,
      options: config
    }
  ], function () {
    server.start(done);
  });
});
Ejemplo n.º 13
0
before(function (done) {
  server = Hapi.createServer();

  server.pack.register(require('hapi-auth-cookie'), function (err) {
    if (err) throw err;

    server.auth.strategy('session', 'cookie', 'try', {
      password: '******'
    });

    server.pack.register(user, done);
  });
});
test("ignoring a Hapi route", function (t) {
  t.plan(7)

  var agent  = helper.instrumentMockedAgent()
    , api    = new API(agent)
    , hapi   = require('hapi')
    , server = hapi.createServer('localhost', 8089)


  this.tearDown(function () {
    server.stop(function () {
      helper.unloadAgent(agent)
    })
  })

  agent.on('transactionFinished', function (transaction) {
    t.equal(transaction.name, 'WebTransaction/Hapi/GET//order/{id}',
            "transaction has expected name even on error")
    t.ok(transaction.ignore, "transaction is ignored")

    t.notOk(agent.traces.trace, "should have no transaction trace")

    var metrics = agent.metrics.unscoped
    t.equal(Object.keys(metrics).length, 1,
      "only supportability metrics added to agent collection"
    )

    var errors = agent.errors.errors
    t.equal(errors.length, 0, "no errors noticed")
  })

  server.route({
    method  : 'GET',
    path    : '/order/{id}',
    handler : function (request, reply) {
      api.setIgnoreTransaction(true)

      reply({status : 'cartcartcart'}).code(400)
    }
  })

  server.start(function () {
    request.get('http://localhost:8089/order/31337',
                {json : true},
                function (error, res, body) {

      t.equal(res.statusCode, 400, "got expected error")
      t.deepEqual(body, {status : 'cartcartcart'}, "got expected response")
    })
  })
})
Ejemplo n.º 15
0
before(function (done) {
  server = Hapi.createServer('localhost', '8000');

  var metrics = new MetricsClient(config);

  server.pack.register([
    {
      plugin: downloads,
      options: {url: 'https://api.npmjs.org/downloads/'}
    }
  ], function () {
    server.start(done);
  });
});
Ejemplo n.º 16
0
before(function (done) {
  var metrics = new MetricsClient(metricsConfig);

  server = Hapi.createServer();
  server.pack.register(require('hapi-auth-cookie'), function (err) {
    if (err) throw err;

    server.auth.strategy('session', 'cookie', 'try', {
      password: '******'
    });

    server.pack.register(registry, done);
  });
});
Ejemplo n.º 17
0
       function (t) {
    var agent  = helper.instrumentMockedAgent()
      , hapi   = require('hapi')
      , api    = new API(agent)
      ;

    agent.config.application_id = '12345';
    agent.config.browser_monitoring.browser_key = '12345';
    agent.config.browser_monitoring.js_agent_loader = 'function(){}';

    var options = {
      views : {
        path : path.join(__dirname, 'views'),
        engines : {
          ejs : 'ejs'
        }
      }
    };

    var server = hapi.createServer(TEST_HOST, TEST_PORT, options);

    server.route({
      method : 'GET',
      path : TEST_PATH,
      handler : function (request, reply) {
        var rum = api.getBrowserTimingHeader();
        t.equal(rum.substr(0,7), '<script');
        reply.view('index', {title : 'yo dawg', rum: rum});
      }
    });

    agent.once('transactionFinished', function () {
      var stats = agent.metrics.getMetric('View/index/Rendering');
      t.equal(stats.callCount, 1, "should note the view rendering");
    });

    server.start(function cb_start() {
      request(TEST_URL, function (error, response, body) {
        if (error) t.fail(error);

        t.equal(response.statusCode, 200, "response code should be 200");
        t.equal(body, BODY, "template should still render fine");

        server.stop(function cb_stop() {
          helper.unloadAgent(agent);
          t.end();
        });
      });
    });
  });
Ejemplo n.º 18
0
seaport.on('connect', function() {
  logger.info('Seaport connected');

  // start REST database server
  var columbo = container.find('columbo');
  var server = Hapi.createServer('0.0.0.0', seaport.register(config.rest.name + '@' + config.rest.version), {
    cors: true
  });
  server.route(columbo.discover());
  server.ext('onPreResponse', container.find('nanoErrorTranslator'));
  server.start();

  logger.info('RESTServer', 'Running at', 'http://localhost:' + server.info.port);
});
Ejemplo n.º 19
0
exports.createServer = function(settings) {
  console.log('server running on port: ', port);
  var server = Hapi.createServer(port);

  server.auth('session', {
    scheme: 'cookie',
    password: '******',
    cookie: 'signin',
    redirectTo: '/signin',
    isSecure: false
  });

  server.addRoutes(Routes.generateRoutes(settings));

  return server;
};
Ejemplo n.º 20
0
before(function (done) {
  // configure couch
  var couchDB = require('../../../adapters/couchDB');
  couchDB.init(config);

  var metrics = new MetricsClient(metricsConfig);

  server = Hapi.createServer('localhost', '7110');
  server.pack.register([
    {
      plugin: couch,
      options: config
    }
  ], function () {
    server.start(done);
  });
});
Ejemplo n.º 21
0
  t.test("should trap errors correctly", function (t) {
    var agent = helper.instrumentMockedAgent()
    var hapi = require('hapi')
    var server = hapi.createServer(TEST_HOST, TEST_PORT, {debug: false})


    server.route({
      method: 'GET',
      path: TEST_PATH,
      handler: function () {
        var hmm
        hmm.ohno.failure.is.terrible()
      }
    })

    server.start(function cb_start() {
      request.get(TEST_URL, function (error, response, body) {
        if (error) t.fail(error)

        t.ok(response, "got a response from Express")
        t.ok(body, "got back a body")

        var errors = agent.errors.errors
        t.ok(errors, "errors were found")
        t.equal(errors.length, 2, "should be 2 errors")

        var first = errors[0]
        var second = errors[1]
        t.ok(first, "have the first error")

        t.equal(first[2], "Cannot read property 'ohno' of undefined",
                "got the expected error")

        t.ok(second, "have the second error")

        t.equal(second[2], "HttpError 500",
                "got the expected error")

        server.stop(function () {
          helper.unloadAgent(agent)
          t.end()
        })
      })
    })
  })
Ejemplo n.º 22
0
module.exports = function (done) {
  process.env.NODE_ENV = 'dev';

  var server = Hapi.createServer(serverOptions);
  server.methods = require('./mock-server-methods')(server);

  server.pack.register(require('hapi-auth-cookie'), function (err) {
    if (err) throw err;

    server.auth.strategy('session', 'cookie', 'try', {
      password: '******'
    });

    server.pack.register(registry, done);
  });

  return server;
}
Ejemplo n.º 23
0
       function (t) {
    var agent  = helper.instrumentMockedAgent()
      , hapi   = require('hapi')
      ;

    var options = {
      views : {
        path : path.join(__dirname, 'views'),
        engines : {
          ejs : 'ejs'
        }
      }
    };

    var server = hapi.createServer(TEST_HOST, TEST_PORT, options);

    server.route({
      method : 'GET',
      path : TEST_PATH,
      handler : function (request, reply) {
        reply.view('index', {title : 'yo dawg'});
      }
    });

    agent.once('transactionFinished', function () {
      var stats = agent.metrics.getMetric('View/index/Rendering');
      t.equal(stats.callCount, 1, "should note the view rendering");
    });

    server.start(function cb_start() {
      request(TEST_URL, function (error, response, body) {
        if (error) t.fail(error);

        t.equal(response.statusCode, 200, "response code should be 200");
        t.equal(body, BODY, "template should still render fine");

        server.stop(function cb_stop() {
          helper.unloadAgent(agent);
          t.end();
        });
      });
    });
  });
Ejemplo n.º 24
0
exports.create = function createServer() {
  var server = Hapi.createServer(
    config.server.host,
    config.server.port
  );

  server.route(require('./routing'));

  // response logging
  server.on('response', function(req) {
    logger.info(
      '%s %s - %d (%dms)',
      req.method.toUpperCase(),
      req.path,
      req.response.statusCode,
      Date.now() - req.info.received
    );
  });

  return server;
};
  t.test("less simple case (server.addRoute & route.config.handler)", function (t) {
    var agent  = helper.instrumentMockedAgent()
      , hapi   = require('hapi')
      , server = hapi.createServer('localhost', 8089)


    agent.config.capture_params = true

    agent.on('transactionFinished', verifier(t, function () {
      helper.unloadAgent(agent)
      server.stop(function () {
        t.end()
      })
    }))

    var hello = {
      handler : function (request, reply) {
        t.ok(agent.getTransaction(), "transaction is available")

        reply({status : 'ok'})
      }
    }

    var route = {
      method : 'GET',
      path   : '/test/{id}',
      config : hello
    }
    server.route(route)

    server.start(function () {
      request.get('http://localhost:8089/test/31337',
                  {json : true},
                  function (error, res, body) {

        t.equal(res.statusCode, 200, "nothing exploded")
        t.deepEqual(body, {status : 'ok'}, "got expected response")
      })
    })
  })
Ejemplo n.º 26
0
exports.createTestServer = function (options, handler) {

    if (arguments.length === 1) {
        handler = options;
        options = {};
    }

    options = options || {};

    options.host = options.host || '127.0.0.1';
    options.port = options.port || 0;

    var server = Hapi.createServer(options.host, options.port);

    server.route({
        path: '/',
        method: 'POST',
        handler: handler
    });

    return server;
};
Ejemplo n.º 27
0
  t.test("should trap errors correctly", function (t) {
    var agent  = helper.instrumentMockedAgent()
      , hapi   = require('hapi')
      , server = hapi.createServer(TEST_HOST, TEST_PORT)
      ;

    server.route({
      method  : 'GET',
      path    : TEST_PATH,
      handler : function () {
        var hmm;
        hmm.ohno.failure.is.terrible();
      }
    });

    server.start(function cb_start() {
      request.get(TEST_URL, function (error, response, body) {
        if (error) t.fail(error);

        t.ok(response, "got a response from Express");
        t.ok(body, "got back a body");

        var errors = agent.errors.errors;
        t.ok(errors, "errors were found");
        t.equal(errors.length, 1, "Only one error thrown.");

        var first = errors[0];
        t.ok(first, "have the first error");

        t.equal(first[2], "Cannot read property 'ohno' of undefined",
                "got the expected error");

        server.stop(function cb_stop() {
          helper.unloadAgent(agent);
          t.end();
        });
      });
    });
  });
  t.test("case with route params", function (t) {
    var agent  = helper.instrumentMockedAgent()
      , hapi   = require('hapi')
      , server = hapi.createServer('localhost', 8089)


    // disabled by default
    agent.config.capture_params = true

    agent.on('transactionFinished', function (transaction) {
      t.ok(transaction.trace, 'transaction has a trace.')
      t.deepEqual(transaction.trace.parameters, {id: 1337}, 'parameters should have id')

      helper.unloadAgent(agent)
      server.stop(function () {
        t.end()
      })
    })

    server.route({
      method : 'GET',
      path   : '/test/{id}/',
      handler : function (request, reply) {
        t.ok(agent.getTransaction(), "transaction is available")

        reply({status : 'ok'})
      }
    })

    server.start(function () {
      request.get('http://localhost:8089/test/1337/',
                  {json : true},
                  function (error, res, body) {

        t.equal(res.statusCode, 200, "nothing exploded")
        t.deepEqual(body, {status : 'ok'}, "got expected response")
      })
    })
  })
Ejemplo n.º 29
0
exports.createServer = function(port, cb) {
  // Create the server
  server = Hapi.createServer('0.0.0.0', port);
  server.pack.require('../node_modules/hapi-mysql', Config.readDb, function(err) {
    if (err) {
      console.error(err);
      throw err;
    }
  });

  // Validation for parameters
  var downloadsSchema = {
    // valid periods: 2014-02-01, 2014-01-02:2014-01-04, all-time, last-day, last-week
    period: Joi.string().regex(/(\d{4}-\d{2}-\d{2}(:\d{4}-\d{2}-\d{2})?|[\w-]+)/).required(),
    // valid package names: jquery, jquery-express, socket.io, socket.io-express
    package: Joi.string().regex(/(^[a-zA-Z0-9]([^\/\(\)&\?#\|<>@:%\s\\\*'"!~`])*)*/).allow('')
  };

  // Add the routes
  server.route({
    method: 'GET',
    path: '/downloads/point/{period}/{package?}',
    config: {
      handler: downloads.point,
      validate: {
        path: downloadsSchema
      }
    }
  });
  server.route({
    method: 'GET',
    path: '/downloads/range/{period}/{package?}',
    handler: downloads.range
  });

  // Start the server
  server.start(cb);
};
Ejemplo n.º 30
0
  grunt.registerTask('hapiserver', function hapiserver() {
    var Hapi = require('hapi');
    var server = Hapi.createServer('localhost', 8000);

    server.route([
    {
      method: 'GET',
      path: '/',
      handler: {
        file: { path: './build/index.html'}
      }
    },
    {
      method: 'GET',
      path: '/{path*}',
      handler: {
        directory: { path: './build/', listing: false, index: true}
      }
    }]);

    server.start();
    grunt.log.ok('Hapi dev server started on %s', server.info.uri);
  });