Skip to content

Commit

Permalink
refact(12976): move node_version code directly into node_version_vali…
Browse files Browse the repository at this point in the history
…dator inside setup_node_env folder.
  • Loading branch information
mistic committed May 24, 2018
1 parent 0bf6d16 commit 9fee0e0
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 186 deletions.
6 changes: 1 addition & 5 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -141,11 +141,7 @@ module.exports = {
* Files that run BEFORE node version check
*/
{
files: [
'scripts/**/*',
'src/setup_node_env/**/*',
'src/utils/node_version.js',
],
files: ['scripts/**/*', 'src/setup_node_env/**/*'],
rules: {
'import/no-commonjs': 'off',
'prefer-object-spread/prefer-object-spread': 'off',
Expand Down
1 change: 1 addition & 0 deletions src/dev/jest/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export default {
'<rootDir>/src/cli_plugin',
'<rootDir>/src/dev',
'<rootDir>/src/utils',
'<rootDir>/src/setup_node_env',
'<rootDir>/packages',
],
collectCoverageFrom: [
Expand Down
21 changes: 13 additions & 8 deletions src/setup_node_env/node_version_validator.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
var pkg = require('../../package.json');

// Note: This is written in ES5 so we can run this before anything else
// and gives support for older NodeJS versions
var NodeVersion = require('../utils/node_version');
var currentVersion = (process && process.version) || null;
var rawRequiredVersion = (pkg && pkg.engines && pkg.engines.node) || null;
var requiredVersion = rawRequiredVersion ? 'v' + rawRequiredVersion : rawRequiredVersion;
var isVersionValid = !!currentVersion && !!requiredVersion && (currentVersion === requiredVersion);

// Validates current the NodeJS version compatibility when Kibana starts.
NodeVersion.runValidator(function () {
// Action to apply when validation fails: error report + exit.
console.error(
`Kibana does not support the current Node.js version ${NodeVersion.getCurrentVersion()}. `
+ `Please use Node.js ${NodeVersion.getRequiredVersion()}.`
);
if (!isVersionValid) {
var errorMessage = 'Kibana does not support the current Node.js version ' + currentVersion
+ '. Please use Node.js ' + requiredVersion + '.';

// Actions to apply when validation fails: error report + exit.
console.error(errorMessage);
process.exit(1);
});
}
34 changes: 34 additions & 0 deletions src/setup_node_env/node_version_validator.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
var exec = require('child_process').exec;
var pkg = require('../../package.json');

var REQUIRED_NODE_JS_VERSION = 'v' + pkg.engines.node;
var INVALID_NODE_JS_VERSION = 'v0.10.0';

describe('NodeVersionValidator', function () {

it('should run the script WITH error', function (done) {
var processVersionOverwrite = 'Object.defineProperty(process, \'version\', { value: \''
+ INVALID_NODE_JS_VERSION + '\', writable: true });';
var command = 'node -e "' + processVersionOverwrite + 'require(\'./node_version_validator.js\')"';

exec(command, { cwd: __dirname }, function (error, stdout, stderr) {
expect(error.code).toBe(1);
expect(stderr).toBeDefined();
expect(stderr).not.toHaveLength(0);
done();
});
});

it('should run the script WITHOUT error', function (done) {
var processVersionOverwrite = 'Object.defineProperty(process, \'version\', { value: \''
+ REQUIRED_NODE_JS_VERSION + '\', writable: true });';
var command = 'node -e "' + processVersionOverwrite + 'require(\'./node_version_validator.js\')"';

exec(command, { cwd: __dirname }, function (error, stdout, stderr) {
expect(error).toBeNull();
expect(stderr).toBeDefined();
expect(stderr).toHaveLength(0);
done();
});
});
});
1 change: 0 additions & 1 deletion src/utils/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ export { unset } from './unset';
export { encodeQueryComponent } from './encode_query_component';
export { modifyUrl } from './modify_url';
export { getFlattenedObject } from './get_flattened_object';
export { NodeVersion } from './node_version';

export {
getKbnTypeNames,
Expand Down
82 changes: 0 additions & 82 deletions src/utils/node_version.js

This file was deleted.

90 changes: 0 additions & 90 deletions src/utils/node_version.test.js

This file was deleted.

0 comments on commit 9fee0e0

Please sign in to comment.