This is an automated email from the ASF dual-hosted git repository. dominikriemer pushed a commit to branch fix-cypress-tests-dashboard-sites in repository https://gitbox.apache.org/repos/asf/streampipes.git
commit 1b0d128749af830a6c6733e1820deb6ace944e53 Author: Dominik Riemer <[email protected]> AuthorDate: Sat Jun 20 15:07:22 2026 +0200 fix: Modify several cypress tests --- ui/cypress/support/utils/asset/AssetBtns.ts | 4 ++ ui/cypress/support/utils/asset/AssetUtils.ts | 36 ++++++++++++++++++ ui/cypress/support/utils/chart/ChartBtns.ts | 11 +++++- ui/cypress/support/utils/chart/ChartUtils.ts | 6 ++- .../utils/configuration/ConfigurationUtils.ts | 4 +- .../support/utils/configuration/SiteUtils.ts | 13 +++++++ .../utils/connect/ConnectEventSchemaUtils.ts | 11 +++++- ui/cypress/support/utils/shared/SharedUtils.ts | 4 ++ ui/cypress/support/utils/user/PermissionUtils.ts | 43 ++++++++++++++++++++++ .../tests/configuration/labels/labels.spec.ts | 2 +- ui/cypress/tests/configuration/sites/sites.spec.ts | 2 +- ui/cypress/tests/connect/editAdapter.smoke.spec.ts | 1 + .../userManagement/testUserRoleAssets.spec.ts | 17 ++++----- 13 files changed, 137 insertions(+), 17 deletions(-) diff --git a/ui/cypress/support/utils/asset/AssetBtns.ts b/ui/cypress/support/utils/asset/AssetBtns.ts index 8248d1eae8..25b7538938 100644 --- a/ui/cypress/support/utils/asset/AssetBtns.ts +++ b/ui/cypress/support/utils/asset/AssetBtns.ts @@ -63,6 +63,10 @@ export class AssetBtns { return cy.dataCy('edit-asset-' + assetName, { timeout: 10000 }); } + public static manageAssetBtn(assetName: string) { + return cy.dataCy('open-manage-' + assetName, { timeout: 10000 }); + } + public static deleteAssetBtn(assetName: string) { return cy.dataCy('delete-asset-' + assetName, { timeout: 10000 }); } diff --git a/ui/cypress/support/utils/asset/AssetUtils.ts b/ui/cypress/support/utils/asset/AssetUtils.ts index a408bd8418..3bce2762b4 100644 --- a/ui/cypress/support/utils/asset/AssetUtils.ts +++ b/ui/cypress/support/utils/asset/AssetUtils.ts @@ -22,6 +22,7 @@ import { GeneralUtils } from '../GeneralUtils'; import { Asset } from '../../model/Asset'; import { Isa95Type } from '../../../../projects/streampipes/platform-services/src/lib/model/gen/streampipes-model'; import { AssetBuilder } from '../../builder/AssetBuilder'; +import { PermissionUtils } from '../user/PermissionUtils'; export class AssetUtils { public static goToAssets() { @@ -130,6 +131,41 @@ export class AssetUtils { AssetBtns.editAssetBtn(assetName).should('not.exist'); } + public static openManageAsset(assetName: string) { + GeneralUtils.openMenuForRow(assetName); + AssetBtns.manageAssetBtn(assetName).should('be.visible').click(); + } + + public static changeOwnership(assetName: string, email: string) { + AssetUtils.openManageAsset(assetName); + PermissionUtils.changeOwnershipInManageDialog(email); + } + + public static markAsPublic(assetName: string) { + AssetUtils.openManageAsset(assetName); + PermissionUtils.markElementAsPublicInManageDialog(); + } + + public static authorizeUser(assetName: string, email: string) { + AssetUtils.openManageAsset(assetName); + PermissionUtils.authorizeUserInManageDialog(email); + } + + public static authorizeGroup(assetName: string, groupName: string) { + AssetUtils.openManageAsset(assetName); + PermissionUtils.authorizeGroupInManageDialog(groupName); + } + + public static validateUserCanChangePermissions(assetName: string) { + AssetUtils.openManageAsset(assetName); + PermissionUtils.validateUserCanChangePermissionsInManageDialog(); + } + + public static validateUserCanNotChangePermissions(assetName: string) { + AssetUtils.openManageAsset(assetName); + PermissionUtils.validateUserCanNotChangePermissionsInManageDialog(); + } + public static checkAmountOfAssetsGreaterThan(amount: number) { cy.dataCy('assets-table', { timeout: 10000 }).should( 'have.length.greaterThan', diff --git a/ui/cypress/support/utils/chart/ChartBtns.ts b/ui/cypress/support/utils/chart/ChartBtns.ts index 5b24ae3e95..559c61ec48 100644 --- a/ui/cypress/support/utils/chart/ChartBtns.ts +++ b/ui/cypress/support/utils/chart/ChartBtns.ts @@ -81,8 +81,15 @@ export class ChartBtns { return cy.dataCy('open-new-data-view', { timeout: 10000 }); } - public static addDataViewBtn(dataViewName) { - return cy.dataCy('add-data-view-btn-' + dataViewName); + public static addDataViewBtn(dataViewName: string) { + return cy.dataCy( + 'add-data-view-btn-' + dataViewName.replaceAll(' ', ''), + { timeout: 10000 }, + ); + } + + public static refreshChartSelectionBtn() { + return cy.dataCy('refresh-chart-button'); } public static newDashboardDialogBtn() { diff --git a/ui/cypress/support/utils/chart/ChartUtils.ts b/ui/cypress/support/utils/chart/ChartUtils.ts index 12a38e78f1..07282169df 100644 --- a/ui/cypress/support/utils/chart/ChartUtils.ts +++ b/ui/cypress/support/utils/chart/ChartUtils.ts @@ -288,7 +288,11 @@ export class ChartUtils { this.getFutureDate(), ); } - ChartBtns.addDataViewBtn(dataViewName).click(); + + ChartBtns.refreshChartSelectionBtn().should('not.be.disabled'); + ChartBtns.addDataViewBtn(dataViewName) + .should('be.visible') + .click('bottom', { scrollBehavior: false }); } public static createAndEditDataView() { diff --git a/ui/cypress/support/utils/configuration/ConfigurationUtils.ts b/ui/cypress/support/utils/configuration/ConfigurationUtils.ts index 7a0675e040..8219c18c1f 100644 --- a/ui/cypress/support/utils/configuration/ConfigurationUtils.ts +++ b/ui/cypress/support/utils/configuration/ConfigurationUtils.ts @@ -55,8 +55,10 @@ export class ConfigurationUtils { }); } - public static deleteLabel() { + public static deleteLabel(labelName: string) { cy.dataCy('delete-label-button').click(); + cy.dataCy('confirm-delete').should('be.visible').click(); + cy.contains('[data-cy="label-text"]', labelName).should('not.exist'); cy.dataCy('no-table-entries').should('be.visible'); } } diff --git a/ui/cypress/support/utils/configuration/SiteUtils.ts b/ui/cypress/support/utils/configuration/SiteUtils.ts index ec20e97530..a0010eaf3f 100644 --- a/ui/cypress/support/utils/configuration/SiteUtils.ts +++ b/ui/cypress/support/utils/configuration/SiteUtils.ts @@ -66,4 +66,17 @@ export class SiteUtils { public static openEditSiteDialog() { cy.dataCy(SiteUtils.BUTTON_EDIT_SITE).first().click(); } + + public static deleteSite(siteName: string) { + const siteSelectorName = siteName.replaceAll(' ', '_'); + + cy.dataCy( + `${SiteUtils.BUTTON_DELETE_SITE}-${siteSelectorName}`, + ).click(); + cy.dataCy('confirm-delete').should('be.visible').click(); + cy.contains( + `[data-cy="${SiteUtils.LABEL_TABLE_NAME}"]`, + siteName, + ).should('not.exist'); + } } diff --git a/ui/cypress/support/utils/connect/ConnectEventSchemaUtils.ts b/ui/cypress/support/utils/connect/ConnectEventSchemaUtils.ts index 6e3a878c21..f446a78688 100644 --- a/ui/cypress/support/utils/connect/ConnectEventSchemaUtils.ts +++ b/ui/cypress/support/utils/connect/ConnectEventSchemaUtils.ts @@ -41,9 +41,16 @@ export class ConnectEventSchemaUtils { propertyName: string, propertyScope: string, ) { - cy.dataCy('property-scope-' + propertyName, { timeout: 10000 }).click(); + ConnectBtns.configureFieldsEventPreviewResult().should('be.visible'); + cy.dataCy('property-scope-' + propertyName, { timeout: 10000 }) + .should('be.visible') + .click(); - cy.dataCy(propertyScope + '-property-scope-value').click(); + cy.dataCy(propertyScope + '-property-scope-value', { + timeout: 10000, + }) + .should('be.visible') + .click(); } public static addTimestampProperty() { diff --git a/ui/cypress/support/utils/shared/SharedUtils.ts b/ui/cypress/support/utils/shared/SharedUtils.ts index cd80f965f0..6346a66f53 100644 --- a/ui/cypress/support/utils/shared/SharedUtils.ts +++ b/ui/cypress/support/utils/shared/SharedUtils.ts @@ -22,4 +22,8 @@ export class SharedUtils { public static confirmDialogVisible() { SharedBtns.confirmDialog().should('be.visible'); } + + public static confirmDialogClosed() { + SharedBtns.confirmDialog().should('not.exist'); + } } diff --git a/ui/cypress/support/utils/user/PermissionUtils.ts b/ui/cypress/support/utils/user/PermissionUtils.ts index 5500d8ea8d..9af95f7877 100644 --- a/ui/cypress/support/utils/user/PermissionUtils.ts +++ b/ui/cypress/support/utils/user/PermissionUtils.ts @@ -46,12 +46,23 @@ export class PermissionUtils { PermissionUtils.save(); } + public static changeOwnershipInManageDialog(email: string) { + cy.dataCy('owner-select').click(); + cy.get(`[data-cy="owner-option-${email}"]`, { timeout: 10000 }).click(); + PermissionUtils.saveManageDialog(); + } + public static markElementAsPublic(resourceName: string) { PermissionUtils.openManagePermissions(resourceName); StaticPropertyUtils.clickCheckbox('permission-public-element'); PermissionUtils.save(); } + public static markElementAsPublicInManageDialog() { + StaticPropertyUtils.clickCheckbox('permission-public-element'); + PermissionUtils.saveManageDialog(); + } + public static authorizeUser(resourceName: string, email: string) { PermissionUtils.openManagePermissions(resourceName); @@ -61,6 +72,13 @@ export class PermissionUtils { PermissionUtils.save(); } + public static authorizeUserInManageDialog(email: string) { + cy.dataCy('authorized-user').type(email); + cy.get(`[data-cy="user-option-${email}"]`).click(); + + PermissionUtils.saveManageDialog(); + } + public static authorizeGroup(resourceName: string, groupName: string) { PermissionUtils.openManagePermissions(resourceName); cy.dataCy('authorized-group').type(groupName); @@ -69,6 +87,21 @@ export class PermissionUtils { PermissionUtils.save(); } + public static authorizeGroupInManageDialog(groupName: string) { + cy.dataCy('authorized-group').type(groupName); + cy.get(`[data-cy="group-option-${groupName}"]`).click(); + + PermissionUtils.saveManageDialog(); + } + + public static saveManageDialog() { + cy.dataCy('sp-manage-save').should('be.visible').click(); + } + + public static cancelManageDialog() { + cy.dataCy('sp-manage-cancel').should('be.visible').click(); + } + public static save() { //necessary as the old permission dialog is currently not replaced everywhere cy.get('body').then($body => { @@ -124,4 +157,14 @@ export class PermissionUtils { cy.dataCy('permission-public-element').should('exist'); PermissionUtils.cancel(); } + + public static validateUserCanChangePermissionsInManageDialog() { + cy.dataCy('permission-public-element').should('exist'); + PermissionUtils.cancelManageDialog(); + } + + public static validateUserCanNotChangePermissionsInManageDialog() { + cy.dataCy('warning-permissions-managed-by-owner').should('exist'); + PermissionUtils.cancelManageDialog(); + } } diff --git a/ui/cypress/tests/configuration/labels/labels.spec.ts b/ui/cypress/tests/configuration/labels/labels.spec.ts index aececff1ac..1f2c268cc4 100644 --- a/ui/cypress/tests/configuration/labels/labels.spec.ts +++ b/ui/cypress/tests/configuration/labels/labels.spec.ts @@ -32,6 +32,6 @@ describe('Add and Delete Label', () => { ConfigurationUtils.checkLabel(labelName); - ConfigurationUtils.deleteLabel(); + ConfigurationUtils.deleteLabel(labelName); }); }); diff --git a/ui/cypress/tests/configuration/sites/sites.spec.ts b/ui/cypress/tests/configuration/sites/sites.spec.ts index 5b0fb8b861..fe65d63378 100644 --- a/ui/cypress/tests/configuration/sites/sites.spec.ts +++ b/ui/cypress/tests/configuration/sites/sites.spec.ts @@ -58,7 +58,7 @@ describe('Test configuration of sites', () => { .first() .should('have.text', ' Area B '); - cy.dataCy(SiteUtils.BUTTON_DELETE_SITE + '-My_modified_Site').click(); + SiteUtils.deleteSite(newSite); cy.dataCy(SiteUtils.LABEL_TABLE_NAME).should('have.length', 0); }); }); diff --git a/ui/cypress/tests/connect/editAdapter.smoke.spec.ts b/ui/cypress/tests/connect/editAdapter.smoke.spec.ts index 0a06983852..7009e12382 100644 --- a/ui/cypress/tests/connect/editAdapter.smoke.spec.ts +++ b/ui/cypress/tests/connect/editAdapter.smoke.spec.ts @@ -105,6 +105,7 @@ describe('Test Edit Adapter', () => { ConnectUtils.finishEventSchemaConfiguration(); SharedUtils.confirmDialogVisible(); SharedBtns.confirmDialogConfirmBtn().click(); + SharedUtils.confirmDialogClosed(); ConnectEventSchemaUtils.markPropertyAsTimestamp('timestamp'); storeAndStartEditedAdapter(); diff --git a/ui/cypress/tests/userManagement/testUserRoleAssets.spec.ts b/ui/cypress/tests/userManagement/testUserRoleAssets.spec.ts index f30bc938b0..ca3b79410a 100644 --- a/ui/cypress/tests/userManagement/testUserRoleAssets.spec.ts +++ b/ui/cypress/tests/userManagement/testUserRoleAssets.spec.ts @@ -20,10 +20,9 @@ import { UserRole } from '../../../src/app/core/auth/user-role.enum'; import { UserUtils } from '../../support/utils/UserUtils'; import { User } from '../../support/model/User'; import { AssetUtils } from '../../support/utils/asset/AssetUtils'; -import { PermissionUtils } from '../../support/utils/user/PermissionUtils'; import { AssetBuilder } from '../../support/builder/AssetBuilder'; -describe('Test User Roles for Dashboards', () => { +describe('Test User Roles for Assets', () => { const assetName = 'test-asset'; let assetUser1: User; let assetAdmin1: User; @@ -61,7 +60,7 @@ describe('Test User Roles for Dashboards', () => { it('Make asset public', () => { setup(); - PermissionUtils.markElementAsPublic(assetName); + AssetUtils.markAsPublic(assetName); assetIsVisibleAndEditableCanChangePermissions(UserUtils.adminUser); @@ -73,7 +72,7 @@ describe('Test User Roles for Dashboards', () => { it('Share asset with other user and change ownership', () => { setup(); - PermissionUtils.authorizeUser(assetName, assetAdmin2.email); + AssetUtils.authorizeUser(assetName, assetAdmin2.email); assetIsVisibleAndEditableCanChangePermissions(UserUtils.adminUser); @@ -83,7 +82,7 @@ describe('Test User Roles for Dashboards', () => { UserUtils.switchUser(assetAdmin1); AssetUtils.goToAssets(); - PermissionUtils.changeOwnership(assetName, assetAdmin2.email); + AssetUtils.changeOwnership(assetName, assetAdmin2.email); assetIsNotVisible(assetAdmin1); @@ -101,7 +100,7 @@ describe('Test User Roles for Dashboards', () => { setup(); - PermissionUtils.authorizeGroup(assetName, assetAdminGroup); + AssetUtils.authorizeGroup(assetName, assetAdminGroup); assetIsVisibleAndEditableCanChangePermissions(UserUtils.adminUser); @@ -122,7 +121,7 @@ describe('Test User Roles for Dashboards', () => { AssetUtils.checkAmountOfAssets(1); AssetUtils.checkAssetCanBeEdited(assetName); - PermissionUtils.validateUserCanChangePermissions(assetName); + AssetUtils.validateUserCanChangePermissions(assetName); } function assetIsVisibleAndEditableCannotChangePermissions(user: User) { @@ -130,7 +129,7 @@ describe('Test User Roles for Dashboards', () => { AssetUtils.checkAmountOfAssets(1); AssetUtils.checkAssetCanBeEdited(assetName); - PermissionUtils.validateUserCanNotChangePermissions(assetName); + AssetUtils.validateUserCanNotChangePermissions(assetName); } function assetIsVisibleButNotEditable(user: User) { @@ -138,7 +137,7 @@ describe('Test User Roles for Dashboards', () => { AssetUtils.checkAmountOfAssets(1); AssetUtils.checkAssetCanNotBeEdited(assetName); - PermissionUtils.validateUserCanNotChangePermissions(assetName); + AssetUtils.validateUserCanNotChangePermissions(assetName); } function assetIsNotVisible(user: User) {
