make snapshot e2e tests work, except main.js/main.html only

This commit is contained in:
Andrew
2015-03-27 13:28:17 -06:00
parent b660777ffa
commit 013e94d5b2
10 changed files with 70 additions and 26 deletions

View File

@ -2,12 +2,15 @@
// Mostly stolen from https://github.com/pkozlowski-opensource/ng2-play
/////
var _ = require('lodash');
var buildConfig = require('./scripts/build/config')
var SystemJsBuilder = require('systemjs-builder')
var exec = require('child_process').exec
var fs = require('fs');
var gulp = require('gulp')
var karma = require('karma').server
var path = require('path')
var buildConfig = require('./scripts/build/config')
var VinylFile = require('vinyl');
var argv = require('yargs').argv
var concat = require('gulp-concat')
@ -21,7 +24,8 @@ var sass = require('gulp-sass')
var shell = require('gulp-shell')
var through2 = require('through2')
var traceur = require('gulp-traceur')
var wrap = require('gulp-wrap')
require('./scripts/snapshot/snapshot.task')(gulp, argv, buildConfig)
gulp.task('default', ['build', 'lib', 'e2e'])
@ -75,23 +79,43 @@ gulp.task('clean', function(done) {
})
gulp.task('e2e', ['build'], function() {
var e2eSrc = path.join(__dirname, 'src/components/**/test/**/*')
var templateSrc = path.join(__dirname, 'scripts/e2e/index.template.html')
var e2eDest = path.join(__dirname, 'dist/e2e/')
var indexContents = _.template( fs.readFileSync('scripts/e2e/index.template.html') )({
buildConfig: buildConfig
})
var testTemplate = _.template( fs.readFileSync('scripts/e2e/e2e.template.js') )
return gulp.src(e2eSrc)
.pipe(gulpif(/index.html/, wrap(
{ src: templateSrc },
{ buildConfig: buildConfig }
)))
function wrapContents(file, template, data) {
var contents = file.contents.toString();
contents = template(_.defaults(data || {}, {
contents: contents,
buildConfig: buildConfig,
}))
file.contents = new Buffer(contents);
}
return gulp.src(buildConfig.src.e2e)
.pipe(rename(function(file) {
file.dirname = file.dirname.replace('/test/', '/')
}))
.pipe(gulpif({ isFile: true }, gulp.dest(e2eDest)))
.pipe(gulpif(/main.html$/, through2.obj(function(file, enc, next) {
var indexClone = _.clone(file);
this.push(new VinylFile(_.assign(indexClone, {
contents: new Buffer(indexContents),
path: file.path.replace(/main.html$/, 'index.html'),
})))
next(null, file)
})))
.pipe(gulpif(/.e2e.js$/, through2.obj(function(file, enc, next) {
var basename = path.basename(file);
var relativePath = path.dirname(file.path.replace(/^.*?src.components/, ''))
wrapContents(file, testTemplate, {
relativePath: relativePath,
});
next(null, file);
})))
.pipe(gulpif({ isFile: true }, gulp.dest(buildConfig.dist + '/e2e')))
})
require('./scripts/snapshot/snapshot.task')(gulp, argv, buildConfig)
// Take es6 files from angular2's output, rename to js, and move to dist/lib/
gulp.task('ng2-rename', function(done) {
exec('test -e node_modules/angular-master', function(err) {