Skip to content

Commit

Permalink
Improve workspace import sample data tests
Browse files Browse the repository at this point in the history
Signed-off-by: Lin Wang <[email protected]>
  • Loading branch information
wanglam committed Jan 3, 2025
1 parent d42d288 commit c75fab2
Showing 1 changed file with 88 additions and 109 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
);
});
});
});
}
Expand Down

0 comments on commit c75fab2

Please sign in to comment.