From c75fab29ea9f0d76f42fdb3aabbc8d6d4e2b335f Mon Sep 17 00:00:00 2001 From: Lin Wang Date: Fri, 3 Jan 2025 16:11:25 +0800 Subject: [PATCH] Improve workspace import sample data tests Signed-off-by: Lin Wang --- ...s_workspace_import_sample_data_to.cases.js | 197 ++++++++---------- 1 file changed, 88 insertions(+), 109 deletions(-) diff --git a/cypress/utils/dashboards/workspace-plugin/test-cases/mds_workspace_import_sample_data_to.cases.js b/cypress/utils/dashboards/workspace-plugin/test-cases/mds_workspace_import_sample_data_to.cases.js index ea5aec66b..7f48dd409 100644 --- a/cypress/utils/dashboards/workspace-plugin/test-cases/mds_workspace_import_sample_data_to.cases.js +++ b/cypress/utils/dashboards/workspace-plugin/test-cases/mds_workspace_import_sample_data_to.cases.js @@ -7,7 +7,7 @@ const MDSEnabled = Cypress.env('DATASOURCE_MANAGEMENT_ENABLED'); export const WorkspaceImportSampleDataTestCases = () => { if (Cypress.env('WORKSPACE_ENABLED')) { - describe('import sample data to workspace', () => { + describe('workspace import sample data', () => { let workspaceId; let dataSourceId; let dataSourceTitle; @@ -58,117 +58,96 @@ export const WorkspaceImportSampleDataTestCases = () => { } }); - beforeEach(() => { - cy.visit(`/w/${workspaceId}/app/import_sample_data`); - if (MDSEnabled) { - cy.selectTopRightNavigationDataSource(dataSourceTitle, dataSourceId); - } - }); - - it('should show Add data buttons if sample data not installed', () => { - cy.getElementByTestId('addSampleDataSetecommerce').should('be.visible'); - cy.getElementByTestId('addSampleDataSetflights').should('be.visible'); - cy.getElementByTestId('addSampleDataSetlogs').should('be.visible'); - }); - - it('should show remove buttons after sample data installed', () => { - cy.getElementByTestId('addSampleDataSetecommerce').click(); - cy.getElementByTestId('addSampleDataSetflights').click(); - cy.getElementByTestId('addSampleDataSetlogs').click(); - - cy.getElementByTestId('removeSampleDataSetecommerce').should( - 'be.visible' - ); - cy.getElementByTestId('removeSampleDataSetflights').should( - 'be.visible' - ); - cy.getElementByTestId('removeSampleDataSetlogs').should('be.visible'); - - cy.getElementByTestId('removeSampleDataSetecommerce').click(); - cy.getElementByTestId('removeSampleDataSetflights').click(); - cy.getElementByTestId('removeSampleDataSetlogs').click(); + describe('add and remove buttons', () => { + beforeEach(() => { + cy.visit(`/w/${workspaceId}/app/import_sample_data`); + if (MDSEnabled) { + cy.selectTopRightNavigationDataSource( + dataSourceTitle, + dataSourceId + ); + } + }); + + it('should show Add data buttons if sample data not installed', () => { + cy.getElementByTestId('addSampleDataSetecommerce').should( + 'be.visible' + ); + cy.getElementByTestId('addSampleDataSetflights').should('be.visible'); + cy.getElementByTestId('addSampleDataSetlogs').should('be.visible'); + }); + + it('should show remove buttons after sample data installed', () => { + cy.intercept( + { + pathname: '/w/**/api/sample_data/**', + times: 3, + }, + { + statusCode: 200, + } + ).as('importSampleData'); + cy.getElementByTestId('addSampleDataSetecommerce').click(); + cy.wait('@importSampleData') + .its('request.url') + .should('include', 'ecommerce'); + + cy.getElementByTestId('addSampleDataSetflights').click(); + cy.wait('@importSampleData') + .its('request.url') + .should('include', 'flights'); + + cy.getElementByTestId('addSampleDataSetlogs').click(); + cy.wait('@importSampleData') + .its('request.url') + .should('include', 'logs'); + + cy.getElementByTestId('removeSampleDataSetecommerce').should( + 'be.visible' + ); + cy.getElementByTestId('removeSampleDataSetflights').should( + 'be.visible' + ); + cy.getElementByTestId('removeSampleDataSetlogs').should('be.visible'); + }); }); it('should be able to visit ecommerce dashboard', () => { - cy.getElementByTestId('addSampleDataSetecommerce').click(); - - cy.getElementByTestId('launchSampleDataSetecommerce') - .should('be.visible') - .click(); - - cy.location('href').should( - 'include', - `/w/${workspaceId}/app/dashboards` - ); - cy.getElementByTestId('headerAppActionMenu').should( - 'contain', - getTitleWithDataSource('[eCommerce] Revenue Dashboard') - ); - cy.get( - `[data-title="${getTitleWithDataSource( - '[eCommerce] Total Revenue' - )}"]` - ).should('not.contain', 'No results found'); - cy.visit(`/w/${workspaceId}/app/import_sample_data`); - - if (MDSEnabled) { - cy.selectTopRightNavigationDataSource(dataSourceTitle, dataSourceId); - } - cy.getElementByTestId('removeSampleDataSetecommerce').click(); - }); - - it('should be able to visit flights dashboards', () => { - cy.getElementByTestId('addSampleDataSetflights').click(); - - cy.getElementByTestId('launchSampleDataSetflights') - .should('be.visible') - .click(); - - cy.location('href').should( - 'include', - `/w/${workspaceId}/app/dashboards` - ); - cy.getElementByTestId('headerAppActionMenu').should( - 'contain', - getTitleWithDataSource('[Flights] Global Flight Dashboard') - ); - cy.get( - `[data-title="${getTitleWithDataSource('[Flights] Flight Delays')}"]` - ).should('not.contain', 'No results found'); - cy.visit(`/w/${workspaceId}/app/import_sample_data`); - - if (MDSEnabled) { - cy.selectTopRightNavigationDataSource(dataSourceTitle, dataSourceId); - } - cy.getElementByTestId('removeSampleDataSetflights').click(); - }); - - it('should be able to visit logs dashboards', () => { - cy.getElementByTestId('addSampleDataSetlogs').click(); - - cy.getElementByTestId('launchSampleDataSetlogs') - .should('be.visible') - .click(); - - cy.location('href').should( - 'include', - `/w/${workspaceId}/app/dashboards` - ); - cy.getElementByTestId('headerAppActionMenu').should( - 'contain', - getTitleWithDataSource('[Logs] Web Traffic') - ); - cy.get( - `[data-title="${getTitleWithDataSource( - '[Logs] Unique Visitors vs. Average Bytes' - )}"]` - ).should('not.contain', 'No results found'); - cy.visit(`/w/${workspaceId}/app/import_sample_data`); - - if (MDSEnabled) { - cy.selectTopRightNavigationDataSource(dataSourceTitle, dataSourceId); - } - cy.getElementByTestId('removeSampleDataSetlogs').click(); + cy.loadSampleDataForWorkspace('ecommerce', workspaceId, dataSourceId) + .then(() => { + cy.visit(`/w/${workspaceId}/app/import_sample_data`); + if (MDSEnabled) { + cy.selectTopRightNavigationDataSource( + dataSourceTitle, + dataSourceId + ); + } + + cy.getElementByTestId('launchSampleDataSetecommerce') + .should('be.visible') + .click(); + + cy.location('href').should( + 'include', + `/w/${workspaceId}/app/dashboards` + ); + cy.getElementByTestId('headerAppActionMenu').should( + 'contain', + getTitleWithDataSource('[eCommerce] Revenue Dashboard') + ); + cy.get( + `[data-title="${getTitleWithDataSource( + '[eCommerce] Total Revenue' + )}"]` + ).should('not.contain', 'No results found'); + }) + .then(() => { + cy.removeSampleDataForWorkspace( + 'ecommerce', + workspaceId, + dataSourceId + ); + }); }); }); }