diff --git a/frontend/testing/playwright/pages/DataModelPage.ts b/frontend/testing/playwright/pages/DataModelPage.ts index 82c50210acb..a78c030e56b 100644 --- a/frontend/testing/playwright/pages/DataModelPage.ts +++ b/frontend/testing/playwright/pages/DataModelPage.ts @@ -144,15 +144,25 @@ export class DataModelPage extends BasePage { public async selectFileToUpload(fileName: string): Promise<void> { await this.page + .getByRole('toolbar') .getByTestId(DataTestId.FileSelectorInput) - .first() .setInputFiles(path.join(__dirname, fileName)); } + public async waitForDataModelToBeUploaded(): Promise<void> { + const spinner = this.page.getByText(this.textMock('app_data_modelling.uploading_xsd')); + await expect(spinner).toBeHidden(); + } + public async getDataModelOptionValue(option: string): Promise<string> { return await this.page.getByRole('option', { name: option }).getAttribute('value'); } + public async waitForDataModelToAppear(dataModelName: string): Promise<void> { + const dataModelButton = this.page.getByRole('button', { name: dataModelName, exact: true }); + await expect(dataModelButton).toBeVisible(); + } + public async waitForSuccessAlertToDisappear(): Promise<void> { const successAlert = this.page.getByRole('alert', { name: this.textMock('schema_editor.datamodel_generation_success_message'), diff --git a/frontend/testing/playwright/tests/data-model/data-model.spec.ts b/frontend/testing/playwright/tests/data-model/data-model.spec.ts index 5b5975ac88d..6c22c238b55 100644 --- a/frontend/testing/playwright/tests/data-model/data-model.spec.ts +++ b/frontend/testing/playwright/tests/data-model/data-model.spec.ts @@ -30,9 +30,10 @@ test('Allows to add a datamodel, include an object with custom name and fields i // Add datamodel await dataModelPage.clickOnCreateNewDataModelButton(); - const dataModelName: string = 'datamodel'; + const dataModelName: string = 'testdatamodel'; await dataModelPage.typeDataModelName(dataModelName); await dataModelPage.clickOnCreateModelButton(); + await dataModelPage.waitForDataModelToAppear(dataModelName); // Add object await dataModelPage.clickOnAddPropertyButton(); @@ -116,6 +117,8 @@ test('Allows to upload and then delete an XSD file', async ({ page, testAppName const dataModelName: string = 'testdatamodel'; const dataModelFileName: string = `${dataModelName}.xsd`; await dataModelPage.selectFileToUpload(dataModelFileName); + await dataModelPage.waitForDataModelToBeUploaded(); + await dataModelPage.waitForDataModelToAppear(dataModelName); const dataModelComboboxValue = await dataModelPage.getDataModelOptionValue(dataModelName); expect(dataModelComboboxValue).toMatch(/\/testdatamodel.schema.json$/); diff --git a/frontend/testing/playwright/tests/ui-editor/ui-editor-data-model-binding-and-gitea.spec.ts b/frontend/testing/playwright/tests/ui-editor/ui-editor-data-model-binding-and-gitea.spec.ts index ba071af859c..982cb34ad7d 100644 --- a/frontend/testing/playwright/tests/ui-editor/ui-editor-data-model-binding-and-gitea.spec.ts +++ b/frontend/testing/playwright/tests/ui-editor/ui-editor-data-model-binding-and-gitea.spec.ts @@ -12,8 +12,6 @@ import { GiteaPage } from '../../pages/GiteaPage'; const getAppTestName = (app: string) => `bindings-${app}`; -// const WAIT_ONE_SECOND = 2000; - // Before the tests starts, we need to create the data model app test.beforeAll(async ({ testAppName, request, storageState }) => { // Create a new app @@ -80,6 +78,7 @@ test('That it is possible to add a data model binding, and that the files are up const dataModelName: string = 'testdatamodel'; await dataModelPage.typeDataModelName(dataModelName); await dataModelPage.clickOnCreateModelButton(); + await dataModelPage.waitForDataModelToAppear(dataModelName); await dataModelPage.clickOnGenerateDataModelButton(); await dataModelPage.checkThatSuccessAlertIsVisibleOnScreen(); await dataModelPage.waitForSuccessAlertToDisappear();