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.