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

[TEST] use before/after and consolidate #9439

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
2 changes: 2 additions & 0 deletions changelogs/fragments/9439.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
test:
- Use before/after to speed up test ([#9439](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/9439))
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,20 @@
* SPDX-License-Identifier: Apache-2.0
*/

import { DATASOURCE_NAME, PATHS, INDEX_WITH_TIME_1 } from '../../../../../../utils/constants';
import { INDEX_WITH_TIME_1 } from '../../../../../../utils/constants';
import { getRandomizedWorkspaceName } from '../../../../../../utils/apps/query_enhancements/shared';
import { prepareTestSuite } from '../../../../../../utils/helpers';

const workspaceName = getRandomizedWorkspaceName();

const noIndexPatternTestSuite = () => {
describe('No Index Pattern Check Test', () => {
beforeEach(() => {
// Load test data
cy.osd.setupTestData(
PATHS.SECONDARY_ENGINE,
[`cypress/fixtures/query_enhancements/data_logs_1/${INDEX_WITH_TIME_1}.mapping.json`],
[`cypress/fixtures/query_enhancements/data_logs_1/${INDEX_WITH_TIME_1}.data.ndjson`]
);
// Add data source
cy.osd.addDataSource({
name: DATASOURCE_NAME,
url: PATHS.SECONDARY_ENGINE,
authType: 'no_auth',
});
// Create workspace
cy.deleteWorkspaceByName(workspaceName);
cy.osd.deleteAllOldWorkspaces();
cy.visit('/app/home');
cy.osd.createInitialWorkspaceWithDataSource(DATASOURCE_NAME, workspaceName);
cy.wait(2000);
before(() => {
cy.osd.setupWorkspaceAndDataSourceWithIndices(workspaceName, [INDEX_WITH_TIME_1]);
});

afterEach(() => {
cy.deleteWorkspaceByName(workspaceName);
cy.osd.deleteDataSourceByName(DATASOURCE_NAME);
cy.osd.deleteIndex(INDEX_WITH_TIME_1);
after(() => {
cy.osd.cleanupWorkspaceAndDataSourceAndIndices(workspaceName, [INDEX_WITH_TIME_1]);
});

describe('empty state', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,20 @@
*/

import {
INDEX_WITH_TIME_1,
DATASOURCE_NAME,
INDEX_WITH_TIME_1,
START_TIME,
END_TIME,
} from '../../../../../../utils/apps/constants';
import { PATHS } from '../../../../../../utils/constants';
import { getRandomizedWorkspaceName } from '../../../../../../utils/apps/query_enhancements/shared';
import { prepareTestSuite } from '../../../../../../utils/helpers';

const workspace = getRandomizedWorkspaceName();

const queriesTestSuite = () => {
describe('query enhancement queries', { scrollBehavior: false }, () => {
beforeEach(() => {
// Load test data
cy.osd.setupTestData(
PATHS.SECONDARY_ENGINE,
[`cypress/fixtures/query_enhancements/data_logs_1/${INDEX_WITH_TIME_1}.mapping.json`],
[`cypress/fixtures/query_enhancements/data_logs_1/${INDEX_WITH_TIME_1}.data.ndjson`]
);
// Add data source
cy.osd.addDataSource({
name: DATASOURCE_NAME,
url: PATHS.SECONDARY_ENGINE,
authType: 'no_auth',
});
// Create workspace and set up index pattern
cy.deleteWorkspaceByName(workspace);
cy.osd.deleteAllOldWorkspaces();
cy.visit('/app/home');
cy.osd.createInitialWorkspaceWithDataSource(DATASOURCE_NAME, workspace);
before(() => {
cy.osd.setupWorkspaceAndDataSourceWithIndices(workspace, [INDEX_WITH_TIME_1]);
// Create and select index pattern for ${INDEX_WITH_TIME_1}*
cy.createWorkspaceIndexPatterns({
workspaceName: workspace,
Expand All @@ -44,6 +27,9 @@ const queriesTestSuite = () => {
dataSource: DATASOURCE_NAME,
isEnhancement: true,
});
});

beforeEach(() => {
// Go to discover page
cy.osd.navigateToWorkSpaceSpecificPage({
workspaceName: workspace,
Expand All @@ -52,16 +38,15 @@ const queriesTestSuite = () => {
});
});

afterEach(() => {
cy.deleteWorkspaceByName(workspace);
cy.osd.deleteDataSourceByName(`${DATASOURCE_NAME}`);
cy.osd.deleteIndex(INDEX_WITH_TIME_1);
after(() => {
cy.osd.cleanupWorkspaceAndDataSourceAndIndices(workspace, [INDEX_WITH_TIME_1]);
});

describe('send queries', () => {
it('with DQL', function () {
it('with DQL', () => {
cy.setIndexPatternAsDataset(`${INDEX_WITH_TIME_1}*`, DATASOURCE_NAME);
cy.setQueryLanguage('DQL');
cy.setTopNavDate(START_TIME, END_TIME);
cy.osd.setTopNavDate(START_TIME, END_TIME);

const query = `_id:N9srQ8opwBxGdIoQU3TW`;
cy.setQueryEditor(query);
Expand All @@ -74,9 +59,10 @@ const queriesTestSuite = () => {
cy.verifyHitCount(1);
});

it('with Lucene', function () {
it('with Lucene', () => {
cy.setIndexPatternAsDataset(`${INDEX_WITH_TIME_1}*`, DATASOURCE_NAME);
cy.setQueryLanguage('Lucene');
cy.setTopNavDate(START_TIME, END_TIME);
cy.osd.setTopNavDate(START_TIME, END_TIME);

const query = `_id:N9srQ8opwBxGdIoQU3TW`;
cy.setQueryEditor(query);
Expand All @@ -89,7 +75,8 @@ const queriesTestSuite = () => {
cy.verifyHitCount(1);
});

it('with SQL', function () {
it('with SQL', () => {
cy.setIndexPatternAsDataset(`${INDEX_WITH_TIME_1}*`, DATASOURCE_NAME);
cy.setQueryLanguage('OpenSearch SQL');

// Default SQL query should be set
Expand Down Expand Up @@ -119,9 +106,10 @@ const queriesTestSuite = () => {
cy.getElementByTestId(`queryResultCompleteMsg`).should('be.visible');
});

it('with PPL', function () {
it('with PPL', () => {
cy.setIndexPatternAsDataset(`${INDEX_WITH_TIME_1}*`, DATASOURCE_NAME);
cy.setQueryLanguage('PPL');
cy.setTopNavDate(START_TIME, END_TIME);
cy.osd.setTopNavDate(START_TIME, END_TIME);

// Default PPL query should be set
cy.osd.waitForLoader(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ import {
INDEX_PATTERN_WITH_TIME,
INDEX_WITH_TIME_1,
INDEX_WITH_TIME_2,
QueryLanguages,
PATHS,
DATASOURCE_NAME,
} from '../../../../../../utils/constants';
import {
Expand All @@ -20,40 +18,22 @@ import {
setSearchConfigurations,
verifyDiscoverPageState,
verifySavedSearchInAssetsPage,
postRequestSaveSearch,
updateSavedSearchAndSaveAndVerify,
generateSavedTestConfiguration,
postRequestSaveSearch,
} from '../../../../../../utils/apps/query_enhancements/saved';
import { prepareTestSuite } from '../../../../../../utils/helpers';

const workspaceName = getRandomizedWorkspaceName();

const runSavedSearchTests = () => {
describe('saved search', () => {
// TODO: Currently we cannot convert this into a "before" and "after" due to us grabbing several aliases that are required by postRequestSaveSearch()
beforeEach(() => {
// Load test data
cy.osd.setupTestData(
PATHS.SECONDARY_ENGINE,
[
`cypress/fixtures/query_enhancements/data_logs_1/${INDEX_WITH_TIME_1}.mapping.json`,
`cypress/fixtures/query_enhancements/data_logs_1/${INDEX_WITH_TIME_2}.mapping.json`,
],
[
`cypress/fixtures/query_enhancements/data_logs_1/${INDEX_WITH_TIME_1}.data.ndjson`,
`cypress/fixtures/query_enhancements/data_logs_1/${INDEX_WITH_TIME_2}.data.ndjson`,
]
);
// Add data source
cy.osd.addDataSource({
name: DATASOURCE_NAME,
url: PATHS.SECONDARY_ENGINE,
authType: 'no_auth',
});
// Create workspace
cy.deleteWorkspaceByName(workspaceName);
cy.osd.deleteAllOldWorkspaces();
cy.visit('/app/home');
cy.osd.createInitialWorkspaceWithDataSource(DATASOURCE_NAME, workspaceName);
cy.osd.setupWorkspaceAndDataSourceWithIndices(workspaceName, [
INDEX_WITH_TIME_1,
INDEX_WITH_TIME_2,
]);
cy.createWorkspaceIndexPatterns({
workspaceName: workspaceName,
indexPattern: INDEX_PATTERN_WITH_TIME.replace('*', ''),
Expand All @@ -65,14 +45,14 @@ const runSavedSearchTests = () => {
});

afterEach(() => {
cy.deleteWorkspaceByName(workspaceName);
cy.osd.deleteDataSourceByName(DATASOURCE_NAME);
cy.osd.deleteIndex(INDEX_WITH_TIME_1);
cy.osd.deleteIndex(INDEX_WITH_TIME_2);
cy.osd.cleanupWorkspaceAndDataSourceAndIndices(workspaceName, [
INDEX_WITH_TIME_1,
INDEX_WITH_TIME_2,
]);
});

generateAllTestConfigurations(generateSavedTestConfiguration).forEach((config) => {
it(`should successfully create a saved search for ${config.testName}`, () => {
it(`create and load for ${config.testName}`, () => {
cy.osd.navigateToWorkSpaceSpecificPage({
workspaceName,
page: 'discover',
Expand All @@ -93,42 +73,21 @@ const runSavedSearchTests = () => {
cy.wait(2000);

verifySavedSearchInAssetsPage(config, workspaceName);
});

// We are starting from various languages
// to guard against: https://github.com/opensearch-project/OpenSearch-Dashboards/issues/9078
Object.values(QueryLanguages)
.map((queryLanguage) => queryLanguage.name)
.forEach((startingLanguage) => {
// TODO: Remove this line once bugs are fixed
// https://github.com/opensearch-project/OpenSearch-Dashboards/issues/9078
if (startingLanguage !== config.language) return;

it(`should successfully load a saved search for ${config.testName} starting from ${startingLanguage}`, () => {
// using a POST request to create a saved search to load
postRequestSaveSearch(config);

cy.osd.navigateToWorkSpaceSpecificPage({
workspaceName,
page: 'discover',
isEnhancement: true,
});
cy.getElementByTestId('discoverNewButton').click();

// Intentionally setting INDEX_PATTERN dataset here so that
// we have access to all four languages that INDEX_PATTERN allows.
// This means that we are only testing loading a saved search
// starting from an INDEX_PATTERN dataset, but I think testing where the
// start is a permutation of other dataset is overkill
cy.setIndexPatternAsDataset(INDEX_PATTERN_WITH_TIME, DATASOURCE_NAME);

cy.setQueryLanguage(startingLanguage);
cy.loadSaveSearch(config.saveName);
setDatePickerDatesAndSearchIfRelevant(config.language);
verifyDiscoverPageState(config);
});
// load saved search
cy.osd.navigateToWorkSpaceSpecificPage({
workspaceName,
page: 'discover',
isEnhancement: true,
});

cy.getElementByTestId('discoverNewButton').click();
cy.setQueryLanguage(config.language);
cy.loadSaveSearch(config.saveName);
setDatePickerDatesAndSearchIfRelevant(config.language);
verifyDiscoverPageState(config);
});

it(`should successfully update a saved search for ${config.testName}`, () => {
// using a POST request to create a saved search to load
postRequestSaveSearch(config);
Expand Down
Loading
Loading