@@ -38,13 +38,13 @@ var path = require('path');
3838var minimist = require ( 'minimist' ) ;
3939var cucumber = require ( 'gulp-cucumber' ) ;
4040var install = require ( "gulp-install" ) ;
41- var os = require ( 'os' ) ;
4241var file = require ( 'gulp-file' ) ;
4342var semver = require ( 'semver' ) ;
4443var sharedNeo4j = require ( './test/internal/shared-neo4j' ) . default ;
4544var ts = require ( 'gulp-typescript' ) ;
4645var JasmineConsoleReporter = require ( 'jasmine-console-reporter' ) ;
4746var karmaServer = require ( 'karma' ) . Server ;
47+ var transformTools = require ( 'browserify-transform-tools' ) ;
4848
4949/**
5050 * Useful to investigate resource leaks in tests. Enable to see active sockets and file handles after the 'test' task.
@@ -66,9 +66,9 @@ gulp.task('build-browser', function () {
6666 cache : { } ,
6767 standalone : 'neo4j' ,
6868 packageCache : { }
69- } ) . transform ( babelify . configure ( {
70- presets : [ 'env' ] , ignore : / e x t e r n a l /
71- } ) ) . bundle ( ) ;
69+ } ) . transform ( babelifyTransform ( ) )
70+ . transform ( browserifyTransformNodeToBrowserRequire ( ) )
71+ . bundle ( ) ;
7272
7373 // Un-minified browser package
7474 appBundler
@@ -85,9 +85,9 @@ gulp.task('build-browser', function () {
8585} ) ;
8686
8787gulp . task ( 'build-browser-test' , function ( ) {
88- var browserOutput = 'lib /browser/' ;
88+ var browserOutput = 'build /browser/' ;
8989 var testFiles = [ ] ;
90- return gulp . src ( './test/**/*.test.js' )
90+ return gulp . src ( [ './test/**/*.test.js' , '!./test/**/node/*.js' ] )
9191 . pipe ( through . obj ( function ( file , enc , cb ) {
9292 if ( file . path . indexOf ( 'examples.test.js' ) < 0 ) {
9393 testFiles . push ( file . path ) ;
@@ -99,19 +99,18 @@ gulp.task('build-browser-test', function(){
9999 cb ( ) ;
100100 } ) )
101101 . pipe ( through . obj ( function ( testFiles , enc , cb ) {
102- browserify ( {
102+ browserify ( {
103103 entries : testFiles ,
104104 cache : { } ,
105105 debug : true
106- } ) . transform ( babelify . configure ( {
107- presets : [ 'env' ] , plugins : [ 'transform-runtime' ] , ignore : / e x t e r n a l /
108- } ) )
109- . bundle ( function ( err , res ) {
110- cb ( ) ;
111- } )
112- . on ( 'error' , gutil . log )
113- . pipe ( source ( 'neo4j-web.test.js' ) )
114- . pipe ( gulp . dest ( browserOutput ) )
106+ } ) . transform ( babelifyTransform ( ) )
107+ . transform ( browserifyTransformNodeToBrowserRequire ( ) )
108+ . bundle ( function ( ) {
109+ cb ( ) ;
110+ } )
111+ . on ( 'error' , gutil . log )
112+ . pipe ( source ( 'neo4j-web.test.js' ) )
113+ . pipe ( gulp . dest ( browserOutput ) ) ;
115114 } ,
116115 function ( cb ) {
117116 cb ( )
@@ -121,7 +120,7 @@ gulp.task('build-browser-test', function(){
121120
122121var buildNode = function ( options ) {
123122 return gulp . src ( options . src )
124- . pipe ( babel ( { presets : [ 'env' ] , plugins : [ 'transform-runtime' ] , ignore : [ 'src/external/**/*.js' ] } ) )
123+ . pipe ( babel ( babelConfig ( ) ) )
125124 . pipe ( gulp . dest ( options . dest ) )
126125} ;
127126
@@ -138,13 +137,14 @@ gulp.task('all', function(cb){
138137
139138// prepares directory for package.test.js
140139gulp . task ( 'install-driver-into-sandbox' , [ 'nodejs' ] , function ( ) {
141- var testDir = path . join ( os . tmpdir ( ) , 'sandbox' ) ;
140+ var testDir = path . join ( 'build' , 'sandbox' ) ;
142141 fs . emptyDirSync ( testDir ) ;
143142
144143 var packageJsonContent = JSON . stringify ( {
145- "dependencies" :{
146- "neo4j-driver" : __dirname
147- }
144+ 'private' : true ,
145+ 'dependencies' : {
146+ 'neo4j-driver' : __dirname
147+ }
148148 } ) ;
149149
150150 return file ( 'package.json' , packageJsonContent , { src :true } )
@@ -164,7 +164,7 @@ gulp.task('test', function (cb) {
164164} ) ;
165165
166166gulp . task ( 'test-nodejs' , [ 'install-driver-into-sandbox' ] , function ( ) {
167- return gulp . src ( ' test/**/*.test.js')
167+ return gulp . src ( [ './ test/**/*.test.js', '!./test/**/browser/*.js' ] )
168168 . pipe ( jasmine ( {
169169 includeStackTrace : true ,
170170 reporter : newJasmineConsoleReporter ( )
@@ -306,3 +306,31 @@ function newJasmineConsoleReporter() {
306306 activity : false
307307 } ) ;
308308}
309+
310+ function babelifyTransform ( ) {
311+ return babelify . configure ( babelConfig ( ) ) ;
312+ }
313+
314+ function babelConfig ( ) {
315+ return {
316+ presets : [ 'env' ] , plugins : [ 'transform-runtime' ]
317+ } ;
318+ }
319+
320+ function browserifyTransformNodeToBrowserRequire ( ) {
321+ var nodeRequire = '/node' ;
322+ var browserRequire = '/browser' ;
323+
324+ return transformTools . makeRequireTransform ( 'bodeToBrowserRequireTransform' ,
325+ { evaluateArguments : true } ,
326+ function ( args , opts , cb ) {
327+ var requireArg = args [ 0 ] ;
328+ var endsWithNodeRequire = requireArg . slice ( - nodeRequire . length ) === nodeRequire ;
329+ if ( endsWithNodeRequire ) {
330+ var newRequireArg = requireArg . replace ( nodeRequire , browserRequire ) ;
331+ return cb ( null , 'require(\'' + newRequireArg + '\')' ) ;
332+ } else {
333+ return cb ( ) ;
334+ }
335+ } ) ;
336+ }
0 commit comments