UNPKG

1.72 kBJavaScriptView Raw
1'use strict';
2
3process.env.BLUEBIRD_DEBUG = 1;
4
5const gulp = require('gulp');
6const $ = require('gulp-load-plugins')();
7const browserify = require('browserify');
8const del = require('del');
9const sourceStream = require('vinyl-source-stream');
10const buffer = require('vinyl-buffer');
11const KarmaServer = require('karma').Server;
12
13const jsFiles = [
14 '*.js',
15 'lib/**/*.js',
16 'test/**/*.js'
17];
18
19gulp.task('default', ['clean'], () => {
20 return gulp.start(['build', 'test:browser']);
21});
22
23gulp.task('lint', () => {
24 return gulp.src(jsFiles)
25 .pipe($.eslint())
26 .pipe($.eslint.format())
27 .pipe($.eslint.failAfterError())
28 .pipe($.jscs())
29 .pipe($.jscs.reporter())
30 .pipe($.jscs.reporter('fail'));
31});
32
33gulp.task('test', ['test:node']);
34
35gulp.task('test:node', () => {
36 return gulp.src('test/node/**/*Spec.js', {read: false})
37 .pipe($.mocha({
38 reporter: 'spec'
39 }));
40});
41
42gulp.task('test:browser', ['build'], (done) => {
43 const karmaConfig = {
44 browsers: ['Chrome', 'Firefox'],
45 frameworks: ['mocha'],
46 reporters: ['progress'],
47 autoWatch: false,
48 singleRun: true,
49 files: [
50 'dist/hamjest.js',
51 'test/browser/**/*.js'
52 ]
53 };
54
55 const server = new KarmaServer(karmaConfig, done);
56 server.start();
57});
58
59gulp.task('build', ['lint', 'test'], () => {
60 const b = browserify({
61 entries: './index.js',
62 standalone: 'hamjest',
63 debug: true
64 }).transform('babelify', {presets: ['es2015']});
65
66 return b.bundle()
67 .pipe(sourceStream('hamjest.js'))
68 .pipe(buffer())
69 .pipe(gulp.dest('./dist'))
70 .pipe($.uglify())
71 .pipe($.rename({
72 suffix: '.min'
73 }))
74 .pipe(gulp.dest('./dist'));
75});
76
77gulp.task('clean', () => {
78 return del('./dist');
79});
80
81gulp.task('dev', () => {
82 gulp.watch(jsFiles, ['lint', 'test']);
83});