UNPKG

guvnor

Version:

A node process manager that isn't spanners all the way down

77 lines (61 loc) 2.09 kB
var expect = require('chai').expect, path = require('path'), ParentProcess = require('../../../../lib/daemon/common/ParentProcess') describe('ParentProcess', function () { it('should remote private fields from objects', function () { var parentProcess = new ParentProcess() var output = parentProcess._remotePrivateFieldsFromObject({ _foo: 'bar', baz: 'qux' }) expect(output.baz).to.equal('qux') expect(output._foo).to.not.exist }) it('should remote private fields from objects with array properties', function () { var parentProcess = new ParentProcess() var output = parentProcess._remotePrivateFieldsFromObject({ baz: [{ _foo: 'bar', baz: 'qux', garply: 1, corge: true, grault: false, waldo: { fred: undefined, plugh: null, xyzzy: new String('thud') } }] }) expect(output.baz[0]._foo).to.not.exist expect(output.baz[0].baz).to.equal('qux') expect(output.baz[0].garply).to.equal(1) expect(output.baz[0].corge).to.equal(true) expect(output.baz[0].grault).to.equal(false) expect(output.baz[0].waldo.fred).to.equal(undefined) expect(output.baz[0].waldo.plugh).to.equal(null) expect(output.baz[0].waldo.xyzzy.toString()).to.equal('thud') }) it('should send a message', function () { process.send = sinon.stub() var parentProcess = new ParentProcess() parentProcess.send('process:foo', 'bar') expect(process.send.called).to.be.true expect(process.send.getCall(0).args[0].event).to.equal('process:foo') expect(process.send.getCall(0).args[0].args).to.deep.equal(['bar']) }) it('should emit a message', function (done) { process.send = sinon.stub() // sets up handlers for messages var parent = new ParentProcess() parent.on('foo:bar', function (arg1, arg2) { expect(arg1).to.equal('baz') expect(arg2).to.equal('qux') done() }) process.emit('message', { event: 'foo:bar', args: ['baz', 'qux'] }) }) })