Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/index.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

27 changes: 18 additions & 9 deletions lib/routes.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/routes.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src/index.coffee
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
routes = require './routes'

module.exports.register = (plugin, options = {}, cb) ->
routes plugin
routes plugin, options

plugin.expose 'dummy', {} if process.env.NODE_ENV is 'test'

Expand Down
23 changes: 15 additions & 8 deletions src/routes.coffee
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@

module.exports = (plugin) ->
module.exports = (plugin, options) ->
plugin.route
path: '/status'
path: options.path || '/status'
method: 'GET'
config:
auth: false
handler: (request, reply) ->
reply
running: true
uptime: process.uptime()
memoryUsage: process.memoryUsage()
versions: process.versions
droneId: process.pid

if request.info.host is options.localhost
reply
app: options.app
running: true
uptime: process.uptime()
memoryUsage: process.memoryUsage()
versions: process.versions
droneId: process.pid
else
reply
app: options.app
running: true
uptime: process.uptime()

33 changes: 32 additions & 1 deletion test/routes-tests.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ assert = require 'assert'
should = require 'should'

loadServer = require './support/load-server'
loadServerWithOptions = require './support/load-server-with-config.coffee'

describe 'WHEN route testing for status-routes', ->
describe '/status', ->
Expand All @@ -18,8 +19,38 @@ describe 'WHEN route testing for status-routes', ->
response.statusCode.should.equal 200
should.exist result

result.should.have.property 'running',true
result.should.have.property 'uptime'
result.should.not.have.property 'memoryUsage'
result.should.not.have.property 'droneId'

cb null

describe 'WHEN route testing for "/stats" route', ->
describe '/stats', ->
loadServerWithOptions (err,server) ->
return cb err if err
it 'should respond with an up stats', (cb) ->
options =
method: "GET"
url: "/stats"
headers:
"Host" : "localhost"

server.inject options, (response) ->
result = response.result
#console.log result

response.statusCode.should.equal 200
should.exist result

result.should.have.property 'running',true
result.should.have.property 'uptime'
result.should.have.property 'memoryUsage'

result.should.have.property 'versions'
result.should.have.property 'droneId'
result.should.have.property 'app'
result.app.should.have.property 'name', 'myApp'
result.app.should.have.property 'version', '0.0.1-7'

cb null
20 changes: 20 additions & 0 deletions test/support/load-server-with-config.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
index = require '../../lib/index'
Hapi = require "hapi"
_ = require 'underscore'

# server with custom config
module.exports = loadServerWithOptions = (cb) ->
server = new Hapi.Server 5675,"localhost",{}

pluginConf = [
plugin: index,
options:
app:
name: "myApp"
version: "0.0.1-7"
path: '/stats'
localhost: 'localhost'
]

server.pack.register pluginConf, (err) ->
cb err,server