You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.3 KiB
JavaScript

'use strict';
var gulp = require('gulp');
var $ = require('gulp-load-plugins')();
var wiredep = require('wiredep');
var karma = require('karma');
var concat = require('concat-stream');
var _ = require('lodash');
module.exports = function(options) {
function listFiles(callback) {
var bowerDeps = wiredep({
directory: 'bower_components',
dependencies: true,
devDependencies: true
});
var specFiles = [
options.src + '/**/*.spec.js',
options.src + '/**/*.mock.js'
];
var htmlFiles = [
options.src + '/**/*.html'
];
var srcFiles = [
options.src + '/{app,components}/**/*.js'
].concat(specFiles.map(function(file) {
return '!' + file;
}));
gulp.src(srcFiles)
.pipe(concat(function(files) {
callback(bowerDeps.js
.concat(_.pluck(files, 'path'))
.concat(htmlFiles)
.concat(specFiles));
}));
}
function runTests (singleRun, done) {
listFiles(function(files) {
karma.server.start({
configFile: __dirname + '/../karma.conf.js',
files: files,
singleRun: singleRun
}, done);
});
}
gulp.task('test', ['scripts'], function(done) {
runTests(true, done);
});
gulp.task('test:auto', ['watch'], function(done) {
runTests(false, done);
});
};