mirror of
https://github.com/Hopiu/webapi-eca.git
synced 2026-03-16 22:10:31 +00:00
140 lines
3.8 KiB
CoffeeScript
140 lines
3.8 KiB
CoffeeScript
fs = require 'fs'
|
|
path = require 'path'
|
|
|
|
try
|
|
data = fs.readFileSync path.resolve( 'testing', 'files', 'testObjects.json' ), 'utf8'
|
|
try
|
|
objects = JSON.parse data
|
|
catch err
|
|
console.log 'Error parsing standard objects file: ' + err.message
|
|
catch err
|
|
console.log 'Error fetching standard objects file: ' + err.message
|
|
|
|
logger = require path.join '..', 'js-coffee', 'logging'
|
|
log = logger.getLogger
|
|
nolog: true
|
|
opts =
|
|
logger: log
|
|
|
|
cm = require path.join '..', 'js-coffee', 'components-manager'
|
|
cm opts
|
|
|
|
db = require path.join '..', 'js-coffee', 'persistence'
|
|
db opts
|
|
|
|
oUser = objects.users.userOne
|
|
oRuleOne = objects.rules.ruleOne
|
|
oRuleTwo = objects.rules.ruleTwo
|
|
oEpOne = objects.eps.epOne
|
|
oEpTwo = objects.eps.epTwo
|
|
|
|
exports.tearDown = ( cb ) ->
|
|
db.deleteRule oRuleOne.id
|
|
db.deleteRule oRuleTwo.id
|
|
setTimeout cb, 100
|
|
|
|
exports.requestProcessing =
|
|
testEmptyPayload: ( test ) =>
|
|
test.expect 1
|
|
|
|
request =
|
|
command: 'get_event_pollers'
|
|
|
|
cm.processRequest oUser, request, ( answ ) =>
|
|
test.strictEqual 200, answ.code, 'Empty payload did not return 200'
|
|
test.done()
|
|
|
|
testCorruptPayload: ( test ) =>
|
|
test.expect 1
|
|
|
|
request =
|
|
command: 'get_event_pollers'
|
|
payload: 'no-json'
|
|
|
|
cm.processRequest oUser, request, ( answ ) =>
|
|
test.strictEqual 404, answ.code, 'Corrupt payload did not return 404'
|
|
test.done()
|
|
|
|
exports.testListener = ( test ) =>
|
|
test.expect 2
|
|
|
|
db.storeRule oRuleOne.id, JSON.stringify oRuleOne
|
|
request =
|
|
command: 'forge_rule'
|
|
payload: JSON.stringify oRuleTwo
|
|
|
|
cm.addListener 'newRule', ( evt ) =>
|
|
try
|
|
newRule = JSON.parse evt
|
|
catch err
|
|
test.ok false, 'Failed to parse the newRule event'
|
|
test.deepEqual newRule, oRuleTwo, 'New Rule is not the same!'
|
|
test.done()
|
|
|
|
cm.addListener 'init', ( evt ) =>
|
|
try
|
|
initRule = JSON.parse evt
|
|
catch err
|
|
test.ok false, 'Failed to parse the newRule event'
|
|
test.deepEqual initRule, oRuleOne, 'Init Rule is not the same!'
|
|
|
|
fWaitForInit = ->
|
|
cm.processRequest oUser, request, ( answ ) =>
|
|
if answ.code isnt 200
|
|
test.ok false, 'testListener failed: ' + answ.message
|
|
test.done()
|
|
|
|
setTimeout fWaitForInit, 200
|
|
|
|
exports.moduleHandling =
|
|
tearDown: ( cb ) ->
|
|
db.eventPollers.deleteModule oEpOne.id
|
|
db.eventPollers.deleteModule oEpTwo.id
|
|
setTimeout cb, 100
|
|
|
|
testGetModules: ( test ) ->
|
|
test.expect 2
|
|
|
|
db.eventPollers.storeModule oUser.username, oEpOne
|
|
request =
|
|
command: 'get_event_pollers'
|
|
|
|
cm.processRequest oUser, request, ( answ ) =>
|
|
test.strictEqual 200, answ.code, 'GetModules failed...'
|
|
oExpected = {}
|
|
oExpected[oEpOne.id] = JSON.parse oEpOne.functions
|
|
test.strictEqual JSON.stringify(oExpected), answ.message,
|
|
'GetModules retrieved modules is not what we expected'
|
|
test.done()
|
|
|
|
testGetModuleParams: ( test ) ->
|
|
test.expect 2
|
|
|
|
db.eventPollers.storeModule oUser.username, oEpTwo
|
|
|
|
request =
|
|
command: 'get_event_poller_params'
|
|
payload: '{"id": "' + oEpTwo.id + '"}'
|
|
|
|
cm.processRequest oUser, request, ( answ ) =>
|
|
test.strictEqual 200, answ.code,
|
|
'Required Module Parameters did not return 200'
|
|
test.strictEqual oEpTwo.params, answ.message,
|
|
'Required Module Parameters did not match'
|
|
test.done()
|
|
|
|
testForgeModule: ( test ) ->
|
|
test.expect 2
|
|
|
|
oTmp = {}
|
|
oTmp[key] = val for key, val of oEpTwo when key isnt 'functions'
|
|
request =
|
|
command: 'forge_event_poller'
|
|
payload: JSON.stringify oTmp
|
|
|
|
cm.processRequest oUser, request, ( answ ) =>
|
|
test.strictEqual 200, answ.code, 'Forging Module did not return 200'
|
|
|
|
db.eventPollers.getModule oEpTwo.id, ( err, obj ) ->
|
|
test.deepEqual obj, oEpTwo, 'Forged Module is not what we expected'
|
|
test.done()
|