change on services, docker localDB y jasmime

This commit is contained in:
Vicente Falco 2017-10-24 08:56:18 +02:00
parent 2be39c0deb
commit 1c5a65928e
6 changed files with 50 additions and 10515 deletions

View File

@ -15,7 +15,6 @@ var WebpackDevServer = require('webpack-dev-server');
var exec = require('child_process').exec; var exec = require('child_process').exec;
// Configuration // Configuration
var srcDir = './client'; var srcDir = './client';
var buildDir = './services/nginx/static'; var buildDir = './services/nginx/static';
var langs = ['es', 'en']; var langs = ['es', 'en'];
@ -38,19 +37,16 @@ gulp.task('client', ['clean'], function() {
return gulp.start('watch', 'routes', 'locales', 'webpack-dev-server'); return gulp.start('watch', 'routes', 'locales', 'webpack-dev-server');
}); });
gulp.task('services', function() { gulp.task('services', () => {
require('./services/mailer/server.js').start(); process.env.NODE_ENV = gutil.env.env || 'development';
const pathServices = './services/';
var lbServices = [ const services = fs.readdirSync(pathServices);
'auth', services.splice(services.indexOf('loopback'), 1);
'salix', return services.forEach(service => {
'client', const serviceJs = pathServices.concat(service, '/server/server.js');
'production', if (fs.existsSync(serviceJs))
'route' require(serviceJs).start();
]; });
for (var service of lbServices)
require(`./services/${service}/server/server.js`).start();
}); });
gulp.task('clean', function() { gulp.task('clean', function() {
@ -101,7 +97,7 @@ gulp.task('webpack-dev-server', function() {
contentBase: buildDir, contentBase: buildDir,
quiet: false, quiet: false,
noInfo: false, noInfo: false,
// hot: true, // hot: true,
stats: { stats: {
assets: true, assets: true,
colors: true, colors: true,
@ -140,37 +136,49 @@ var routeFiles = `${srcDir}/**/routes.json`;
gulp.task('routes', function() { gulp.task('routes', function() {
return gulp.src(routeFiles) return gulp.src(routeFiles)
.pipe(concat('routes.js', {newLine: ','})) .pipe(concat('routes.js', {newLine: ','}))
.pipe(wrap('var routes = [<%=contents%>\n];')) .pipe(wrap('var routes = [<%=contents%>\n];'))
.pipe(gulp.dest(buildDir)); .pipe(gulp.dest(buildDir));
}); });
// Watch // Watch
gulp.task('watch', function() { gulp.task('watch', function() {
gulp.watch(routeFiles, ['routes']); gulp.watch(routeFiles, ['routes']);
gulp.watch(localeFiles, ['locales']); gulp.watch(localeFiles, ['locales']);
}); });
gulp.task('test', () => { // Test environment
process.env.NODE_ENV = gutil.env.env || 'test'; gulp.task('test', callback => {
console.log(process.env.NODE_ENV); return require('./services_tests').start();
runSequence('deleteDockerDb', 'buildDockerDb', 'runDockerDb');
}); });
gulp.task('runDockerDb', (callback) => { // docker dblocal
exec('docker run -d --name dblocal -p 3306:3306 dblocal:latest', (err, stdout, stderr) => { gulp.task('docker', callback => {
callback(err); runSequence('deleteDockerDb', 'deleteDockerImageDb', 'buildDockerDb', 'runDockerDb', callback);
});
gulp.task('runDockerDb', callback => {
exec('docker run -d --name dblocal -p 3306:3306 dblocal', (err, stdout, stderr) => {
setTimeout(() => {
callback(err);
}, 15000);
}); });
}); });
gulp.task('buildDockerDb', (callback) => { gulp.task('buildDockerDb', callback => {
exec('docker build -t dblocal:latest ./services/db', (err, stdout, stderr) => { exec('docker build -t dblocal:latest ./services/db', (err, stdout, stderr) => {
callback(err); callback(err);
}); });
}); });
gulp.task('deleteDockerDb', (callback) => {
exec('docker rm -f dblocal', (err, stdout, stderr) => { gulp.task('deleteDockerImageDb', callback => {
callback(); exec('docker rmi dblocal:latest', (err, stdout, stderr) => {
callback(err = null);
});
});
gulp.task('deleteDockerDb', callback => {
exec('docker stop dblocal && docker wait dblocal && docker rm -f dblocal', (err, stdout, stderr) => {
callback(err = null);
}); });
}); });

10475
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -18,6 +18,7 @@
"flatpickr": "^2.6.3", "flatpickr": "^2.6.3",
"material-design-lite": "^1.3.0", "material-design-lite": "^1.3.0",
"mg-crud": "^1.1.2", "mg-crud": "^1.1.2",
"nodemon": "^1.12.1",
"oclazyload": "^0.6.3", "oclazyload": "^0.6.3",
"validator": "^6.2.1" "validator": "^6.2.1"
}, },
@ -58,7 +59,6 @@
"merge-stream": "^1.0.1", "merge-stream": "^1.0.1",
"nightmare": "^2.10.0", "nightmare": "^2.10.0",
"node-sass": "^3.11.0", "node-sass": "^3.11.0",
"nodemon": "^1.12.0",
"raw-loader": "*", "raw-loader": "*",
"run-sequence": "^2.2.0", "run-sequence": "^2.2.0",
"sass-loader": "^4.0.2", "sass-loader": "^4.0.2",

View File

@ -3,7 +3,7 @@ let app = require('../../../../server/server');
describe('Client Create()', () => { describe('Client Create()', () => {
let data = { let data = {
name: 'Max Eisenhardt', name: 'MaxEisenhardt',
userName: 'Magneto', userName: 'Magneto',
email: 'magneto@marvel.com', email: 'magneto@marvel.com',
fi: 'X-tax number', fi: 'X-tax number',

View File

@ -1,17 +1,17 @@
var express = require('express'); var express = require('express');
var app = module.exports = express(); var app = module.exports = express();
var bodyParser = require('body-parser'); var bodyParser = require('body-parser');
var settings = require('./application/settings.js'); var settings = require('../application/settings.js');
var mail = require('./application/mail.js'); var mail = require('../application/mail.js');
var database = require('./application/database.js'); var database = require('../application/database.js');
var auth = require('./application/auth.js'); var auth = require('../application/auth.js');
var path = require('path'); var path = require('path');
// Body parser middleware // Body parser middleware
app.use(bodyParser.json()); app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true})); app.use(bodyParser.urlencoded({extended: true}));
app.use('/static', express.static(path.join(__dirname, '/static'))); app.use('/static', express.static(path.join(__dirname, '../static')));
// Auth middleware // Auth middleware
var requestToken = function(request, response, next) { var requestToken = function(request, response, next) {
@ -19,7 +19,7 @@ var requestToken = function(request, response, next) {
}; };
// Load routes // Load routes
app.use('/', requestToken, require('./application/router.js')); app.use('/', requestToken, require('../application/router.js'));
app.start = function() { app.start = function() {
var listener = app.listen(settings.app().port, function() { var listener = app.listen(settings.app().port, function() {
@ -28,7 +28,7 @@ app.start = function() {
database.init(); database.init();
database.testEmail(); database.testEmail();
let packageJson = require('./package.json'); let packageJson = require('../package.json');
console.log(`Web server ${packageJson.name} listening at: ${servicePath}`); console.log(`Web server ${packageJson.name} listening at: ${servicePath}`);
if (settings.app().debug) { if (settings.app().debug) {

View File

@ -36,4 +36,6 @@ jasmine.addReporter(new SpecReporter({
} }
})); }));
jasmine.execute(); exports.start = () => {
jasmine.execute();
};