Skip to content

Commit

Permalink
Add functional test for datasources at observability dashboards plugin
Browse files Browse the repository at this point in the history
Signed-off-by: Ryan Liang <[email protected]>
  • Loading branch information
RyanL1997 committed Jan 3, 2024
1 parent 1fa3e2b commit 5cd47c8
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

/// <reference types="cypress" />

import { BASE_PATH } from '../../../utils/base_constants';

import {
DATASOURCES_API_PREFIX,
DATASOURCES_PATH,
} from '../../../utils/plugins/observability-dashboards/constants';

const manageDataSourcesTag = 'button[data-test-subj="manage"]';
const newDataSourcesTag = 'button[data-test-subj="new"]';
const createS3Button = '[data-test-subj="datasource_card_s3glue"]';
const createPrometheusButton = '[data-test-subj="datasource_card_prometheus"]';

const visitDatasourcesHomePage = () => {
cy.visit(BASE_PATH + DATASOURCES_API_PREFIX);
};

const visitDatasourcesCreationPage = () => {
cy.visit(BASE_PATH + DATASOURCES_PATH.DATASOURCES_CREATION_BASE);
};

describe('Integration tests for datasources plugin', () => {
it('Navigates to datasources plugin and expects the correct header', () => {
visitDatasourcesHomePage();
cy.get('[data-test-subj="dataconnections-header"]').should('exist');
});

it('Tests navigation between tabs', () => {
visitDatasourcesHomePage();

cy.get(manageDataSourcesTag)
.should('have.class', 'euiTab-isSelected')
.and('have.attr', 'aria-selected', 'true');
cy.get(manageDataSourcesTag).click();
cy.url().should('include', '/manage');

cy.get(newDataSourcesTag).click();
cy.get(newDataSourcesTag)
.should('have.class', 'euiTab-isSelected')
.and('have.attr', 'aria-selected', 'true');
cy.url().should('include', '/new');

cy.get(createS3Button).should('be.visible');
cy.get(createPrometheusButton).should('be.visible');
});

it('Tests navigation of S3 datasources creation page with hash', () => {
visitDatasourcesCreationPage();

cy.get(createS3Button).should('be.visible').click();
cy.url().should(
'include',
DATASOURCES_PATH.DATASOURCES_CONFIG_BASE + '/AmazonS3AWSGlue'
);

cy.get('h1.euiTitle.euiTitle--medium')
.should('be.visible')
.and('contain', 'Configure Amazon S3 data source');
});

it('Tests navigation of Prometheus datasources creation page with hash', () => {
visitDatasourcesCreationPage();

cy.get(createPrometheusButton).should('be.visible').click();
cy.url().should(
'include',
DATASOURCES_PATH.DATASOURCES_CONFIG_BASE + '/Prometheus'
);

cy.get('h4.euiTitle.euiTitle--medium')
.should('be.visible')
.and('contain', 'Configure Prometheus data source');
});
});
7 changes: 7 additions & 0 deletions cypress/utils/plugins/observability-dashboards/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@ import { BASE_PATH } from '../../base_constants';

export const delayTime = 1500;

//Datasources API Constants
export const DATASOURCES_API_PREFIX = '/app/datasources';
export const DATASOURCES_PATH = {
DATASOURCES_CREATION_BASE: `${DATASOURCES_API_PREFIX}#/new`,
DATASOURCES_CONFIG_BASE: `${DATASOURCES_API_PREFIX}#/configure`,
};

// trace analytics
export const TRACE_ID = '8832ed6abbb2a83516461960c89af49d';
export const SPAN_ID = 'a673bc074b438374';
Expand Down

0 comments on commit 5cd47c8

Please sign in to comment.