11/* eslint-disable require-jsdoc */
22
3- var gulp = require ( "gulp" ) ;
4- var eslint = require ( "gulp-eslint" ) ;
5- var jest = require ( "gulp- jest" ) . default ;
6- var rename = require ( "gulp-rename" ) ;
7- var rollup = require ( "rollup" ) ;
8- var sourcemaps = require ( "gulp-sourcemaps" ) ;
9- var uglify = require ( "gulp-uglify" ) ;
10-
11- var jestBaseConfig = require ( "./jest.config" ) ;
12- var pkg = require ( "./package.json" ) ;
13-
14- var intro = [
3+ const gulp = require ( "gulp" ) ;
4+ const eslint = require ( "gulp-eslint" ) ;
5+ const jest = require ( "jest-cli" ) ;
6+ const rename = require ( "gulp-rename" ) ;
7+ const rollup = require ( "rollup" ) ;
8+ const sourcemaps = require ( "gulp-sourcemaps" ) ;
9+ const uglify = require ( "gulp-uglify" ) ;
10+
11+ const jestBaseConfig = require ( "./jest.config" ) ;
12+ const pkg = require ( "./package.json" ) ;
13+
14+ const intro = [
1515 "/**" ,
1616 "* @overview " + pkg . name + " - " + pkg . description ,
1717 "* @author " + pkg . author . name + " <" + pkg . author . email + ">" ,
@@ -32,66 +32,64 @@ gulp.task("set-test-env", cb => {
3232
3333/* build */
3434
35- gulp . task ( "build" , function ( ) {
36- return rollup . rollup ( { input : "src/index.js" } ) . then ( function ( bundle ) {
37- return bundle . write ( {
38- banner : intro ,
39- exports : "named" ,
40- file : "dist/lamb.js" ,
41- format : "umd" ,
42- freeze : false ,
43- name : "lamb" ,
44- sourcemap : false ,
45- strict : true
46- } ) ;
47- } ) ;
48- } ) ;
49-
50- gulp . task ( "minify" , gulp . series (
51- "build" ,
52- function ( ) {
53- return gulp . src ( "dist/lamb.js" )
54- . pipe ( sourcemaps . init ( ) )
55- . pipe ( uglify ( { output : { comments : "some" } } ) )
56- . pipe ( rename ( { extname : ".min.js" } ) )
57- . pipe ( sourcemaps . write ( "." ) )
58- . pipe ( gulp . dest ( "dist" ) ) ;
59- }
35+ gulp . task ( "build" , ( ) => rollup
36+ . rollup ( { input : "src/index.js" } )
37+ . then ( bundle => bundle . write ( {
38+ banner : intro ,
39+ exports : "named" ,
40+ file : "dist/lamb.js" ,
41+ format : "umd" ,
42+ freeze : false ,
43+ name : "lamb" ,
44+ sourcemap : false ,
45+ strict : true
46+ } ) )
47+ ) ;
48+
49+ gulp . task ( "minify" , gulp . series ( "build" , ( ) => gulp . src ( "dist/lamb.js" )
50+ . pipe ( sourcemaps . init ( ) )
51+ . pipe ( uglify ( { output : { comments : "some" } } ) )
52+ . pipe ( rename ( { extname : ".min.js" } ) )
53+ . pipe ( sourcemaps . write ( "." ) )
54+ . pipe ( gulp . dest ( "dist" ) )
6055) ) ;
6156
6257/* lint */
6358
64- function lintWith ( settings ) {
65- return function ( ) {
66- return gulp . src ( settings . inputs )
67- . pipe ( eslint ( settings . configPath ) )
68- . pipe ( eslint . format ( ) )
69- . pipe ( eslint . failAfterError ( ) ) ;
70- } ;
71- }
59+ const lintWith = settings => ( ) => gulp . src ( settings . inputs )
60+ . pipe ( eslint ( settings . configPath ) )
61+ . pipe ( eslint . format ( ) )
62+ . pipe ( eslint . failAfterError ( ) ) ;
7263
7364gulp . task ( "lint:code" , lintWith ( {
7465 configPath : ".eslintrc.json" ,
75- inputs : [ "./*.js" , "./ src/**/*.js", "!./src/**/__{tests,mocks}__/**" ]
66+ inputs : [ "./src/**/*.js" , "!./src/**/__{tests,mocks}__/**" ]
7667} ) ) ;
7768
7869gulp . task ( "lint:tests" , lintWith ( {
7970 configPath : ".eslintrc.test.json" ,
80- inputs : "./src/**/__{tests,mocks}__/**/*.js"
71+ inputs : [ "./*.js" , "./ src/**/__{tests,mocks}__/**/*.js"]
8172} ) ) ;
8273
8374gulp . task ( "lint" , gulp . series ( "lint:code" , "lint:tests" ) ) ;
8475
8576/* test */
8677
87- function testWith ( extraSettings ) {
88- return gulp . series (
89- "set-test-env" ,
90- function ( ) {
91- return gulp . src ( "./src" ) . pipe ( jest ( Object . assign ( { } , jestBaseConfig , extraSettings ) ) ) ;
78+ const testWith = extraSettings => gulp . series (
79+ "set-test-env" ,
80+ ( ) => jest . runCLI (
81+ Object . assign ( { } , jestBaseConfig , extraSettings ) ,
82+ [ jestBaseConfig . rootDir ]
83+ ) . then ( ( { results } ) => { // eslint-disable-line consistent-return
84+ if ( ! results . success ) {
85+ const message = results . numFailedTests || results . numFailedTestSuites
86+ ? "Tests failed"
87+ : "Coverage threshold not met" ;
88+
89+ return Promise . reject ( new Error ( message ) ) ;
9290 }
93- ) ;
94- }
91+ } )
92+ ) ;
9593
9694gulp . task ( "test" , testWith ( { } ) ) ;
9795
0 commit comments