happner
Version:
distributed application engine with evented storage and mesh services
170 lines (125 loc) • 3.56 kB
JavaScript
module.exports = TestMesh;
var DONE = false;
function TestMesh() {}
TestMesh.prototype.method1 = function($happn, $origin, callback) {
callback(null, $origin);
}
if (global.TESTING_D1 || global.TESTING_D1_1) return; // When 'requiring' the module above,
// don't run the tests below
//.............
describe('d1-session-injection', function() {
var expect = require('expect.js');
var should = require('chai').should();
var unsecureMesh;
var Mesh = require('../');
var secureMesh = new Mesh();
var secureClient = new Mesh.MeshClient({secure:true,port:8000});
var unsecureClient = new Mesh.MeshClient({port:8001});
var test_id = Date.now() + '_' + require('shortid').generate();
var async = require('async');
this.timeout(20000);
before('starts a secure mesh', function(done) {
global.TESTING_D1 = true; //.............
secureMesh.initialize({
name:'d1-session-injection-secure',
datalayer: {
secure: true,
adminPassword: test_id,
port:8000
},
modules: {
'TestMesh': {
path: __filename
}
},
components: {
'TestMesh': {
moduleName: 'TestMesh',
schema: {
exclusive: false
}
}
}
}, function(err) {
if (err) return done(err);
secureMesh.start(function(err) {
if (err) {
// console.log(err.stack);
return done(err);
}
// Credentials for the login method
var credentials = {
username: '_ADMIN', // pending
password: test_id
}
secureClient.login(credentials).then(function(){
done();
}).catch(done);
});
});
});
before('starts an insecure mesh', function(done) {
global.TESTING_D1_1 = true; //.............
unsecureMesh = this.mesh = new Mesh();
unsecureMesh.initialize({
name:'d1-session-injection',
datalayer: {
secure: false,
adminPassword: test_id,
port:8001
},
modules: {
'TestMesh': {
path: __filename
}
},
components: {
'TestMesh': {
moduleName: 'TestMesh',
schema: {
exclusive: false
}
}
}
}, function(err) {
if (err) return done(err);
unsecureMesh.start(function(err) {
if (err) {
// console.log(err.stack);
return done(err);
}
// Credentials for the login method
var credentials = {
port:8001
}
unsecureClient.login(credentials).then(function(){
done();
}).catch(done);
});
});
});
after(function(done) {
delete global.TESTING_D1_1;
delete global.TESTING_D1;
unsecureMesh.stop(function(e){
if (e) return done(e);
secureMesh.stop(done);
});
})
it('fetches the origin info on a secure mesh', function(done) {
secureClient.exchange.TestMesh.method1(function(e, result){
if (e) return done(e);
expect(result.username).to.equal('_ADMIN');
done();
});
});
it('fetches the origin info on an unsecure mesh', function(done) {
unsecureClient.exchange.TestMesh.method1(function(e, result){
if (e) return done(e);
expect(result.id).to.not.equal(null);
expect(result.id).to.not.equal(undefined);
expect(result.username).to.equal(undefined);
done();
});
});
});