mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-18 19:21:34 +08:00
make snapshot e2e tests work, except main.js/main.html only
This commit is contained in:
50
gulpfile.js
50
gulpfile.js
@ -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) {
|
||||
|
Reference in New Issue
Block a user