mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
213 lines
7.5 KiB
JavaScript
213 lines
7.5 KiB
JavaScript
/*
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
* or more contributor license agreements. Licensed under the Elastic License;
|
|
* you may not use this file except in compliance with the Elastic License.
|
|
*/
|
|
|
|
/* eslint-disable kibana-custom/no-default-export */
|
|
|
|
import { resolve } from 'path';
|
|
import { format as formatUrl } from 'url';
|
|
|
|
import {
|
|
SecurityPageProvider,
|
|
ReportingPageProvider,
|
|
MonitoringPageProvider,
|
|
LogstashPageProvider,
|
|
GraphPageProvider,
|
|
GrokDebuggerPageProvider,
|
|
WatcherPageProvider,
|
|
} from './page_objects';
|
|
|
|
import {
|
|
MonitoringNoDataProvider,
|
|
MonitoringClusterListProvider,
|
|
MonitoringClusterOverviewProvider,
|
|
MonitoringClusterAlertsProvider,
|
|
MonitoringElasticsearchSummaryStatusProvider,
|
|
MonitoringElasticsearchOverviewProvider,
|
|
MonitoringElasticsearchNodesProvider,
|
|
MonitoringElasticsearchNodeDetailProvider,
|
|
MonitoringElasticsearchIndicesProvider,
|
|
MonitoringElasticsearchIndexDetailProvider,
|
|
MonitoringElasticsearchShardsProvider,
|
|
MonitoringBeatsOverviewProvider,
|
|
MonitoringBeatsListingProvider,
|
|
MonitoringBeatDetailProvider,
|
|
MonitoringBeatsSummaryStatusProvider,
|
|
MonitoringLogstashPipelinesProvider,
|
|
MonitoringLogstashSummaryStatusProvider,
|
|
MonitoringKibanaOverviewProvider,
|
|
MonitoringKibanaInstancesProvider,
|
|
MonitoringKibanaInstanceProvider,
|
|
MonitoringKibanaSummaryStatusProvider,
|
|
PipelineListProvider,
|
|
PipelineEditorProvider,
|
|
RandomProvider,
|
|
AceEditorProvider,
|
|
GrokDebuggerProvider,
|
|
|
|
} from './services';
|
|
|
|
// the default export of config files must be a config provider
|
|
// that returns an object with the projects config values
|
|
export default async function ({ readConfigFile }) {
|
|
|
|
const kibanaCommonConfig = await readConfigFile(require.resolve('../../../test/common/config.js'));
|
|
const kibanaFunctionalConfig = await readConfigFile(require.resolve('../../../test/functional/config.js'));
|
|
const kibanaAPITestsConfig = await readConfigFile(require.resolve('../../../test/api_integration/config.js'));
|
|
|
|
const servers = {
|
|
elasticsearch: {
|
|
protocol: process.env.TEST_ES_PROTOCOL || 'http',
|
|
hostname: process.env.TEST_ES_HOSTNAME || 'localhost',
|
|
port: parseInt(process.env.TEST_ES_PORT, 10) || 9240,
|
|
auth: 'elastic:changeme',
|
|
username: 'elastic',
|
|
password: 'changeme',
|
|
},
|
|
kibana: {
|
|
protocol: process.env.TEST_KIBANA_PROTOCOL || 'http',
|
|
hostname: process.env.TEST_KIBANA_HOSTNAME || 'localhost',
|
|
port: parseInt(process.env.TEST_KIBANA_PORT, 10) || 5640,
|
|
auth: 'elastic:changeme',
|
|
username: 'elastic',
|
|
password: 'changeme',
|
|
},
|
|
};
|
|
|
|
const env = {
|
|
kibana: {
|
|
server: {
|
|
uuid: '5b2de169-2785-441b-ae8c-186a1936b17d', // Kibana UUID for "primary" cluster in monitoring data
|
|
}
|
|
}
|
|
};
|
|
|
|
return {
|
|
// list paths to the files that contain your plugins tests
|
|
testFiles: [
|
|
resolve(__dirname, './apps/graph'),
|
|
resolve(__dirname, './apps/monitoring'),
|
|
resolve(__dirname, './apps/watcher'),
|
|
resolve(__dirname, './apps/dashboard_mode'),
|
|
resolve(__dirname, './apps/security'),
|
|
resolve(__dirname, './apps/reporting'),
|
|
resolve(__dirname, './apps/logstash'),
|
|
resolve(__dirname, './apps/grok_debugger'),
|
|
],
|
|
|
|
// define the name and providers for services that should be
|
|
// available to your tests. If you don't specify anything here
|
|
// only the built-in services will be avaliable
|
|
services: {
|
|
...kibanaFunctionalConfig.get('services'),
|
|
esSupertest: kibanaAPITestsConfig.get('services.esSupertest'),
|
|
monitoringNoData: MonitoringNoDataProvider,
|
|
monitoringClusterList: MonitoringClusterListProvider,
|
|
monitoringClusterOverview: MonitoringClusterOverviewProvider,
|
|
monitoringClusterAlerts: MonitoringClusterAlertsProvider,
|
|
monitoringElasticsearchSummaryStatus: MonitoringElasticsearchSummaryStatusProvider,
|
|
monitoringElasticsearchOverview: MonitoringElasticsearchOverviewProvider,
|
|
monitoringElasticsearchNodes: MonitoringElasticsearchNodesProvider,
|
|
monitoringElasticsearchNodeDetail: MonitoringElasticsearchNodeDetailProvider,
|
|
monitoringElasticsearchIndices: MonitoringElasticsearchIndicesProvider,
|
|
monitoringElasticsearchIndexDetail: MonitoringElasticsearchIndexDetailProvider,
|
|
monitoringElasticsearchShards: MonitoringElasticsearchShardsProvider,
|
|
monitoringBeatsOverview: MonitoringBeatsOverviewProvider,
|
|
monitoringBeatsListing: MonitoringBeatsListingProvider,
|
|
monitoringBeatDetail: MonitoringBeatDetailProvider,
|
|
monitoringBeatsSummaryStatus: MonitoringBeatsSummaryStatusProvider,
|
|
monitoringLogstashPipelines: MonitoringLogstashPipelinesProvider,
|
|
monitoringLogstashSummaryStatus: MonitoringLogstashSummaryStatusProvider,
|
|
monitoringKibanaOverview: MonitoringKibanaOverviewProvider,
|
|
monitoringKibanaInstances: MonitoringKibanaInstancesProvider,
|
|
monitoringKibanaInstance: MonitoringKibanaInstanceProvider,
|
|
monitoringKibanaSummaryStatus: MonitoringKibanaSummaryStatusProvider,
|
|
pipelineList: PipelineListProvider,
|
|
pipelineEditor: PipelineEditorProvider,
|
|
random: RandomProvider,
|
|
aceEditor: AceEditorProvider,
|
|
grokDebugger: GrokDebuggerProvider,
|
|
},
|
|
|
|
// just like services, PageObjects are defined as a map of
|
|
// names to Providers. Merge in Kibana's or pick specific ones
|
|
pageObjects: {
|
|
...kibanaFunctionalConfig.get('pageObjects'),
|
|
security: SecurityPageProvider,
|
|
reporting: ReportingPageProvider,
|
|
monitoring: MonitoringPageProvider,
|
|
logstash: LogstashPageProvider,
|
|
graph: GraphPageProvider,
|
|
grokDebugger: GrokDebuggerPageProvider,
|
|
watcher: WatcherPageProvider,
|
|
},
|
|
|
|
servers,
|
|
|
|
env,
|
|
|
|
esTestCluster: {
|
|
license: 'trial',
|
|
from: 'snapshot',
|
|
serverArgs: [
|
|
'xpack.license.self_generated.type=trial',
|
|
'xpack.security.enabled=true',
|
|
],
|
|
},
|
|
|
|
kbnTestServer: {
|
|
...kibanaCommonConfig.get('kbnTestServer'),
|
|
serverArgs: [
|
|
...kibanaCommonConfig.get('kbnTestServer.serverArgs'),
|
|
`--server.uuid=${env.kibana.server.uuid}`,
|
|
`--server.port=${servers.kibana.port}`,
|
|
`--elasticsearch.url=${formatUrl(servers.elasticsearch)}`,
|
|
'--xpack.monitoring.kibana.collection.enabled=false',
|
|
'--xpack.xpack_main.telemetry.enabled=false',
|
|
'--xpack.security.encryptionKey="wuGNaIhoMpk5sO4UBxgr3NyW1sFcLgIf"', // server restarts should not invalidate active sessions
|
|
],
|
|
},
|
|
|
|
// the apps section defines the urls that
|
|
// `PageObjects.common.navigateTo(appKey)` will use.
|
|
// Merge urls for your plugin with the urls defined in
|
|
// Kibana's config in order to use this helper
|
|
apps: {
|
|
...kibanaFunctionalConfig.get('apps'),
|
|
login: {
|
|
pathname: '/login'
|
|
},
|
|
monitoring: {
|
|
pathname: '/app/monitoring'
|
|
},
|
|
logstashPipelines: {
|
|
pathname: '/app/kibana',
|
|
hash: '/management/logstash/pipelines'
|
|
},
|
|
graph: {
|
|
pathname: '/app/graph',
|
|
},
|
|
grokDebugger: {
|
|
pathname: '/app/kibana',
|
|
hash: '/dev_tools/grokdebugger'
|
|
},
|
|
},
|
|
|
|
// choose where esArchiver should load archives from
|
|
esArchiver: {
|
|
directory: resolve(__dirname, 'es_archives')
|
|
},
|
|
|
|
// choose where screenshots should be saved
|
|
screenshots: {
|
|
directory: resolve(__dirname, 'screenshots')
|
|
},
|
|
|
|
junit: {
|
|
reportName: 'X-Pack Functional Tests',
|
|
rootDirectory: resolve(__dirname, '../../'),
|
|
}
|
|
};
|
|
}
|