diff --git a/.buildkite/ftr_oblt_serverless_configs.yml b/.buildkite/ftr_oblt_serverless_configs.yml index 0886241810a75..eb7178478648a 100644 --- a/.buildkite/ftr_oblt_serverless_configs.yml +++ b/.buildkite/ftr_oblt_serverless_configs.yml @@ -21,6 +21,8 @@ disabled: - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group4.ts - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group5.ts - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group6.ts + - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group7.ts + - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group8.ts - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group9.ts - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group10.ts - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group11.ts diff --git a/.buildkite/ftr_search_serverless_configs.yml b/.buildkite/ftr_search_serverless_configs.yml index 8ab13de72a334..9020fdd78bf4d 100644 --- a/.buildkite/ftr_search_serverless_configs.yml +++ b/.buildkite/ftr_search_serverless_configs.yml @@ -15,6 +15,8 @@ disabled: - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group4.ts - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group5.ts - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group6.ts + - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group7.ts + - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group8.ts - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group9.ts - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group10.ts - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group11.ts diff --git a/.buildkite/ftr_security_serverless_configs.yml b/.buildkite/ftr_security_serverless_configs.yml index 942affc6c9b50..f65afe920f1af 100644 --- a/.buildkite/ftr_security_serverless_configs.yml +++ b/.buildkite/ftr_security_serverless_configs.yml @@ -35,6 +35,8 @@ disabled: - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group4.ts - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group5.ts - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group6.ts + - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group7.ts + - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group8.ts - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group9.ts - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group10.ts - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group11.ts diff --git a/x-pack/test_serverless/functional/test_suites/common/visualizations/group1/index.ts b/x-pack/test_serverless/functional/test_suites/common/visualizations/group1/index.ts index db58761270144..0b27d719b339c 100644 --- a/x-pack/test_serverless/functional/test_suites/common/visualizations/group1/index.ts +++ b/x-pack/test_serverless/functional/test_suites/common/visualizations/group1/index.ts @@ -17,7 +17,7 @@ export default ({ getService, loadTestFile, getPageObjects }: FtrProviderContext const config = getService('config'); let remoteEsArchiver; - describe('lens serverless - group 1', function () { + describe('lens serverless - group 1 - subgroup 1', function () { this.tags(['esGate']); const esArchive = 'x-pack/test/functional/es_archives/logstash_functional'; @@ -73,9 +73,7 @@ export default ({ getService, loadTestFile, getPageObjects }: FtrProviderContext await kibanaServer.savedObjects.cleanStandardList(); }); - loadTestFile(require.resolve('./smokescreen.ts')); - loadTestFile(require.resolve('./tsdb.ts')); - loadTestFile(require.resolve('./logsdb.ts')); - loadTestFile(require.resolve('./vega_chart.ts')); + loadTestFile(require.resolve('./smokescreen.ts')); // 14m 25s + loadTestFile(require.resolve('./vega_chart.ts')); // 3m }); }; diff --git a/x-pack/test_serverless/functional/test_suites/common/visualizations/group5/index.ts b/x-pack/test_serverless/functional/test_suites/common/visualizations/group5/index.ts new file mode 100644 index 0000000000000..4a6e7528e79a0 --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/common/visualizations/group5/index.ts @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { EsArchiver } from '@kbn/es-archiver'; +import { FtrProviderContext } from '../../../../ftr_provider_context'; + +export default ({ getService, loadTestFile, getPageObjects }: FtrProviderContext) => { + const browser = getService('browser'); + const log = getService('log'); + const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); + const PageObjects = getPageObjects(['timePicker', 'svlCommonPage']); + const config = getService('config'); + let remoteEsArchiver; + + describe('lens serverless - group 1 - subgroup 5', function () { + this.tags(['esGate']); + + const esArchive = 'x-pack/test/functional/es_archives/logstash_functional'; + const localIndexPatternString = 'logstash-*'; + const remoteIndexPatternString = 'ftr-remote:logstash-*'; + const localFixtures = { + lensBasic: 'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json', + lensDefault: 'x-pack/test/functional/fixtures/kbn_archiver/lens/default', + }; + + const remoteFixtures = { + lensBasic: 'x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/lens_basic.json', + lensDefault: 'x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/default', + }; + let esNode: EsArchiver; + let fixtureDirs: { + lensBasic: string; + lensDefault: string; + }; + let indexPatternString: string; + before(async () => { + log.debug('Starting lens before method'); + await browser.setWindowSize(1280, 1200); + await kibanaServer.savedObjects.cleanStandardList(); + try { + config.get('esTestCluster.ccs'); + remoteEsArchiver = getService('remoteEsArchiver' as 'esArchiver'); + esNode = remoteEsArchiver; + fixtureDirs = remoteFixtures; + indexPatternString = remoteIndexPatternString; + } catch (error) { + esNode = esArchiver; + fixtureDirs = localFixtures; + indexPatternString = localIndexPatternString; + } + + await esNode.load(esArchive); + await kibanaServer.uiSettings.update({ + defaultIndex: indexPatternString, + 'dateFormat:tz': 'UTC', + }); + await kibanaServer.importExport.load(fixtureDirs.lensBasic); + await kibanaServer.importExport.load(fixtureDirs.lensDefault); + // changing the timepicker default here saves us from having to set it in Discover (~8s) + await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings(); + }); + + after(async () => { + await esArchiver.unload(esArchive); + await PageObjects.timePicker.resetDefaultAbsoluteRangeViaUiSettings(); + await kibanaServer.importExport.unload(fixtureDirs.lensBasic); + await kibanaServer.importExport.unload(fixtureDirs.lensDefault); + await kibanaServer.savedObjects.cleanStandardList(); + }); + + loadTestFile(require.resolve('./tsdb.ts')); // 14m 25s + }); +}; diff --git a/x-pack/test_serverless/functional/test_suites/common/visualizations/group1/tsdb.ts b/x-pack/test_serverless/functional/test_suites/common/visualizations/group5/tsdb.ts similarity index 99% rename from x-pack/test_serverless/functional/test_suites/common/visualizations/group1/tsdb.ts rename to x-pack/test_serverless/functional/test_suites/common/visualizations/group5/tsdb.ts index ad0fb0d2c1372..c108de4044a37 100644 --- a/x-pack/test_serverless/functional/test_suites/common/visualizations/group1/tsdb.ts +++ b/x-pack/test_serverless/functional/test_suites/common/visualizations/group5/tsdb.ts @@ -17,7 +17,7 @@ import { getDocsGenerator, setupScenarioRunner, sumFirstNValues, -} from './tsdb_logsdb_helpers'; +} from '../tsdb_logsdb_helpers'; export default function ({ getService, getPageObjects }: FtrProviderContext) { const { common, lens, dashboard, svlCommonPage } = getPageObjects([ diff --git a/x-pack/test_serverless/functional/test_suites/common/visualizations/group6/index.ts b/x-pack/test_serverless/functional/test_suites/common/visualizations/group6/index.ts new file mode 100644 index 0000000000000..d320116aa24ce --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/common/visualizations/group6/index.ts @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { EsArchiver } from '@kbn/es-archiver'; +import { FtrProviderContext } from '../../../../ftr_provider_context'; + +export default ({ getService, loadTestFile, getPageObjects }: FtrProviderContext) => { + const browser = getService('browser'); + const log = getService('log'); + const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); + const PageObjects = getPageObjects(['timePicker', 'svlCommonPage']); + const config = getService('config'); + let remoteEsArchiver; + + describe('lens serverless - group 1 - subgroup 6', function () { + this.tags(['esGate']); + + const esArchive = 'x-pack/test/functional/es_archives/logstash_functional'; + const localIndexPatternString = 'logstash-*'; + const remoteIndexPatternString = 'ftr-remote:logstash-*'; + const localFixtures = { + lensBasic: 'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json', + lensDefault: 'x-pack/test/functional/fixtures/kbn_archiver/lens/default', + }; + + const remoteFixtures = { + lensBasic: 'x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/lens_basic.json', + lensDefault: 'x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/default', + }; + let esNode: EsArchiver; + let fixtureDirs: { + lensBasic: string; + lensDefault: string; + }; + let indexPatternString: string; + before(async () => { + log.debug('Starting lens before method'); + await browser.setWindowSize(1280, 1200); + await kibanaServer.savedObjects.cleanStandardList(); + try { + config.get('esTestCluster.ccs'); + remoteEsArchiver = getService('remoteEsArchiver' as 'esArchiver'); + esNode = remoteEsArchiver; + fixtureDirs = remoteFixtures; + indexPatternString = remoteIndexPatternString; + } catch (error) { + esNode = esArchiver; + fixtureDirs = localFixtures; + indexPatternString = localIndexPatternString; + } + + await esNode.load(esArchive); + await kibanaServer.uiSettings.update({ + defaultIndex: indexPatternString, + 'dateFormat:tz': 'UTC', + }); + await kibanaServer.importExport.load(fixtureDirs.lensBasic); + await kibanaServer.importExport.load(fixtureDirs.lensDefault); + // changing the timepicker default here saves us from having to set it in Discover (~8s) + await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings(); + }); + + after(async () => { + await esArchiver.unload(esArchive); + await PageObjects.timePicker.resetDefaultAbsoluteRangeViaUiSettings(); + await kibanaServer.importExport.unload(fixtureDirs.lensBasic); + await kibanaServer.importExport.unload(fixtureDirs.lensDefault); + await kibanaServer.savedObjects.cleanStandardList(); + }); + + loadTestFile(require.resolve('./logsdb.ts')); // 28m + }); +}; diff --git a/x-pack/test_serverless/functional/test_suites/common/visualizations/group1/logsdb.ts b/x-pack/test_serverless/functional/test_suites/common/visualizations/group6/logsdb.ts similarity index 99% rename from x-pack/test_serverless/functional/test_suites/common/visualizations/group1/logsdb.ts rename to x-pack/test_serverless/functional/test_suites/common/visualizations/group6/logsdb.ts index 231551a875a1b..247fea32b14f9 100644 --- a/x-pack/test_serverless/functional/test_suites/common/visualizations/group1/logsdb.ts +++ b/x-pack/test_serverless/functional/test_suites/common/visualizations/group6/logsdb.ts @@ -14,14 +14,15 @@ import { getDocsGenerator, setupScenarioRunner, TIME_PICKER_FORMAT, -} from './tsdb_logsdb_helpers'; +} from '../tsdb_logsdb_helpers'; export default function ({ getService, getPageObjects }: FtrProviderContext) { - const { common, lens, discover, header } = getPageObjects([ + const { common, lens, discover, header, svlCommonPage } = getPageObjects([ 'common', 'lens', 'discover', 'header', + 'svlCommonPage', ]); const testSubjects = getService('testSubjects'); const find = getService('find'); @@ -45,6 +46,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const toTime = 'Jun 16, 2023 @ 00:00:00.000'; before(async () => { + await svlCommonPage.loginAsAdmin(); log.info(`loading ${logsdbIndex} index...`); await esArchiver.loadIfNeeded(logsdbEsArchive); log.info(`creating a data view for "${logsdbDataView}"...`); diff --git a/x-pack/test_serverless/functional/test_suites/common/visualizations/group1/tsdb_logsdb_helpers.ts b/x-pack/test_serverless/functional/test_suites/common/visualizations/tsdb_logsdb_helpers.ts similarity index 99% rename from x-pack/test_serverless/functional/test_suites/common/visualizations/group1/tsdb_logsdb_helpers.ts rename to x-pack/test_serverless/functional/test_suites/common/visualizations/tsdb_logsdb_helpers.ts index f7e6d3b21e079..688b5ab7f3505 100644 --- a/x-pack/test_serverless/functional/test_suites/common/visualizations/group1/tsdb_logsdb_helpers.ts +++ b/x-pack/test_serverless/functional/test_suites/common/visualizations/tsdb_logsdb_helpers.ts @@ -9,7 +9,7 @@ import { Client } from '@elastic/elasticsearch'; import { MappingProperty } from '@elastic/elasticsearch/lib/api/types'; import { ToolingLog } from '@kbn/tooling-log'; import moment from 'moment'; -import { FtrProviderContext } from '../../../../ftr_provider_context'; +import { FtrProviderContext } from '../../../ftr_provider_context'; export const TEST_DOC_COUNT = 100; export const TIME_PICKER_FORMAT = 'MMM D, YYYY [@] HH:mm:ss.SSS'; diff --git a/x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group7.ts b/x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group7.ts new file mode 100644 index 0000000000000..62e1e388b95b5 --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group7.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const baseTestConfig = await readConfigFile(require.resolve('../config.ts')); + + return { + ...baseTestConfig.getAll(), + testFiles: [require.resolve('../../common/visualizations/group5')], + junit: { + reportName: 'Serverless Observability Functional Tests - Common Group 7', + }, + }; +} diff --git a/x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group8.ts b/x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group8.ts new file mode 100644 index 0000000000000..c12a600b1d46b --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group8.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const baseTestConfig = await readConfigFile(require.resolve('../config.ts')); + + return { + ...baseTestConfig.getAll(), + testFiles: [require.resolve('../../common/visualizations/group6')], + junit: { + reportName: 'Serverless Observability Functional Tests - Common Group 8', + }, + }; +} diff --git a/x-pack/test_serverless/functional/test_suites/search/common_configs/config.group7.ts b/x-pack/test_serverless/functional/test_suites/search/common_configs/config.group7.ts new file mode 100644 index 0000000000000..723c9ac2c45ad --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/search/common_configs/config.group7.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const baseTestConfig = await readConfigFile(require.resolve('../config.ts')); + + return { + ...baseTestConfig.getAll(), + testFiles: [require.resolve('../../common/visualizations/group5')], + junit: { + reportName: 'Serverless Search Functional Tests - Common Group 7', + }, + }; +} diff --git a/x-pack/test_serverless/functional/test_suites/search/common_configs/config.group8.ts b/x-pack/test_serverless/functional/test_suites/search/common_configs/config.group8.ts new file mode 100644 index 0000000000000..521691ffabd83 --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/search/common_configs/config.group8.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const baseTestConfig = await readConfigFile(require.resolve('../config.ts')); + + return { + ...baseTestConfig.getAll(), + testFiles: [require.resolve('../../common/visualizations/group6')], + junit: { + reportName: 'Serverless Search Functional Tests - Common Group 8', + }, + }; +} diff --git a/x-pack/test_serverless/functional/test_suites/security/common_configs/config.group7.ts b/x-pack/test_serverless/functional/test_suites/security/common_configs/config.group7.ts new file mode 100644 index 0000000000000..2239eb67441d8 --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/security/common_configs/config.group7.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const baseTestConfig = await readConfigFile(require.resolve('../config.ts')); + + return { + ...baseTestConfig.getAll(), + testFiles: [require.resolve('../../common/visualizations/group5')], + junit: { + reportName: 'Serverless Security Functional Tests - Common Group 7', + }, + }; +} diff --git a/x-pack/test_serverless/functional/test_suites/security/common_configs/config.group8.ts b/x-pack/test_serverless/functional/test_suites/security/common_configs/config.group8.ts new file mode 100644 index 0000000000000..0089206ce72f0 --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/security/common_configs/config.group8.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const baseTestConfig = await readConfigFile(require.resolve('../config.ts')); + + return { + ...baseTestConfig.getAll(), + testFiles: [require.resolve('../../common/visualizations/group6')], + junit: { + reportName: 'Serverless Security Functional Tests - Common Group 8', + }, + }; +}