Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support 1 Kibana and 1 Elasticsearch URL as input params #9760

Merged
merged 14 commits into from
Apr 18, 2018
13 changes: 12 additions & 1 deletion docs/development/core/development-functional-tests.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,17 @@ There are three ways to run the tests depending on your goals:
+
["source","shell"]
----------
export TEST_KIBANA_URL=https://kibana:[email protected]:443

export TEST_ES_URL=https://elastic:[email protected]:9200
node scripts/functional_test_runner
----------


** Or you can override any or all of these individual parts of the URL and leave the others to the default values.
+
["source","shell"]
----------
export TEST_KIBANA_PROTOCOL=https
export TEST_KIBANA_HOSTNAME=my-kibana-instance.internal.net
export TEST_KIBANA_PORT=443
Expand Down Expand Up @@ -405,4 +416,4 @@ const log = getService(‘log’);

// log.debug only writes when using the `--debug` or `--verbose` flag.
log.debug(‘done clicking menu’);
-----------
-----------
27 changes: 23 additions & 4 deletions src/test_utils/es/es_test_config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { format as formatUrl } from 'url';
import url, { format as formatUrl } from 'url';
import pkg from '../../../package.json';
import { admin } from '../../../test/shield';

Expand All @@ -20,13 +20,32 @@ export const esTestConfig = new class EsTestConfig {
}

getUrlParts() {
// Allow setting one complete TEST_ES_URL for Es like https://elastic:changeme@myCloudInstance:9200
if (process.env.TEST_ES_URL) {
const testEsUrl = url.parse(process.env.TEST_ES_URL);
return {
// have to remove the ":" off protocol
protocol: testEsUrl.protocol.slice(0, -1),
hostname: testEsUrl.hostname,
port: parseInt(testEsUrl.port, 10),
username: testEsUrl.auth.split(':')[0],
password: testEsUrl.auth.split(':')[1],
auth: testEsUrl.auth
};
}

const username = process.env.TEST_KIBANA_USERNAME || admin.username;
const password = process.env.TEST_KIBANA_PASSWORD || admin.password;
return {
// Allow setting any individual component(s) of the URL,
// or use default values (username and password from shield.js)
protocol: process.env.TEST_ES_PROTOCOL || 'http',
hostname: process.env.TEST_ES_HOSTNAME || 'localhost',
port: parseInt(process.env.TEST_ES_PORT, 10) || 9220,
auth: admin.username + ':' + admin.password,
username: admin.username,
password: admin.password,
auth: `${username}:${password}`,
username: username,
password: password,
};

}
};
2 changes: 1 addition & 1 deletion test/functional/apps/console/_console.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export default function ({ getService, getPageObjects }) {
return PageObjects.common.navigateToApp('console');
});

it('should show the default *%^$# @ ! ~ request', function () {
it('should show the default request', function () {
// collapse the help pane because we only get the VISIBLE TEXT, not the part that is scrolled
return PageObjects.console.collapseHelp()
.then(function () {
Expand Down
36 changes: 28 additions & 8 deletions test/kibana_test_server_url_parts.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,30 @@
import { kibanaUser } from './shield';
import url from 'url';

export const kibanaTestServerUrlParts = {
protocol: process.env.TEST_KIBANA_PROTOCOL || 'http',
hostname: process.env.TEST_KIBANA_HOSTNAME || 'localhost',
port: parseInt(process.env.TEST_KIBANA_PORT, 10) || 5620,
auth: kibanaUser.username + ':' + kibanaUser.password,
username: kibanaUser.username,
password: kibanaUser.password,
};
function getUrlParts() {
// allow setting one complete TEST_KIBANA_URL for ES like https://elastic:[email protected]:9200
if (process.env.TEST_KIBANA_URL) {
const testKibanaUrl = url.parse(process.env.TEST_KIBANA_URL);
return {
protocol: testKibanaUrl.protocol.slice(0, -1),
hostname: testKibanaUrl.hostname,
port: parseInt(testKibanaUrl.port, 10),
auth: testKibanaUrl.auth,
username: testKibanaUrl.auth.split(':')[0],
password: testKibanaUrl.auth.split(':')[1]
};
}

const username = process.env.TEST_KIBANA_USERNAME || kibanaUser.username;
const password = process.env.TEST_KIBANA_PASSWORD || kibanaUser.password;
return {
protocol: process.env.TEST_KIBANA_PROTOCOL || 'http',
hostname: process.env.TEST_KIBANA_HOSTNAME || 'localhost',
port: parseInt(process.env.TEST_KIBANA_PORT, 10) || 5620,
auth: `${username}:${password}`,
username,
password,
};
}

export const kibanaTestServerUrlParts = getUrlParts();