Node.js promise based utility to subscribe to one or more Redis channels at a time and store all messages received on subscribed channels. Messages can then be inspected.
I use my other npm module messageCheckr with substor to verify JMS / SOAP are correct. substor is used on my work projects to verify integration messages from both UI tests using Cucumber/Protractor and API tests using mocha/supertest.
Works with Node.js v0.12.* and higher
npm install substor
to install from the NPM registry.
var substor = require('substor');
The following example is how I have used substor in an API test using mocha.
In hook.js
before(function () {
return substor.connect({host: 'redisHost', port: 'redisPort'});
});
In testFile.js
it('should do something', function () {
return substore.subscribeToChannels(['redisChannelName'])
.then(function(){
// Do something that results in a message or messages to be placed on Redis channel 'redisChannelName'
})
.then(function(){
return substore.getLatestMessageOnChannel('redisChannelName')
})
.then(function(latestMessageOnRedisChannelName){
// latestMessageOnRedisChannelName is a String
// Do whatever you want to the message.
// Once done ensure to unsubscribe from the Redis channel(s)
return substore.unsubscribeFromAllChannels()
})
});
All promises returned from methods are Promises/A+ compliant. Underneath the hood q is used.
Param | Type | Description |
---|---|---|
options | object | Attributes host - (mandatory) Redis host (e.g. host: '127.0.0.1') port - (mandatory) Redis port (e.g. port: '6379') defaultTimeOutMilliseconds - (optional) an integer to override the default of 700 milliseconds. This value is the wait time before getting a message (or message count) from a subscribed channel. debug - (optional) set to true if you need to see more logs. |
Returns Promise.
Param | Type | Description |
---|---|---|
channels | Array | An array of Redis channels. Each element is a String, e.g. ['channel1', 'channel2'] |
Returns Promise.
Returns Promise.
Returns object consisting of all messages received on all channels subscribed to.
Param | Type | Description |
---|---|---|
channel | String | Name of channel |
Returns Promise that resolves to the number of messages received on the specified channel since it was subscribed to.
Param | Type | Description |
---|---|---|
channel | String | Name of channel |
Returns Promise that resolves to the message (String) last received on the specified channel.
Param | Type | Description |
---|---|---|
position | Integer | Position of message received, 1 being the latest |
channel | String | Name of channel |
Returns Promise that resolves to the the message (String) in position on the specified channel.