mirror of
https://github.com/Unitech/pm2.git
synced 2025-12-08 20:35:53 +00:00
79 lines
1.7 KiB
JavaScript
79 lines
1.7 KiB
JavaScript
|
|
process.env.DEBUG='interface:push-interactor';
|
|
process.env.NODE_ENV = 'local_test';
|
|
process.env.PM2_PUBLIC_KEY = 'xxxx';
|
|
process.env.PM2_SECRET_KEY = 'yyyy';
|
|
process.env.PM2_REVERSE_INTERACT = true;
|
|
process.env.PM2_MACHINE_NAME = 'xmachine';
|
|
process.env.KM_URL_REFRESH_RATE = 1000;
|
|
|
|
var InterfaceD = require('../../lib/Interactor/Daemon.js');
|
|
var Helpers = require('../helpers/apps.js');
|
|
var axon = require('pm2-axon');
|
|
|
|
var pm2;
|
|
|
|
var sock;
|
|
|
|
function listen(cb) {
|
|
sock = axon.socket('sub');
|
|
sock.bind(8080, cb);
|
|
}
|
|
|
|
function listenRev(cb) {
|
|
var listener_server = require('nssocket').createServer(function(_socket) {
|
|
});
|
|
|
|
listener_server.listen(4322, '0.0.0.0', cb);
|
|
}
|
|
|
|
describe('Programmatically test interactor', function() {
|
|
before(function(done) {
|
|
Helpers.forkPM2(function(err, _pm2) {
|
|
listen(function() {
|
|
listenRev(function() {
|
|
pm2 = _pm2;
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
after(function(done) {
|
|
pm2.on('exit', done);
|
|
pm2.kill();
|
|
});
|
|
|
|
it('should start Daemon', function(done) {
|
|
InterfaceD.start();
|
|
setTimeout(done, 2000);
|
|
});
|
|
|
|
it('should receive a message', function(done) {
|
|
sock.once('message', function(data) {
|
|
data = JSON.parse(data);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should still receive messages', function(done) {
|
|
sock.once('message', function(data) {
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should simulate server restart', function(done) {
|
|
sock.close(done);
|
|
});
|
|
|
|
it('should recreate connection', function(done) {
|
|
listen(done);
|
|
});
|
|
|
|
it('should still receive messages', function(done) {
|
|
sock.once('message', function(data) {
|
|
done();
|
|
});
|
|
});
|
|
});
|