mirror of
https://github.com/Hopiu/webapi-eca.git
synced 2026-03-16 22:10:31 +00:00
118 lines
2.5 KiB
CoffeeScript
118 lines
2.5 KiB
CoffeeScript
http = require 'http'
|
|
path = require 'path'
|
|
events = require 'events'
|
|
cp = require 'child_process'
|
|
logger = require path.join '..', 'js-coffee', 'logging'
|
|
log = logger.getLogger
|
|
nolog: true
|
|
i = 0
|
|
|
|
createRequest = ( query, origUrl ) ->
|
|
req = new events.EventEmitter()
|
|
req.query = query
|
|
req.originalUrl = origUrl
|
|
req.session = {}
|
|
req
|
|
|
|
createLoggedInRequest = ( query, origUrl ) ->
|
|
req = createRequest()
|
|
req.session =
|
|
user:
|
|
name: 'unittester'
|
|
req
|
|
|
|
createAdminRequest = ( query, origUrl ) ->
|
|
req = createRequest()
|
|
req.session =
|
|
user:
|
|
name: 'adminunittester'
|
|
isAdmin: true
|
|
req
|
|
|
|
postRequestData = ( req, data ) ->
|
|
req.emit 'data', data
|
|
req.emit 'end'
|
|
|
|
# cb want's to get a response like { code, msg }
|
|
createResponse = ( cb ) ->
|
|
resp =
|
|
send: ( code, msg ) ->
|
|
if msg
|
|
code = parseInt code
|
|
else
|
|
msg = code
|
|
code = 200
|
|
cb code, msg
|
|
|
|
exports.setUp = ( cb ) =>
|
|
@rh = require path.join '..', 'js-coffee', 'request-handler'
|
|
cb()
|
|
|
|
# test: ( test ) ->
|
|
# test.expect 1
|
|
|
|
# args =
|
|
# logger: log
|
|
# args[ 'request-service' ] = ( usr, obj, cb ) ->
|
|
# console.log 'got a request to answer!'
|
|
# args[ 'shutdown-function' ] = () ->
|
|
# console.log 'request handler wants us to shutdown!'
|
|
# @rh args
|
|
|
|
# test.ok true, 'yay'
|
|
# test.done()
|
|
|
|
exports.events =
|
|
setUp: ( cb ) =>
|
|
@db = require path.join '..', 'js-coffee', 'persistence'
|
|
args =
|
|
logger: log
|
|
args[ 'db-port' ] = 6379
|
|
@db args
|
|
cb()
|
|
|
|
tearDown: ( cb ) =>
|
|
@db.shutDown()
|
|
cb()
|
|
|
|
testEvent: ( test ) =>
|
|
test.expect 1
|
|
|
|
doPolling = true
|
|
fPollEventQueue = ( cb ) =>
|
|
console.log 'polling'
|
|
if doPolling
|
|
@db.popEvent cb
|
|
setTimeout fPollEventQueue, 5
|
|
|
|
fPollEventQueue ( err, obj ) ->
|
|
console.log 'got something? :'
|
|
console.log err
|
|
console.log obj
|
|
|
|
args =
|
|
logger: log
|
|
args[ 'request-service' ] = ( usr, obj, cb ) ->
|
|
test.ok false, 'testEvent should not cause a service request call'
|
|
args[ 'shutdown-function' ] = () ->
|
|
test.ok false, 'testEvent should not cause a system shutdown'
|
|
@rh args
|
|
|
|
evt = 'event=unittest&eventid=unittest0'
|
|
req = createRequest()
|
|
console.log req
|
|
resp = createResponse ( code, msg ) ->
|
|
console.log 'got response: ' + msg
|
|
doPolling = false
|
|
@rh.handleEvent req, resp
|
|
fWait = () ->
|
|
postRequestData req, evt
|
|
|
|
setTimeout fWait, 50
|
|
# req.emit 'data', evt
|
|
# req.emit 'end'
|
|
|
|
|
|
test.ok true, 'yay'
|
|
test.done()
|
|
|