generator-polymer-init-vaadin-elements-app
Version:
Progressive web application template with Polymer App Toolbox and Vaadin Elements
48 lines (39 loc) • 1.12 kB
JavaScript
var os = require('os');
var fs = require('fs');
var path = require('path');
var rimraf = require('rimraf');
var exec = require('child_process').exec;
var yeoman = require('yeoman-environment');
var generatorPath = require.resolve('../../app');
var randomSuffix = (Math.random()*10e8|0).toString(36);
var appPath = path.join(os.tmpdir(), 'vaadin-elements-' + randomSuffix);
fs.mkdirSync(appPath);
process.chdir(appPath);
function cleanUp() {
rimraf.sync(appPath);
}
function generateApp(callback) {
console.log('Running application generator...');
var env = yeoman.createEnv([]);
env.register(generatorPath, 'vaadin-elements:app');
env.run('vaadin-elements:app', {defaults: true}, callback);
}
function runWct(callback) {
console.log('Running WCT...');
var wctProcess = exec('wct', {}, callback);
wctProcess.stdout.pipe(process.stdout);
wctProcess.stderr.pipe(process.stderr);
}
generateApp(function(err) {
if (err) {
cleanUp();
throw err;
}
runWct(function(err) {
cleanUp();
if (err) {
throw err;
}
console.log('E2E tests completed successfully!');
});
});