mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-03 14:13:06 +00:00
fix(test): separate playwright for oss (#17543)
* fix(test): separate playwright for oss Run specific tests based on OSS flagged * fix(test): playwright with fals IS_OSS
This commit is contained in:
parent
43a244fbf1
commit
e4927373bb
1
.github/workflows/playwright-mysql-e2e.yml
vendored
1
.github/workflows/playwright-mysql-e2e.yml
vendored
@ -98,6 +98,7 @@ jobs:
|
|||||||
working-directory: openmetadata-ui/src/main/resources/ui/
|
working-directory: openmetadata-ui/src/main/resources/ui/
|
||||||
run: npx playwright test
|
run: npx playwright test
|
||||||
env:
|
env:
|
||||||
|
PLAYWRIGHT_IS_OSS: true
|
||||||
CYPRESS_BASE_URL: "http://localhost:8585"
|
CYPRESS_BASE_URL: "http://localhost:8585"
|
||||||
CYPRESS_RECORD_KEY: ${{ steps.cypress-project-id.outputs.CYPRESS_RECORD_KEY }}
|
CYPRESS_RECORD_KEY: ${{ steps.cypress-project-id.outputs.CYPRESS_RECORD_KEY }}
|
||||||
CYPRESS_grepTags: ${{ steps.getCypresse2eLabels.outputs.e2eLabels }}
|
CYPRESS_grepTags: ${{ steps.getCypresse2eLabels.outputs.e2eLabels }}
|
||||||
|
@ -98,6 +98,7 @@ jobs:
|
|||||||
working-directory: openmetadata-ui/src/main/resources/ui/
|
working-directory: openmetadata-ui/src/main/resources/ui/
|
||||||
run: npx playwright test
|
run: npx playwright test
|
||||||
env:
|
env:
|
||||||
|
PLAYWRIGHT_IS_OSS: true
|
||||||
CYPRESS_BASE_URL: "http://localhost:8585"
|
CYPRESS_BASE_URL: "http://localhost:8585"
|
||||||
CYPRESS_RECORD_KEY: ${{ steps.cypress-project-id.outputs.CYPRESS_RECORD_KEY }}
|
CYPRESS_RECORD_KEY: ${{ steps.cypress-project-id.outputs.CYPRESS_RECORD_KEY }}
|
||||||
CYPRESS_grepTags: ${{ steps.getCypresse2eLabels.outputs.e2eLabels }}
|
CYPRESS_grepTags: ${{ steps.getCypresse2eLabels.outputs.e2eLabels }}
|
||||||
|
@ -1,155 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2024 Collate.
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
import { interceptURL, verifyResponseStatusCode } from '../../common/common';
|
|
||||||
import { GlobalSettingOptions } from '../../constants/settings.constant';
|
|
||||||
|
|
||||||
const visitSearchApplicationPage = () => {
|
|
||||||
interceptURL(
|
|
||||||
'GET',
|
|
||||||
'/api/v1/apps/name/SearchIndexingApplication?fields=*',
|
|
||||||
'getSearchIndexingApplication'
|
|
||||||
);
|
|
||||||
cy.get(
|
|
||||||
'[data-testid="search-indexing-application-card"] [data-testid="config-btn"]'
|
|
||||||
).click();
|
|
||||||
verifyResponseStatusCode('@getSearchIndexingApplication', 200);
|
|
||||||
};
|
|
||||||
|
|
||||||
const verifyLastExecutionRun = (interceptedUrlLabel: string) => {
|
|
||||||
cy.wait(`@${interceptedUrlLabel}`).then((interception) => {
|
|
||||||
expect(interception.response.statusCode).to.eq(200);
|
|
||||||
|
|
||||||
// Validate the last execution run response
|
|
||||||
const responseData = interception.response.body;
|
|
||||||
if (responseData.data.length > 0) {
|
|
||||||
expect(responseData.data).to.have.length(1);
|
|
||||||
expect(responseData.data[0].status).to.equal('success');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
describe('Search Index Application', { tags: 'Settings' }, () => {
|
|
||||||
beforeEach(() => {
|
|
||||||
cy.login();
|
|
||||||
|
|
||||||
interceptURL('GET', '/api/v1/apps?limit=*', 'getApplications');
|
|
||||||
|
|
||||||
cy.settingClick(GlobalSettingOptions.APPLICATIONS);
|
|
||||||
|
|
||||||
verifyResponseStatusCode('@getApplications', 200);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Verify last execution run', () => {
|
|
||||||
interceptURL(
|
|
||||||
'GET',
|
|
||||||
'/api/v1/apps/name/SearchIndexingApplication/status?offset=0&limit=1',
|
|
||||||
'lastExecutionRun'
|
|
||||||
);
|
|
||||||
visitSearchApplicationPage();
|
|
||||||
verifyLastExecutionRun('lastExecutionRun');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Edit application', () => {
|
|
||||||
interceptURL('PATCH', '/api/v1/apps/*', 'updateApplication');
|
|
||||||
visitSearchApplicationPage();
|
|
||||||
cy.get('[data-testid="edit-button"]').click();
|
|
||||||
cy.get('[data-testid="cron-type"]').click();
|
|
||||||
cy.get('.rc-virtual-list [title="None"]').click();
|
|
||||||
cy.get('.ant-modal-body [data-testid="deploy-button"]').click();
|
|
||||||
verifyResponseStatusCode('@updateApplication', 200);
|
|
||||||
cy.get('[data-testid="schedule-type"]').should('contain', 'None');
|
|
||||||
|
|
||||||
cy.get('[data-testid="configuration"]').click();
|
|
||||||
|
|
||||||
cy.get('#root\\/batchSize').type('0');
|
|
||||||
cy.get(
|
|
||||||
'[data-testid="select-widget"] > .ant-select-selector > .ant-select-selection-item'
|
|
||||||
).click();
|
|
||||||
cy.get('[data-testid="select-option-JP"]').click();
|
|
||||||
|
|
||||||
cy.get('[data-testid="submit-btn"]').click();
|
|
||||||
verifyResponseStatusCode('@updateApplication', 200);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Uninstall application', () => {
|
|
||||||
interceptURL('GET', '/api/v1/apps?limit=*', 'getApplications');
|
|
||||||
interceptURL(
|
|
||||||
'DELETE',
|
|
||||||
'/api/v1/apps/name/SearchIndexingApplication?hardDelete=true',
|
|
||||||
'deleteApplication'
|
|
||||||
);
|
|
||||||
visitSearchApplicationPage();
|
|
||||||
cy.get('[data-testid="manage-button"]').click();
|
|
||||||
cy.get('[data-testid="uninstall-button-title"]').click();
|
|
||||||
cy.get('[data-testid="save-button"]').click();
|
|
||||||
verifyResponseStatusCode('@deleteApplication', 200);
|
|
||||||
verifyResponseStatusCode('@getApplications', 200);
|
|
||||||
cy.get('[data-testid="search-indexing-application-card"]').should(
|
|
||||||
'not.exist'
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Install application', () => {
|
|
||||||
interceptURL('GET', '/api/v1/apps/marketplace?limit=*', 'getMarketPlace');
|
|
||||||
interceptURL('POST', '/api/v1/apps', 'installApplication');
|
|
||||||
cy.get('[data-testid="add-application"]').click();
|
|
||||||
verifyResponseStatusCode('@getMarketPlace', 200);
|
|
||||||
cy.get(
|
|
||||||
'[data-testid="search-indexing-application-card"] [data-testid="config-btn"]'
|
|
||||||
).click();
|
|
||||||
cy.get('[data-testid="install-application"]').click();
|
|
||||||
cy.get('[data-testid="save-button"]').scrollIntoView().click();
|
|
||||||
cy.get('[data-testid="submit-btn"]').scrollIntoView().click();
|
|
||||||
cy.get('[data-testid="cron-type"]').click();
|
|
||||||
cy.get('.rc-virtual-list [title="None"]').click();
|
|
||||||
cy.get('[data-testid="cron-type"]').should('contain', 'None');
|
|
||||||
cy.get('[data-testid="deploy-button"]').click();
|
|
||||||
verifyResponseStatusCode('@installApplication', 201);
|
|
||||||
verifyResponseStatusCode('@getApplications', 200);
|
|
||||||
cy.get('[data-testid="search-indexing-application-card"]').should(
|
|
||||||
'be.visible'
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (Cypress.env('isOss')) {
|
|
||||||
it('Run application', () => {
|
|
||||||
interceptURL(
|
|
||||||
'GET',
|
|
||||||
'/api/v1/apps/name/SearchIndexingApplication?fields=*',
|
|
||||||
'getSearchIndexingApplication'
|
|
||||||
);
|
|
||||||
interceptURL(
|
|
||||||
'POST',
|
|
||||||
'/api/v1/apps/trigger/SearchIndexingApplication',
|
|
||||||
'triggerPipeline'
|
|
||||||
);
|
|
||||||
cy.get(
|
|
||||||
'[data-testid="search-indexing-application-card"] [data-testid="config-btn"]'
|
|
||||||
).click();
|
|
||||||
verifyResponseStatusCode('@getSearchIndexingApplication', 200);
|
|
||||||
cy.get('[data-testid="run-now-button"]').click();
|
|
||||||
verifyResponseStatusCode('@triggerPipeline', 200);
|
|
||||||
|
|
||||||
cy.wait(120000); // waiting for 2 minutes before we check if reindex was success
|
|
||||||
|
|
||||||
interceptURL(
|
|
||||||
'GET',
|
|
||||||
'/api/v1/apps/name/SearchIndexingApplication/status?offset=0&limit=1',
|
|
||||||
'lastExecutionRun'
|
|
||||||
);
|
|
||||||
|
|
||||||
cy.reload();
|
|
||||||
verifyLastExecutionRun('lastExecutionRun');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
@ -172,7 +172,7 @@ test('Search Index Application', async ({ page }) => {
|
|||||||
expect(await card.isVisible()).toBe(true);
|
expect(await card.isVisible()).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (process.env.isOss) {
|
if (process.env.PLAYWRIGHT_IS_OSS) {
|
||||||
await test.step('Run application', async () => {
|
await test.step('Run application', async () => {
|
||||||
test.slow(true); // Test time shouldn't exceed while re-fetching the history API.
|
test.slow(true); // Test time shouldn't exceed while re-fetching the history API.
|
||||||
|
|
||||||
|
@ -19,7 +19,9 @@ setup.use({
|
|||||||
storageState: 'playwright/.auth/admin.json',
|
storageState: 'playwright/.auth/admin.json',
|
||||||
});
|
});
|
||||||
|
|
||||||
setup.describe.configure({ timeout: process.env.isOss ? 150000 : 3600000 });
|
setup.describe.configure({
|
||||||
|
timeout: process.env.PLAYWRIGHT_IS_OSS ? 150000 : 3600000,
|
||||||
|
});
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
'Run Data Insight application and wait until success',
|
'Run Data Insight application and wait until success',
|
||||||
@ -68,7 +70,7 @@ setup(
|
|||||||
{
|
{
|
||||||
// Custom expect message for reporting, optional.
|
// Custom expect message for reporting, optional.
|
||||||
message: 'Wait for the Data Insight Application run to be successful',
|
message: 'Wait for the Data Insight Application run to be successful',
|
||||||
...(process.env.isOss
|
...(process.env.PLAYWRIGHT_IS_OSS
|
||||||
? {
|
? {
|
||||||
timeout: 120_000,
|
timeout: 120_000,
|
||||||
intervals: [5_000, 10_000],
|
intervals: [5_000, 10_000],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user