From dbb764299c2de8fe087c9c450113ad39c5b947bd Mon Sep 17 00:00:00 2001 From: Alexander Wunschik Date: Tue, 27 Jun 2017 16:11:09 +0200 Subject: [PATCH] some code cleanup --- gulpfile.js | 50 +++++++++++++----- package.json | 6 +-- .../timline/BasicExample/plain/PhantomJS.png | Bin 10924 -> 11091 bytes .../tests/timeline/BasicExample/index.html | 23 +------- 4 files changed, 40 insertions(+), 39 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 000de9cc..dc1b2700 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -118,26 +118,37 @@ function handleCompilerCallback(err, stats) { } } - -function startDevWebserver(cb) { - return gulp.src('./').pipe(webserver({ +function startDevWebserver(options, cb) { + var opt = options || {}; + return gulp.src('./').pipe(webserver(Object.assign(opt, { path: '/', port: geminiConfig.webserver.port - })); + }))); } -gulp.task('gemini-webserver', function(cb) { - startDevWebserver(cb); +// Starts a static webserver that serve files from the root-dir of the project +// during development. This is also used for gemini-testing. +gulp.task('webserver', function(cb) { + startDevWebserver({ + livereload: true, + directoryListing: true, + open: true + }, cb); }); function runGemini(mode, cb) { + var completed = false; + var hasError = false; + + // start development webserver to server the test-files var server = startDevWebserver(); + + // start phantomjs in webdriver mode var phantomjsProcess = spawn('phantomjs', [ '--webdriver=' + geminiConfig.phantomjs.port ]); - var completed = false; - var hasError = false; + // read output from the phantomjs process phantomjsProcess.stdout.on('data', function(data) { if (data.toString().indexOf('running on port') >= 0) { gutil.log("Started phantomjs webdriver"); @@ -165,35 +176,46 @@ function runGemini(mode, cb) { geminiProcess.on('close', function(code) { completed = true; phantomjsProcess.kill(); - server.emit('kill'); }); } }); + + // Log all error output from the phantomjs process to the console phantomjsProcess.stderr.on('data', function(data) { gutil.log(gutil.colors.red(data)); }); + + // Cleanup after phantomjs closes phantomjsProcess.on('close', function(code) { + gutil.log("Phantomjs webdriver stopped"); + if (code && !completed) { + // phantomjs closed with an error + server.emit('kill'); return cb(new Error('✘ phantomjs failed with code: ' + code + '\n' + 'Check that port ' + geminiConfig.phantomjs.port + ' is free and that there are no other ' + 'instances of phantomjs running. (`killall phantomjs`)')); } - gutil.log("Stoped phantomjs webdriver"); if (hasError) { - gutil.log("Opening report in webbrowser"); - opn(geminiConfig.gemini.reports); + // The tests returned with an error. Show the report. Keep dev-webserver running for debugging. + gutil.log(gutil.colors.red("Opening error-report in webbrowser")); + opn(geminiConfig.gemini.reports + 'index.html'); + } else { + // The tests returned no error. Kill the dev-webserver and exit + server.emit('kill'); + cb(); } - - cb(); }); } +// Update the screenshots. Do this everytime you introduced a new test or introduced a major change. gulp.task('gemini-update', function(cb) { runGemini('update', cb); }); +// Test the current (dist) version against the existing screenshots. gulp.task('gemini-test', function(cb) { runGemini('test', cb); }); diff --git a/package.json b/package.json index a0c1ec47..4073c096 100644 --- a/package.json +++ b/package.json @@ -23,10 +23,10 @@ ], "main": "./dist/vis.js", "scripts": { - "test": "mocha --compilers js:babel-core/register", - "gemini": "gemini", - "gemini-tests": "gulp gemini-tests", "gulp": "gulp", + "test": "mocha --compilers js:babel-core/register", + "gemini-update": "gulp gemini-update", + "gemini-test": "gulp gemini-test", "build": "gulp", "lint": "eslint lib", "watch": "gulp watch", diff --git a/test/gemini/screens/timline/BasicExample/plain/PhantomJS.png b/test/gemini/screens/timline/BasicExample/plain/PhantomJS.png index ceb25841b8d733486c9cb6c7b318d6d51945ba23..c38956a099bb20b131ec16e8910961570d792939 100644 GIT binary patch literal 11091 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 diff --git a/test/gemini/tests/timeline/BasicExample/index.html b/test/gemini/tests/timeline/BasicExample/index.html index 2211a704..ddc88f4e 100644 --- a/test/gemini/tests/timeline/BasicExample/index.html +++ b/test/gemini/tests/timeline/BasicExample/index.html @@ -1,31 +1,14 @@ - Timeline | Basic demo - - - + Timeline | BasicExample - - -

- A basic timeline. You can move and zoom the timeline, and select items. -

-
-