UNPKG

2.04 kBJavaScriptView Raw
1var gulp = require('gulp');
2var gutil = require('gulp-util');
3var mocha = require('gulp-mocha');
4var istanbul = require('gulp-istanbul');
5var printExample = require('./lib/print-example');
6var _ = require('lodash');
7
8gulp.task('test',mochaTask);
9gulp.task('coverage',coverage());
10gulp.task('coverage-api',coverage({grep:'@api'}));
11
12gulp.task('watch-test',function(){
13 gulp.watch(['test/**','src/**','examples/**'],['mocha']);
14 mochaTask();
15});
16
17gulp.task('example',function(){
18 printExample.logExample(require('./examples/basic-usage-examples'));
19 printExample.logExample(require('./examples/col-and-row-span-examples'));
20});
21
22/**
23 * Do NOT run this in the same commit when you are adding images.
24 * Commit the images, then run this.
25 */
26gulp.task('example-md',['example-md-basic','example-md-advanced']);
27gulp.task('example-md-basic',function(cb){
28 printExample.mdExample(require('./examples/basic-usage-examples'),'basic-usage.md',cb);
29});
30gulp.task('example-md-advanced',function(cb){
31 printExample.mdExample(require('./examples/col-and-row-span-examples'),'advanced-usage.md',cb);
32});
33
34function coverage(opts){
35 opts = opts || {};
36
37 function coverageTask(cb){
38 gulp.src(['src/*.js'])
39 .pipe(istanbul()) // Covering files
40 .pipe(istanbul.hookRequire()) // Force `require` to return covered files
41 .on('error', logMochaError)
42 .on('finish', function () {
43 gulp.src(['test/*.js'])
44 .pipe(mocha(opts))
45 .on('error',function(err){
46 logMochaError(err);
47 if(cb) cb(err);
48 })
49 .pipe(istanbul.writeReports()) // Creating the reports after tests run
50 .on('end', function(){
51 if(cb) cb();
52 });
53 });
54 }
55
56 return coverageTask;
57}
58
59function mochaTask(){
60 return gulp.src(['test/*.js'],{read:false})
61 .pipe(mocha({
62 growl:true
63 }))
64 .on('error',logMochaError);
65}
66
67function logMochaError(err){
68 if(err && err.message){
69 gutil.log(err.message);
70 } else {
71 gutil.log.apply(gutil,arguments);
72 }
73}
\No newline at end of file