Skip to content

Commit

Permalink
Paramaterized Discover tests (#129684)
Browse files Browse the repository at this point in the history
* Migrated Discover visualize tests to use CCS.

* Fixed.

* Forgot to add the config file to the functional tests command,

* Fixed nits in PR.

* Removed unused references.

* Removed unused references.

* Removed test file that was removed in the merge.

* Added saved_queries test to run when CCS is enabled and put test that wasn't supposed to be removed back.

* Used conditional in index pattern.
  • Loading branch information
John Dorlus authored Apr 13, 2022
1 parent 9cc736d commit fbd38a7
Show file tree
Hide file tree
Showing 14 changed files with 102 additions and 411 deletions.
2 changes: 1 addition & 1 deletion scripts/functional_tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

require('../src/setup_node_env');
require('@kbn/test').runTestsCli([
require.resolve('../test/functional/config.ccs.ts'),
require.resolve('../test/functional/config.js'),
require.resolve('../test/functional_ccs/config.ts'),
require.resolve('../test/plugin_functional/config.ts'),
require.resolve('../test/ui_capabilities/newsfeed_err/config.ts'),
require.resolve('../test/new_visualize_flow/config.ts'),
Expand Down
22 changes: 17 additions & 5 deletions test/functional/apps/discover/_data_view_editor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,22 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const kibanaServer = getService('kibanaServer');
const esArchiver = getService('esArchiver');
const security = getService('security');
const config = getService('config');
const PageObjects = getPageObjects(['common', 'discover', 'header', 'timePicker']);
const defaultIndexPatternString = config.get('esTestCluster.ccs')
? 'ftr-remote:logstash-*'
: 'logstash-*';
const defaultSettings = {
defaultIndex: 'logstash-*',
defaultIndex: defaultIndexPatternString,
};
const localArchiveDirectory = 'test/functional/fixtures/kbn_archiver/discover';
const remoteArchiveDirectory = 'test/functional/fixtures/kbn_archiver/ccs/discover';
const esNode = config.get('esTestCluster.ccs')
? getService('remoteEsArchiver' as 'esArchiver')
: esArchiver;
const kbnDirectory = config.get('esTestCluster.ccs')
? remoteArchiveDirectory
: localArchiveDirectory;

const createDataView = async (dataViewName: string) => {
await PageObjects.discover.clickIndexPatternActions();
Expand All @@ -32,22 +44,22 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
describe('discover integration with data view editor', function describeIndexTests() {
before(async function () {
await security.testUser.setRoles(['kibana_admin', 'test_logstash_reader']);
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
await esNode.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
await kibanaServer.savedObjects.clean({ types: ['saved-search', 'index-pattern'] });
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
await kibanaServer.importExport.load(kbnDirectory);
await kibanaServer.uiSettings.replace(defaultSettings);
await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings();
await PageObjects.common.navigateToApp('discover');
});

after(async () => {
await security.testUser.restoreDefaults();
await kibanaServer.importExport.unload('test/functional/fixtures/kbn_archiver/discover');
await kibanaServer.importExport.unload(kbnDirectory);
await kibanaServer.savedObjects.clean({ types: ['saved-search', 'index-pattern'] });
});

it('allows creating a new data view', async function () {
const dataViewToCreate = 'logstash';
const dataViewToCreate = config.get('esTestCluster.ccs') ? 'ftr-remote:logstash' : 'logstash';
await createDataView(dataViewToCreate);
await PageObjects.header.waitUntilLoadingHasFinished();
await retry.waitForWithTimeout(
Expand Down
50 changes: 34 additions & 16 deletions test/functional/apps/discover/_saved_queries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,37 @@ import { FtrProviderContext } from '../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const retry = getService('retry');
const log = getService('log');
const esArchiver = getService('esArchiver');
const kibanaServer = getService('kibanaServer');
const PageObjects = getPageObjects(['common', 'discover', 'timePicker']);
const browser = getService('browser');
const filterBar = getService('filterBar');
const queryBar = getService('queryBar');
const savedQueryManagementComponent = getService('savedQueryManagementComponent');
const testSubjects = getService('testSubjects');
const config = getService('config');
const localArchiveDirectories = {
nested: 'test/functional/fixtures/kbn_archiver/date_nested.json',
discover: 'test/functional/fixtures/kbn_archiver/discover.json',
};
const remoteArchiveDirectories = {
nested: 'test/functional/fixtures/kbn_archiver/ccs/date_nested.json',
discover: 'test/functional/fixtures/kbn_archiver/ccs/discover.json',
};
const logstashIndexPatternString = config.get('esTestCluster.ccs')
? 'ftr-remote:logstash-*'
: 'logstash-*';
const dateNestedIndexPattern = config.get('esTestCluster.ccs')
? 'ftr-remote:date-nested'
: 'date-nested';
const defaultSettings = {
defaultIndex: 'logstash-*',
defaultIndex: logstashIndexPatternString,
};
const esNode = config.get('esTestCluster.ccs')
? getService('remoteEsArchiver' as 'esArchiver')
: getService('esArchiver');
const kbnArchives = config.get('esTestCluster.ccs')
? remoteArchiveDirectories
: localArchiveDirectories;

const from = 'Sep 20, 2015 @ 08:00:00.000';
const to = 'Sep 21, 2015 @ 08:00:00.000';
Expand All @@ -34,7 +54,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
log.debug('set up a query with filters to save');
await PageObjects.common.setTime({ from, to });
await PageObjects.common.navigateToApp('discover');
await PageObjects.discover.selectIndexPattern('logstash-*');
await PageObjects.discover.selectIndexPattern(logstashIndexPatternString);
await retry.try(async function tryingForTime() {
const hitCount = await PageObjects.discover.getHitCount();
expect(hitCount).to.be('4,731');
Expand All @@ -59,25 +79,23 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
log.debug('load kibana index with default index pattern');
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern', 'query'] });

await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
await kibanaServer.importExport.load(
'test/functional/fixtures/kbn_archiver/date_nested.json'
);
await esArchiver.load('test/functional/fixtures/es_archiver/date_nested');
await esArchiver.load('test/functional/fixtures/es_archiver/logstash_functional');
await kibanaServer.importExport.load(kbnArchives.discover);
await kibanaServer.importExport.load(kbnArchives.nested);
await esNode.load('test/functional/fixtures/es_archiver/date_nested');
await esNode.load('test/functional/fixtures/es_archiver/logstash_functional');

await kibanaServer.uiSettings.replace(defaultSettings);
log.debug('discover');
await PageObjects.common.navigateToApp('discover');
});

after(async () => {
await kibanaServer.importExport.unload('test/functional/fixtures/kbn_archiver/discover');
await kibanaServer.importExport.unload('test/functional/fixtures/kbn_archiver/date_nested');
await kibanaServer.importExport.unload(kbnArchives.discover);
await kibanaServer.importExport.unload(kbnArchives.nested);
await kibanaServer.savedObjects.clean({ types: ['search', 'index-pattern', 'query'] });
await kibanaServer.savedObjects.clean({ types: ['search', 'query'] });
await esArchiver.unload('test/functional/fixtures/es_archiver/date_nested');
await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional');
await esNode.unload('test/functional/fixtures/es_archiver/date_nested');
await esNode.unload('test/functional/fixtures/es_archiver/logstash_functional');
await PageObjects.common.unsetTime();
});

Expand All @@ -102,14 +120,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
expect(await filterBar.hasFilter('extension.raw', 'jpg')).to.be(false);
expect(await queryBar.getQueryString()).to.eql('');

await PageObjects.discover.selectIndexPattern('date-nested');
await PageObjects.discover.selectIndexPattern(dateNestedIndexPattern);

expect(await filterBar.hasFilter('extension.raw', 'jpg')).to.be(false);
expect(await queryBar.getQueryString()).to.eql('');

await PageObjects.discover.selectIndexPattern('logstash-*');
await PageObjects.discover.selectIndexPattern(logstashIndexPatternString);
const currentDataView = await PageObjects.discover.getCurrentlySelectedDataView();
expect(currentDataView).to.be('logstash-*');
expect(currentDataView).to.be(logstashIndexPatternString);
await retry.try(async function tryingForTime() {
const hitCount = await PageObjects.discover.getHitCount();
expect(hitCount).to.be('4,731');
Expand Down
73 changes: 39 additions & 34 deletions test/functional/apps/discover/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/

import { FtrProviderContext } from '../../ftr_provider_context';

export default function ({ getService, loadTestFile }: FtrProviderContext) {
const esArchiver = getService('esArchiver');
const browser = getService('browser');
const config = getService('config');

describe('discover app', function () {
this.tags('ciGroup6');
Expand All @@ -23,38 +23,43 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) {
await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional');
});

loadTestFile(require.resolve('./_saved_queries'));
loadTestFile(require.resolve('./_discover'));
loadTestFile(require.resolve('./_discover_histogram'));
loadTestFile(require.resolve('./_doc_table'));
loadTestFile(require.resolve('./_doc_table_newline'));
loadTestFile(require.resolve('./_filter_editor'));
loadTestFile(require.resolve('./_errors'));
loadTestFile(require.resolve('./_field_data'));
loadTestFile(require.resolve('./_field_data_with_fields_api'));
loadTestFile(require.resolve('./_shared_links'));
loadTestFile(require.resolve('./_sidebar'));
loadTestFile(require.resolve('./_source_filters'));
loadTestFile(require.resolve('./_large_string'));
loadTestFile(require.resolve('./_inspector'));
loadTestFile(require.resolve('./_classic_table_doc_navigation'));
loadTestFile(require.resolve('./_date_nanos'));
loadTestFile(require.resolve('./_date_nanos_mixed'));
loadTestFile(require.resolve('./_indexpattern_without_timefield'));
loadTestFile(require.resolve('./_discover_fields_api'));
loadTestFile(require.resolve('./_data_grid'));
loadTestFile(require.resolve('./_data_grid_context'));
loadTestFile(require.resolve('./_data_grid_field_data'));
loadTestFile(require.resolve('./_data_grid_doc_navigation'));
loadTestFile(require.resolve('./_data_grid_doc_table'));
loadTestFile(require.resolve('./_indexpattern_with_unmapped_fields'));
loadTestFile(require.resolve('./_runtime_fields_editor'));
loadTestFile(require.resolve('./_huge_fields'));
loadTestFile(require.resolve('./_date_nested'));
loadTestFile(require.resolve('./_search_on_page_load'));
loadTestFile(require.resolve('./_chart_hidden'));
loadTestFile(require.resolve('./_context_encoded_url_param'));
loadTestFile(require.resolve('./_data_view_editor'));
loadTestFile(require.resolve('./_empty_state'));
if (config.get('esTestCluster.ccs')) {
loadTestFile(require.resolve('./_data_view_editor'));
loadTestFile(require.resolve('./_saved_queries'));
} else {
loadTestFile(require.resolve('./_saved_queries'));
loadTestFile(require.resolve('./_discover'));
loadTestFile(require.resolve('./_discover_histogram'));
loadTestFile(require.resolve('./_doc_table'));
loadTestFile(require.resolve('./_doc_table_newline'));
loadTestFile(require.resolve('./_filter_editor'));
loadTestFile(require.resolve('./_errors'));
loadTestFile(require.resolve('./_field_data'));
loadTestFile(require.resolve('./_field_data_with_fields_api'));
loadTestFile(require.resolve('./_shared_links'));
loadTestFile(require.resolve('./_sidebar'));
loadTestFile(require.resolve('./_source_filters'));
loadTestFile(require.resolve('./_large_string'));
loadTestFile(require.resolve('./_inspector'));
loadTestFile(require.resolve('./_classic_table_doc_navigation'));
loadTestFile(require.resolve('./_date_nanos'));
loadTestFile(require.resolve('./_date_nanos_mixed'));
loadTestFile(require.resolve('./_indexpattern_without_timefield'));
loadTestFile(require.resolve('./_discover_fields_api'));
loadTestFile(require.resolve('./_data_grid'));
loadTestFile(require.resolve('./_data_grid_context'));
loadTestFile(require.resolve('./_data_grid_field_data'));
loadTestFile(require.resolve('./_data_grid_doc_navigation'));
loadTestFile(require.resolve('./_data_grid_doc_table'));
loadTestFile(require.resolve('./_indexpattern_with_unmapped_fields'));
loadTestFile(require.resolve('./_runtime_fields_editor'));
loadTestFile(require.resolve('./_huge_fields'));
loadTestFile(require.resolve('./_date_nested'));
loadTestFile(require.resolve('./_search_on_page_load'));
loadTestFile(require.resolve('./_chart_hidden'));
loadTestFile(require.resolve('./_context_encoded_url_param'));
loadTestFile(require.resolve('./_data_view_editor'));
loadTestFile(require.resolve('./_empty_state'));
}
});
}
10 changes: 8 additions & 2 deletions test/functional_ccs/config.ts → test/functional/config.ccs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@
*/

import { FtrConfigProviderContext } from '@kbn/test';
import { services } from './services';
import { RemoteEsArchiverProvider } from './services/remote_es/remote_es_archiver';
import { RemoteEsProvider } from './services/remote_es/remote_es';

// eslint-disable-next-line import/no-default-export
export default async function ({ readConfigFile }: FtrConfigProviderContext) {
const functionalConfig = await readConfigFile(require.resolve('../functional/config'));

Expand All @@ -17,7 +19,11 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) {

testFiles: [require.resolve('./apps/discover')],

services,
services: {
...functionalConfig.get('services'),
remoteEs: RemoteEsProvider,
remoteEsArchiver: RemoteEsArchiverProvider,
},

junit: {
reportName: 'Kibana CCS Tests',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import { Client } from '@elastic/elasticsearch';

import { systemIndicesSuperuser, createRemoteEsClientForFtrConfig } from '@kbn/test';
import { FtrProviderContext } from '../ftr_provider_context';
import { FtrProviderContext } from '../../ftr_provider_context';

/**
* Kibana-specific @elastic/elasticsearch client instance.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
*/

import { EsArchiver } from '@kbn/es-archiver';
import { FtrProviderContext } from '../ftr_provider_context';
import { FtrProviderContext } from '../../ftr_provider_context';

export function RemoteEsArchiverProvider({ getService }: FtrProviderContext): EsArchiver {
const remoteEs = getService('remoteEs');
const remoteEs = getService('remoteEs' as 'es');
const log = getService('log');
const kibanaServer = getService('kibanaServer');

Expand Down
70 changes: 0 additions & 70 deletions test/functional_ccs/apps/discover/data_view_ccs.ts

This file was deleted.

Loading

0 comments on commit fbd38a7

Please sign in to comment.