added 'maybe_start_server' grunt task that will ping to see if a kibana dev server is running, and start one if not. Allows us to run the unit tests via npm test
when grunt dev
is already running.
This commit is contained in:
parent
67dc27511a
commit
e2b8625dbf
|
@ -41,6 +41,13 @@ module.exports = function (grunt) {
|
|||
// standard static middleware reading from the root
|
||||
stack.push(connect.static(root));
|
||||
|
||||
stack.push(function (req, res, next) {
|
||||
if (req.method !== 'HEAD' || req.url !== '/') return next();
|
||||
res.statusCode === 200;
|
||||
res.setHeader('Pong', 'Kibana 4 Dev Server');
|
||||
res.end();
|
||||
});
|
||||
|
||||
// redirect requests for '/' to '/src/'
|
||||
stack.push(function (req, res, next) {
|
||||
if (req.url !== '/') return next();
|
||||
|
|
|
@ -21,7 +21,7 @@ module.exports = function (grunt) {
|
|||
},
|
||||
clientside_jade: {
|
||||
files: [
|
||||
'<%= testUtilsDir %>/istanbul_reporter/report.clientside-jade'
|
||||
'<%= testUtilsDir %>/istanbul_reporter/report.clientside.jade'
|
||||
],
|
||||
tasks: ['jade:clientside']
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ module.exports = function (grunt) {
|
|||
grunt.registerTask('dev', [
|
||||
'less',
|
||||
'jade',
|
||||
'connect:dev',
|
||||
'maybe_start_server',
|
||||
'watch'
|
||||
]);
|
||||
};
|
39
tasks/maybe_connect_dev.js
Normal file
39
tasks/maybe_connect_dev.js
Normal file
|
@ -0,0 +1,39 @@
|
|||
module.exports = function (grunt) {
|
||||
grunt.registerTask('maybe_start_server', function () {
|
||||
var http = require('http');
|
||||
|
||||
var req = http.request({
|
||||
method: 'HEAD',
|
||||
path: '/',
|
||||
host: 'localhost',
|
||||
port: 8000
|
||||
});
|
||||
|
||||
function onResponse(res) {
|
||||
if (res.headers.pong === 'Kibana 4 Dev Server') {
|
||||
grunt.log.write('server already started');
|
||||
} else {
|
||||
grunt.log.error('another server is already running at localhost:8000!');
|
||||
}
|
||||
done(res);
|
||||
}
|
||||
|
||||
function onError() {
|
||||
grunt.task.run(['connect:dev']);
|
||||
done();
|
||||
}
|
||||
|
||||
var done = (function (cb) {
|
||||
return function (res) {
|
||||
req.removeListener('error', onError);
|
||||
req.removeListener('response', onResponse);
|
||||
if (res) res.socket.destroy();
|
||||
cb();
|
||||
};
|
||||
})(this.async());
|
||||
|
||||
req.on('error', onError);
|
||||
req.on('response', onResponse);
|
||||
req.end();
|
||||
});
|
||||
};
|
|
@ -2,19 +2,19 @@ module.exports = function (grunt) {
|
|||
/* jshint scripturl:true */
|
||||
grunt.registerTask('test', [
|
||||
'jshint',
|
||||
'connect:dev',
|
||||
'maybe_start_server',
|
||||
'jade',
|
||||
'mocha:unit'
|
||||
]);
|
||||
|
||||
grunt.registerTask('coverage', [
|
||||
'blanket',
|
||||
'connect:dev',
|
||||
'maybe_start_server',
|
||||
'mocha:coverage'
|
||||
]);
|
||||
|
||||
grunt.registerTask('test:watch', [
|
||||
'connect:dev',
|
||||
'maybe_start_server',
|
||||
'watch:test'
|
||||
]);
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue