diff --git a/gulpfile.js b/gulpfile.js index 07b82502..fbfb560b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -32,13 +32,14 @@ const changelog = require('./scripts/changelog'); const prebuild = gulp.series(clean, lint); const pretest = gulp.series(prebuild, build); -const prerelease = gulp.series(pretest, test); +const prerelease = gulp.series(pretest, test.test); module.exports = { 'clean': clean, 'lint': lint, 'build': gulp.series(prebuild, build), - 'test': gulp.series(pretest, test), + 'test': gulp.series(pretest, test.test), + 'tdd': gulp.series(clean, build, test.tdd), 'changelog': changelog, 'release:patch': gulp.series(prerelease, release.patch), 'release:minor': gulp.series(prerelease, release.minor), diff --git a/package.json b/package.json index a2a23e9d..182400e2 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "clean": "gulp clean", "build": "gulp build", "test": "gulp test", + "tdd": "gulp tdd", "changelog": "gulp changelog", "release": "gulp release:minor", "release:patch": "gulp release:patch", diff --git a/scripts/test/index.js b/scripts/test/index.js index b6ee2237..931f721b 100644 --- a/scripts/test/index.js +++ b/scripts/test/index.js @@ -25,13 +25,39 @@ const path = require('path'); const gulp = require('gulp'); const jasmine = require('gulp-jasmine'); +const build = require('../build'); const config = require('../config'); -module.exports = function test() { +/** + * Run unit tests and exit. + * + * @return {WritableStream} The gulp pipe stream. + */ +function test() { const src = [ path.join(config.test, 'base.spec.js'), path.join(config.test, '**', '*.spec.js'), ]; return gulp.src(src).pipe(jasmine()); +} + +/** + * Watch files and run unit test suite every time a change is detected. + * + * @param {function} done The `done` function. + * @return {void} + */ +function tdd(done) { + gulp.watch(path.join(config.dist, '**', '*.js'), test); + gulp.watch(path.join(config.src, '**', '*.js'), build); + gulp.watch(path.join(config.test, '**', '*.js'), test); + + done(); +} + +module.exports = { + tdd, + test, }; +