harcon-nsq
Version:
NSQ plugin for the harcon messaging/service bus of node-based enterprise entities.
97 lines (89 loc) • 2.6 kB
JavaScript
var chai = require('chai'),
should = chai.should(),
expect = chai.expect
var Harcon = require('harcon')
var Amqp = require('../lib/Nsq')
var Logger = require('./WinstonLogger')
var logger = Logger.createWinstonLogger( { console: true, level: 'debug' } )
var Publisher = require('./Publisher')
module.exports = {
harcon: null,
init: function ( callback ) {
var self = this
self.harcon = new Harcon( { Barrel: Amqp.Barrel, logger: logger, idLength: 32, marie: {greetings: 'Hi!'} }, callback )
},
activatePublisher: function ( callback ) {
var self = this
self.harcon.addicts( Publisher )
Publisher.watch( './test/components', -1 )
callback()
},
addVivian: function (callback) {
var self = this
var Vivian = {
name: 'Vivian',
context: 'morning',
wakeup: function ( greetings, ignite, cb ) {
cb( null, 'Thanks. ' + greetings )
}
}
self.harcon.addicts( Vivian, {}, function () {
callback()
} )
},
checkHealth: function ( callback ) {
var self = this
setTimeout( function () {
self.harcon.divisions( function (err, divisions) {
if ( err ) return callback( err )
expect( divisions ).to.eql( [ 'Inflicter', 'Inflicter.click' ] )
self.harcon.listeners( function (err, listeners) {
[ 'Inflicter', 'Publisher', 'Vivian', 'Alizee', 'Claire', 'Domina', 'Julie', 'Marie' ].forEach( function (element) {
expect( listeners ).to.include( element )
} )
callback( err )
} )
})
}, 1000 )
},
checkVivian: function ( done ) {
this.harcon.simpleIgnite( 'Vivian.wakeup', 'whatsup?', function (err, res) {
should.not.exist(err)
should.exist(res)
expect( res ).to.include( 'Thanks. whatsup?' )
done( )
} )
},
checkMarie: function (done) {
this.harcon.simpleIgnite( 'Marie.simple', 'whatsup?', 'how do you do?', function (err, res) {
should.not.exist(err)
should.exist(res)
expect( res ).to.include( 'Bonjour!' )
done( )
} )
},
checkGreetings: function (done) {
this.harcon.simpleIgnite( 'greet.simple', 'whatsup?', 'how do you do?', function (err, res) {
should.not.exist(err)
should.exist(res)
expect( res ).to.include( 'Bonjour!' )
done( )
} )
},
checkMorningGreetings: function (done) {
this.harcon.simpleIgnite( 'dawn.wakeup', function (err, res) {
expect(err).to.be.a('null')
expect( res[0] ).to.include( 'Bonjour!' )
done( )
} )
},
checkDomina: function (done) {
this.harcon.simpleIgnite( 'Domina.force', function (err, res) {
done( err )
} )
},
close: function ( done ) {
if ( this.harcon )
this.harcon.close( done )
}
}