mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
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
5 changed files with 51 additions and 5 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue