UNPKG

nitrogen-reactor

Version:

This module adds support for reactorCommand and reactorStatus messages. These messages are used to control a Nitrogen reactor. It also provides the ReactorManager class for interpreting message streams and driving the attached reactor. This project is by

112 lines (94 loc) 3.19 kB
var assert = require('assert') , config = require('../config') , ReactorManager = require('../../manager') , MockReactor = require('./mockReactor') , nitrogen = require('nitrogen'); describe('reactorManager', function() { var reactor = new MockReactor({ nickname: 'mockreactor' }); var reactorManager = new ReactorManager(reactor); var installFixture = [ new nitrogen.Message({ id: '1', ts: new Date(), type: 'reactorCommand', body: { command: 'install', module: 'nitrogen-test-app', version: "~0.1", params: {}, instance_id: '1AZ' } }) ]; it('should process install message', function(done) { installFixture.forEach(function(message) { reactorManager.process(message); }); reactorManager.executeQueue(function() { var state = reactorManager.device.status(); assert(state['1AZ'].command, installFixture[0]); assert(state['1AZ'].state, 'stopped'); done(); }); }); var startFixture = [ new nitrogen.Message({ id: '2', ts: new Date(), type: 'reactorCommand', body: { command: 'start', instance_id: '1AZ' } }) ]; it('should process start message', function(done) { startFixture.forEach(function(message) { reactorManager.process(message); }); reactorManager.executeQueue(function() { var state = reactorManager.device.status(); assert(state['1AZ'].command, startFixture[0]); assert(state['1AZ'].state, 'running'); done(); }); }); var stopFixture = [ new nitrogen.Message({ id: '3', ts: new Date(), type: 'reactorCommand', body: { command: 'stop', instance_id: '1AZ' } }) ]; it('should process stop message', function(done) { stopFixture.forEach(function(message) { reactorManager.process(message); }); reactorManager.executeQueue(function() { var state = reactorManager.device.status(); assert(state['1AZ'].command, stopFixture[0]); assert(state['1AZ'].state, 'stopped'); done(); }); }); var uninstallFixture = [ new nitrogen.Message({ id: '3', ts: new Date(), type: 'reactorCommand', body: { command: 'uninstall', instance_id: '1AZ' } }) ]; it('should process uninstall message', function(done) { uninstallFixture.forEach(function(message) { reactorManager.process(message); }); reactorManager.executeQueue(function() { var state = reactorManager.device.status(); assert(state['1AZ'].command, uninstallFixture[0]); assert(state['1AZ'].state, 'uninstalled'); done(); }); }); });