cavalry
Version:
Basically Fleet without dnode.
47 lines (45 loc) • 1.67 kB
text/coffeescript
assert = require "assert"
http = require 'http'
WebSocketServer = require('ws').Server
checkin = require('../lib/checkin.coffee')({silent: true})
runner = require '../lib/runner.coffee'
util = require '../lib/util.coffee'
master = null
describe "checkin", ->
beforeEach (done) ->
master = new WebSocketServer({port: 4000})
checkin.setRetry false
done()
afterEach (done) ->
master.close()
done()
it 'should check in with a master', (done) ->
checkin.startCheckin()
master.on 'connection', (ws) ->
ws.on 'message', (message) ->
parsed = JSON.parse message
assert.equal parsed.type, "checkin"
assert.equal parsed.secret, "testingpass"
assert.equal parsed.apiVersion, util.apiVersion
done()
it 'should send the proceses object with the checkin', (done) ->
runner.processes =
c904bf:
id: 'c904bf'
status: 'running'
repo: 'test1'
commit: '7bc4bbc44cf9ce4daa7dee4187a11759a51c3447'
command: [ 'touch', 'acd82b' ]
cwd: '/Users/davidbanham/Dropbox/repos/cavalry/testrepos/deploy/test1.7bc4bbc44cf9ce4daa7dee4187a11759a51c3447'
checkin.startCheckin()
master.on 'connection', (ws) ->
ws.on 'message', (message) ->
parsed = JSON.parse message
done assert.deepEqual parsed.processes,
c904bf:
id: 'c904bf'
status: 'running'
repo: 'test1'
commit: '7bc4bbc44cf9ce4daa7dee4187a11759a51c3447'
command: [ 'touch', 'acd82b' ]
cwd: '/Users/davidbanham/Dropbox/repos/cavalry/testrepos/deploy/test1.7bc4bbc44cf9ce4daa7dee4187a11759a51c3447'