webapi-eca/testing/test_components-manager.coffee

116 lines
3 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
cm = require path.join '..', 'js-coffee', 'components-manager'
opts =
logger: log
cm opts
db = require path.join '..', 'js-coffee', 'persistence'
db opts
oUser = objects.users.userOne
oRuleOne = objects.rules.ruleOne
oRuleTwo = objects.rules.ruleTwo
exports.tearDown = ( cb ) ->
db.deleteRule oRuleOne.id
db.deleteRule oRuleTwo.id
cb()
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 =
testGetModules: ( test ) ->
test.expect 2
oModule = objects.eps.epOne
db.eventPollers.storeModule oUser.username, oModule
request =
command: 'get_event_pollers'
cm.processRequest oUser, request, ( answ ) =>
test.strictEqual 200, answ.code, 'GetModules failed...'
oExpected = {}
oExpected[oModule.id] = JSON.parse oModule.functions
test.strictEqual JSON.stringify(oExpected), answ.message,
'GetModules retrieved modules is not what we expected'
console.log answ
test.done()
# testGetModuleParams: ( test ) ->
# test.expect 1
# oModule = objects.eps.epOne
# db.eventPollers.storeModule oUser.username, oModule
# request =
# command: 'get_event_pollers'
# cm.processRequest oUser, request, ( answ ) =>
# test.strictEqual 200, answ.code, 'Empty payload did not return 200'
# console.log answ
# test.done()