mixdown
Version:
Mixdown components are used to create and remix web app and cli services.
83 lines (63 loc) • 2.81 kB
JavaScript
var _ = require('lodash');
var assert = require('assert');
var Mixdown = require('../../index.js');
suite('Multi-site example', function() {
var simpleApp = require('../../example/web/multi-site/mixdown.json');
var mixdown = new Mixdown(simpleApp);
setup(function(done) {
mixdown.init(done);
});
test('Load configuration', function(done) {
assert.deepEqual(mixdown.config, simpleApp, 'Mixdown Instance should have its config set');
assert.ok(global.logger, 'Logger should be attached to global namespace');
assert.equal(Object.keys(mixdown.apps).length, 2, 'Mixdown should have generated 2 app');
done();
});
test('Test webapp1', function(done) {
var app1 = mixdown.apps.webapp1;
assert.ok(app1['hello-world'], 'Namespace should be initialized properly.');
assert.equal(app1['hello-world'].sayHello(), 'hola', 'sayHello should return configured value.');
done();
});
test('Test webapp2', function(done) {
var app2 = mixdown.apps.webapp2;
assert.ok(app2['hello-world'], 'Namespace should be initialized properly.');
assert.equal(app2['hello-world'].sayHello(), 'bonjour', 'sayHello should return configured value.');
done();
});
});
suite('Multi-site example with env config - initialization', function() {
var simpleApp = require('../../example/web/multi-site/mixdown.json');
var mixdown = new Mixdown(simpleApp);
test('Load configuration', function(done) {
var envConfig = require('../../test/fixtures/mixdown-prod.json');
mixdown.env(envConfig);
mixdown.init(function(err) {
assert.deepEqual(mixdown.config, simpleApp, 'Mixdown Instance should have its config set');
assert.ok(global.logger.options.syslog, 'Syslog Logger should be attached to global namespace');
assert.equal(Object.keys(mixdown.apps).length, 2, 'Mixdown should have generated 2 app');
done();
});
});
});
suite('Multi-site example with env config - site tests', function() {
var simpleApp = require('../../example/web/multi-site/mixdown.json');
var mixdown = new Mixdown(simpleApp);
setup(function(done) {
var envConfig = require('../../test/fixtures/mixdown-prod.json');
mixdown.env(envConfig);
mixdown.init(done);
});
test('Test webapp1', function(done) {
var app1 = mixdown.apps.webapp1;
assert.ok(app1['hello-world'], 'Namespace should be initialized properly.');
assert.equal(app1['hello-world'].sayHello(), 'hola', 'sayHello should return configured value.');
done();
});
test('Test webapp2', function(done) {
var app2 = mixdown.apps.webapp2;
assert.ok(app2['hello-world'], 'Namespace should be initialized properly.');
assert.equal(app2['hello-world'].sayHello(), 'bonjour', 'sayHello should return configured value.');
done();
});
});