mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 01:13:23 -04:00
While there are still hardcoded defaults, this change allows people to specify custom credentials via environment variables for each shield role in our tests. Fixes #5967
69 lines
1.8 KiB
JavaScript
69 lines
1.8 KiB
JavaScript
import { defaultsDeep, set } from 'lodash';
|
|
import requirefrom from 'requirefrom';
|
|
import { header as basicAuthHeader } from './base_auth';
|
|
import { kibanaUser, kibanaServer } from '../shield';
|
|
|
|
const src = requirefrom('src');
|
|
const KbnServer = src('server/KbnServer');
|
|
const fromRoot = src('utils/fromRoot');
|
|
|
|
const SERVER_DEFAULTS = {
|
|
server: {
|
|
autoListen: false,
|
|
xsrf: {
|
|
disableProtection: true
|
|
}
|
|
},
|
|
logging: {
|
|
quiet: true
|
|
},
|
|
plugins: {
|
|
scanDirs: [
|
|
fromRoot('src/plugins')
|
|
]
|
|
},
|
|
optimize: {
|
|
enabled: false
|
|
},
|
|
elasticsearch: {
|
|
url: 'http://localhost:9210',
|
|
username: kibanaServer.username,
|
|
password: kibanaServer.password
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Creates an instance of KbnServer with default configuration
|
|
* tailored for unit tests
|
|
*
|
|
* @param {object} params Any config overrides for this instance
|
|
*/
|
|
export function createServer(params = {}) {
|
|
params = defaultsDeep({}, params, SERVER_DEFAULTS);
|
|
return new KbnServer(params);
|
|
};
|
|
|
|
/**
|
|
* Creates request configuration with a basic auth header
|
|
*/
|
|
export function authOptions() {
|
|
const { username, password } = kibanaUser;
|
|
const authHeader = basicAuthHeader(username, password);
|
|
return set({}, 'headers.Authorization', authHeader);
|
|
};
|
|
|
|
/**
|
|
* Makes a request with test headers via hapi server inject()
|
|
*
|
|
* The given options are decorated with default testing options, so it's
|
|
* recommended to use this function instead of using inject() directly whenever
|
|
* possible throughout the tests.
|
|
*
|
|
* @param {KbnServer} kbnServer
|
|
* @param {object} options Any additional options or overrides for inject()
|
|
* @param {Function} fn The callback to pass as the second arg to inject()
|
|
*/
|
|
export function makeRequest(kbnServer, options, fn) {
|
|
options = defaultsDeep({}, authOptions(), options);
|
|
return kbnServer.server.inject(options, fn);
|
|
};
|