diff --git a/web/cypress/e2e/perses/99.coo_rbac_perses_user1.cy.ts b/web/cypress/e2e/perses/99.coo_rbac_perses_user1.cy.ts index 50f576fb..bd4256c2 100644 --- a/web/cypress/e2e/perses/99.coo_rbac_perses_user1.cy.ts +++ b/web/cypress/e2e/perses/99.coo_rbac_perses_user1.cy.ts @@ -63,6 +63,7 @@ describe('RBAC User1: COO - Dashboards (Perses) - Administrator perspective', { }); beforeEach(() => { + nav.sidenav.clickNavLink(['Observe', 'Dashboards']); nav.sidenav.clickNavLink(['Observe', 'Dashboards (Perses)']); }); diff --git a/web/cypress/e2e/perses/99.coo_rbac_perses_user2.cy.ts b/web/cypress/e2e/perses/99.coo_rbac_perses_user2.cy.ts index 884933c3..5ce94391 100644 --- a/web/cypress/e2e/perses/99.coo_rbac_perses_user2.cy.ts +++ b/web/cypress/e2e/perses/99.coo_rbac_perses_user2.cy.ts @@ -63,6 +63,7 @@ describe('RBAC User2: COO - Dashboards (Perses) - Administrator perspective', { }); beforeEach(() => { + nav.sidenav.clickNavLink(['Observe', 'Dashboards']); nav.sidenav.clickNavLink(['Observe', 'Dashboards (Perses)']); cy.changeNamespace('All Projects'); }); diff --git a/web/cypress/e2e/perses/99.coo_rbac_perses_user3.cy.ts b/web/cypress/e2e/perses/99.coo_rbac_perses_user3.cy.ts index 61e99a8d..d41f7077 100644 --- a/web/cypress/e2e/perses/99.coo_rbac_perses_user3.cy.ts +++ b/web/cypress/e2e/perses/99.coo_rbac_perses_user3.cy.ts @@ -63,6 +63,7 @@ describe('RBAC User3: COO - Dashboards (Perses) - Administrator perspective', { }); beforeEach(() => { + nav.sidenav.clickNavLink(['Observe', 'Dashboards']); nav.sidenav.clickNavLink(['Observe', 'Dashboards (Perses)']); }); diff --git a/web/cypress/e2e/perses/99.coo_rbac_perses_user4.cy.ts b/web/cypress/e2e/perses/99.coo_rbac_perses_user4.cy.ts index c246c54a..eb08f9ec 100644 --- a/web/cypress/e2e/perses/99.coo_rbac_perses_user4.cy.ts +++ b/web/cypress/e2e/perses/99.coo_rbac_perses_user4.cy.ts @@ -63,6 +63,7 @@ describe('RBAC User4: COO - Dashboards (Perses) - Administrator perspective', { }); beforeEach(() => { + nav.sidenav.clickNavLink(['Observe', 'Dashboards']); nav.sidenav.clickNavLink(['Observe', 'Dashboards (Perses)']); }); diff --git a/web/cypress/e2e/perses/99.coo_rbac_perses_user5.cy.ts b/web/cypress/e2e/perses/99.coo_rbac_perses_user5.cy.ts index fcc72946..e7361661 100644 --- a/web/cypress/e2e/perses/99.coo_rbac_perses_user5.cy.ts +++ b/web/cypress/e2e/perses/99.coo_rbac_perses_user5.cy.ts @@ -63,6 +63,7 @@ describe('RBAC User5: COO - Dashboards (Perses) - Administrator perspective', { }); beforeEach(() => { + nav.sidenav.clickNavLink(['Observe', 'Dashboards']); nav.sidenav.clickNavLink(['Observe', 'Dashboards (Perses)']); }); diff --git a/web/cypress/e2e/perses/99.coo_rbac_perses_user6.cy.ts b/web/cypress/e2e/perses/99.coo_rbac_perses_user6.cy.ts index 6fd39609..0d54fdb4 100644 --- a/web/cypress/e2e/perses/99.coo_rbac_perses_user6.cy.ts +++ b/web/cypress/e2e/perses/99.coo_rbac_perses_user6.cy.ts @@ -63,6 +63,7 @@ describe('RBAC User6: COO - Dashboards (Perses) - Administrator perspective', { }); beforeEach(() => { + nav.sidenav.clickNavLink(['Observe', 'Dashboards']); nav.sidenav.clickNavLink(['Observe', 'Dashboards (Perses)']); }); diff --git a/web/cypress/fixtures/coo/coo141_perses/import/acm-vm-status.json b/web/cypress/fixtures/coo/coo141_perses/import/acm-vm-status.json index 5e66d30e..33d0e64a 100644 --- a/web/cypress/fixtures/coo/coo141_perses/import/acm-vm-status.json +++ b/web/cypress/fixtures/coo/coo141_perses/import/acm-vm-status.json @@ -521,10 +521,10 @@ "schemaVersion": 30, "style": "dark", "tags": [ - "ACM", - "KubeVirt", - "OpenShift", - "Virtualization" + "acm", + "kubevirt", + "openshift", + "virtualization" ], "templating": { "list": [ diff --git a/web/cypress/fixtures/perses/constants.ts b/web/cypress/fixtures/perses/constants.ts index 610ab9a5..e7bcf5ce 100644 --- a/web/cypress/fixtures/perses/constants.ts +++ b/web/cypress/fixtures/perses/constants.ts @@ -139,10 +139,11 @@ export const persesDashboardsAddPanelAddQueryType ={ } export const persesCreateDashboard = { - DIALOG_MAX_LENGTH_VALIDATION: 'Danger alert:bad request: code=400, message=cannot contain more than 75 characters, internal=cannot contain more than 75 characters', + DIALOG_MAX_LENGTH_VALIDATION: 'Must be 75 or fewer characters long: error status;', DIALOG_DUPLICATED_NAME_PF_VALIDATION_PREFIX: 'Dashboard name ', - DIALOG_DUPLICATED_NAME_PF_VALIDATION_SUFFIX: ' already exists in this project: error status;', - DIALOG_DUPLICATED_NAME_BKD_VALIDATION: 'Danger alert:document already exists', + DIALOG_DUPLICATED_NAME_PF_VALIDATION_SUFFIX: ' already exists in ', + DIALOG_DUPLICATED_NAME_PF_VALIDATION_SUFFIX_PROJECT: ' project!: error status;', + DIALOG_DUPLICATED_NAME_BKD_VALIDATION: 'Danger alert:Could not create dashboard. e: document already exists', } export const persesDashboardsEmptyDashboard = { @@ -170,6 +171,6 @@ export const persesDashboardsImportDashboard = { DIALOG_UNABLE_TO_DETECT_DASHBOARD_FORMAT: 'Unable to detect dashboard format. Please provide a valid Perses or Grafana dashboard.', DIALOG_GRAFANA_DASHBOARD_DETECTED: 'Grafana dashboard detected. It will be automatically migrated to Perses format. Note: migration may be partial as not all Grafana features are supported.', DIALOG_PERSES_DASHBOARD_DETECTED: 'Perses dashboard detected.', - DIALOG_FAILED_TO_MIGRATE_GRAFANA_DASHBOARD: 'Danger alert:Failed to migrate dashboard: internal server error', - DIALOG_DUPLICATED_DASHBOARD_ERROR: 'Danger alert:document already exists', + DIALOG_FAILED_TO_MIGRATE_GRAFANA_DASHBOARD: 'Danger alert:Error migrating dashboard: Failed to migrate dashboard: internal server error', + DIALOG_DUPLICATED_DASHBOARD_ERROR: 'Danger alert:Error importing dashboard: document already exists', } \ No newline at end of file diff --git a/web/cypress/support/perses/00.coo_bvt_perses_admin_1.cy.ts b/web/cypress/support/perses/00.coo_bvt_perses_admin_1.cy.ts index b9efd17a..e3473207 100644 --- a/web/cypress/support/perses/00.coo_bvt_perses_admin_1.cy.ts +++ b/web/cypress/support/perses/00.coo_bvt_perses_admin_1.cy.ts @@ -106,7 +106,7 @@ export function testBVTCOOPerses1(perspective: PerspectiveConfig) { cy.log(`5.5. Click on the Kebab icon - Delete`); nav.sidenav.clickNavLink(['Observe', 'Alerting']); - nav.sidenav.clickNavLink(['Observe', 'Dashboards (Perses)']);s + nav.sidenav.clickNavLink(['Observe', 'Dashboards (Perses)']); listPersesDashboardsPage.filter.byName(persesDashboardsDashboardDropdownPersesDev.PERSES_DASHBOARD_SAMPLE[0] + ' - Renamed'); listPersesDashboardsPage.countDashboards('1'); diff --git a/web/cypress/support/perses/01.coo_list_perses_admin_namespace.cy.ts b/web/cypress/support/perses/01.coo_list_perses_admin_namespace.cy.ts index e6178580..0401412e 100644 --- a/web/cypress/support/perses/01.coo_list_perses_admin_namespace.cy.ts +++ b/web/cypress/support/perses/01.coo_list_perses_admin_namespace.cy.ts @@ -2,6 +2,7 @@ import { persesDashboardsDashboardDropdownCOO, persesDashboardsDashboardDropdown import { commonPages } from '../../views/common'; import { listPersesDashboardsPage } from "../../views/perses-dashboards-list-dashboards"; import { persesDashboardsPage } from '../../views/perses-dashboards'; +import { nav } from '../../views/nav'; export interface PerspectiveConfig { name: string; @@ -69,10 +70,10 @@ export function testCOOListPersesNamespace(perspective: PerspectiveConfig) { listPersesDashboardsPage.emptyState(); listPersesDashboardsPage.countDashboards('0'); - cy.log(`1.11. Clear all filters`); - listPersesDashboardsPage.clearAllFilters(); + nav.sidenav.clickNavLink(['Observe', 'Alerting']); + nav.sidenav.clickNavLink(['Observe', 'Dashboards (Perses)']); - cy.log(`1.12. Click on a dashboard`); + cy.log(`1.11. Click on a dashboard`); listPersesDashboardsPage.clickDashboard(persesDashboardsDashboardDropdownCOO.APM_DASHBOARD[0]); //TODO: change back to shouldBeLoaded when customizable-dashboards gets merged persesDashboardsPage.shouldBeLoaded1(); @@ -121,8 +122,8 @@ export function testCOOListPersesNamespace(perspective: PerspectiveConfig) { listPersesDashboardsPage.countDashboards('0'); cy.log(`2.7. Search for the renamed dashboard`); - listPersesDashboardsPage.clearAllFilters(); - cy.changeNamespace('All Projects'); + nav.sidenav.clickNavLink(['Observe', 'Alerting']); + nav.sidenav.clickNavLink(['Observe', 'Dashboards (Perses)']); listPersesDashboardsPage.filter.byName(persesDashboardsDashboardDropdownPersesDev.PERSES_DASHBOARD_SAMPLE[0] + ' - Renamed'); listPersesDashboardsPage.countDashboards('0'); listPersesDashboardsPage.clearAllFilters(); diff --git a/web/cypress/support/perses/99.coo_rbac_perses_user1.cy.ts b/web/cypress/support/perses/99.coo_rbac_perses_user1.cy.ts index 46bac951..183d5a43 100644 --- a/web/cypress/support/perses/99.coo_rbac_perses_user1.cy.ts +++ b/web/cypress/support/perses/99.coo_rbac_perses_user1.cy.ts @@ -198,12 +198,12 @@ export function testCOORBACPersesTestsDevUser1(perspective: PerspectiveConfig) { listPersesDashboardsPage.assertCreateButtonIsEnabled(); listPersesDashboardsPage.clickCreateButton(); persesCreateDashboardsPage.createDashboardShouldBeLoaded(); - persesCreateDashboardsPage.assertProjectDropdown('openshift-cluster-observability-operator'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('observ-test'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('perses-dev'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('openshift-monitoring'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace3'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace4'); + persesCreateDashboardsPage.assertProjectDropdown('openshift-cluster-observability-operator'); persesCreateDashboardsPage.createDashboardDialogCancelButton(); cy.log(`4.4 change namespace to openshift-cluster-observability-operator`); @@ -436,12 +436,12 @@ export function testCOORBACPersesTestsDevUser1(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickDuplicateOption(); cy.log(`8.5. Assert project dropdown options`); - listPersesDashboardsPage.assertDuplicateProjectDropdownExists('openshift-cluster-observability-operator'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('observ-test'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('perses-dev'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('empty-namespace3'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('empty-namespace4'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('openshift-monitoring'); + listPersesDashboardsPage.assertDuplicateProjectDropdownExists('openshift-cluster-observability-operator'); cy.log(`8.6. Enter new dashboard name`); listPersesDashboardsPage.duplicateDashboardEnterName(dashboardName); @@ -459,7 +459,6 @@ export function testCOORBACPersesTestsDevUser1(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickKebabIcon(); listPersesDashboardsPage.clickDeleteOption(); listPersesDashboardsPage.deleteDashboardDeleteButton(); - persesDashboardsPage.closeSuccessAlert(); listPersesDashboardsPage.emptyState(); listPersesDashboardsPage.countDashboards('0'); nav.sidenav.clickNavLink(['Observe', 'Alerting']); @@ -477,21 +476,20 @@ export function testCOORBACPersesTestsDevUser1(perspective: PerspectiveConfig) { cy.log(`9.1. use sidebar nav to go to Observe > Dashboards (Perses)`); listPersesDashboardsPage.shouldBeLoaded(); - cy.log(`9.3. Filter by Name`); + cy.log(`9.2. Filter by Name`); listPersesDashboardsPage.filter.byName('Testing Dashboard - UP'); listPersesDashboardsPage.countDashboards('1'); - cy.log(`9.4. Click on the Kebab icon - Delete`); + cy.log(`9.3. Click on the Kebab icon - Delete`); listPersesDashboardsPage.clickKebabIcon(); listPersesDashboardsPage.clickDeleteOption(); listPersesDashboardsPage.deleteDashboardDeleteButton(); - persesDashboardsPage.closeSuccessAlert(); listPersesDashboardsPage.emptyState(); listPersesDashboardsPage.countDashboards('0'); nav.sidenav.clickNavLink(['Observe', 'Alerting']); nav.sidenav.clickNavLink(['Observe', 'Dashboards (Perses)']); - cy.log(`9.5. Filter by Name`); + cy.log(`9.4. Filter by Name`); listPersesDashboardsPage.filter.byName('Testing Dashboard - UP'); listPersesDashboardsPage.countDashboards('0'); nav.sidenav.clickNavLink(['Observe', 'Alerting']); @@ -514,12 +512,12 @@ export function testCOORBACPersesTestsDevUser1(perspective: PerspectiveConfig) { persesImportDashboardsPage.assertPersesDashboardDetected(); cy.log(`10.4. Verify project dropdown options`); - persesImportDashboardsPage.assertProjectDropdown('openshift-cluster-observability-operator'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('observ-test'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('perses-dev'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('openshift-monitoring'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace3'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace4'); + persesImportDashboardsPage.assertProjectDropdown('openshift-cluster-observability-operator'); persesImportDashboardsPage.clickCancelButton(); cy.log(`10.5 change namespace to openshift-cluster-observability-operator`); diff --git a/web/cypress/support/perses/99.coo_rbac_perses_user3.cy.ts b/web/cypress/support/perses/99.coo_rbac_perses_user3.cy.ts index 9d930a0d..7fd38362 100644 --- a/web/cypress/support/perses/99.coo_rbac_perses_user3.cy.ts +++ b/web/cypress/support/perses/99.coo_rbac_perses_user3.cy.ts @@ -48,12 +48,12 @@ export function testCOORBACPersesTestsDevUser3(perspective: PerspectiveConfig) { listPersesDashboardsPage.assertCreateButtonIsEnabled(); listPersesDashboardsPage.clickCreateButton(); persesCreateDashboardsPage.createDashboardShouldBeLoaded(); - persesCreateDashboardsPage.assertProjectDropdown('empty-namespace3'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('openshift-cluster-observability-operator'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('observ-test'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('perses-dev'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('openshift-monitoring'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace4'); + persesCreateDashboardsPage.assertProjectDropdown('empty-namespace3'); persesCreateDashboardsPage.createDashboardDialogCancelButton(); cy.log(`1.3. empty-namespace3 validation - Dashboard search - empty state`); @@ -62,12 +62,13 @@ export function testCOORBACPersesTestsDevUser3(perspective: PerspectiveConfig) { listPersesDashboardsPage.assertCreateButtonIsEnabled(); listPersesDashboardsPage.clickCreateButton(); persesCreateDashboardsPage.createDashboardShouldBeLoaded(); - persesCreateDashboardsPage.assertProjectDropdown('empty-namespace3'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('openshift-cluster-observability-operator'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('observ-test'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('perses-dev'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('openshift-monitoring'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace4'); + persesCreateDashboardsPage.assertProjectDropdown('empty-namespace3'); + persesCreateDashboardsPage.createDashboardDialogCancelButton(); cy.log(`1.4. openshift-monitoring validation - Dashboard search - empty state`); @@ -76,12 +77,12 @@ export function testCOORBACPersesTestsDevUser3(perspective: PerspectiveConfig) { listPersesDashboardsPage.assertCreateButtonIsEnabled(); listPersesDashboardsPage.clickCreateButton(); persesCreateDashboardsPage.createDashboardShouldBeLoaded(); - persesCreateDashboardsPage.assertProjectDropdown('empty-namespace3'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('openshift-cluster-observability-operator'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('observ-test'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('perses-dev'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('openshift-monitoring'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace4'); + persesCreateDashboardsPage.assertProjectDropdown('empty-namespace3'); persesCreateDashboardsPage.createDashboardDialogCancelButton(); }); @@ -101,11 +102,11 @@ export function testCOORBACPersesTestsDevUser3(perspective: PerspectiveConfig) { listPersesDashboardsPage.assertCreateButtonIsEnabled(); listPersesDashboardsPage.clickCreateButton(); persesCreateDashboardsPage.createDashboardShouldBeLoaded(); - persesCreateDashboardsPage.assertProjectDropdown('empty-namespace3'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('observ-test'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('perses-dev'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('openshift-monitoring'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace4'); + persesCreateDashboardsPage.assertProjectDropdown('empty-namespace3'); persesCreateDashboardsPage.createDashboardDialogCancelButton(); cy.log(`2.4 change namespace to openshift-monitoring`); @@ -317,12 +318,12 @@ export function testCOORBACPersesTestsDevUser3(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickDuplicateOption(); cy.log(`6.5. Assert project dropdown options`); - listPersesDashboardsPage.assertDuplicateProjectDropdownExists('empty-namespace3'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('openshift-cluster-observability-operator'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('openshift-monitoring'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('observ-test'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('perses-dev'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('empty-namespace4'); + listPersesDashboardsPage.assertDuplicateProjectDropdownExists('empty-namespace3'); cy.log(`6.6. Enter new dashboard name`); listPersesDashboardsPage.duplicateDashboardEnterName(duplicatedDashboardName); @@ -340,7 +341,6 @@ export function testCOORBACPersesTestsDevUser3(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickKebabIcon(); listPersesDashboardsPage.clickDeleteOption(); listPersesDashboardsPage.deleteDashboardDeleteButton(); - persesDashboardsPage.closeSuccessAlert(); listPersesDashboardsPage.emptyState(); listPersesDashboardsPage.countDashboards('0'); @@ -393,12 +393,12 @@ export function testCOORBACPersesTestsDevUser3(perspective: PerspectiveConfig) { persesImportDashboardsPage.assertPersesDashboardDetected(); cy.log(`8.4. Verify project dropdown options`); - persesImportDashboardsPage.assertProjectDropdown('empty-namespace3'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('openshift-cluster-observability-operator'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('observ-test'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('perses-dev'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('openshift-monitoring'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace4'); + persesImportDashboardsPage.assertProjectDropdown('empty-namespace3'); persesImportDashboardsPage.clickCancelButton(); cy.log(`8.5 change namespace to openshift-monitoring`); diff --git a/web/cypress/support/perses/99.coo_rbac_perses_user5.cy.ts b/web/cypress/support/perses/99.coo_rbac_perses_user5.cy.ts index 3ef66916..258b2139 100644 --- a/web/cypress/support/perses/99.coo_rbac_perses_user5.cy.ts +++ b/web/cypress/support/perses/99.coo_rbac_perses_user5.cy.ts @@ -46,12 +46,12 @@ export function testCOORBACPersesTestsDevUser5(perspective: PerspectiveConfig) { listPersesDashboardsPage.assertCreateButtonIsEnabled(); listPersesDashboardsPage.clickCreateButton(); persesCreateDashboardsPage.createDashboardShouldBeLoaded(); - persesCreateDashboardsPage.assertProjectDropdown('openshift-monitoring'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('openshift-cluster-observability-operator'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('observ-test'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('perses-dev'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace3'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace4'); + persesCreateDashboardsPage.assertProjectDropdown('openshift-monitoring'); persesCreateDashboardsPage.createDashboardDialogCancelButton(); cy.log(`1.3. openshift-monitoring validation - Dashboard search - empty state`); @@ -60,12 +60,12 @@ export function testCOORBACPersesTestsDevUser5(perspective: PerspectiveConfig) { listPersesDashboardsPage.assertCreateButtonIsEnabled(); listPersesDashboardsPage.clickCreateButton(); persesCreateDashboardsPage.createDashboardShouldBeLoaded(); - persesCreateDashboardsPage.assertProjectDropdown('openshift-monitoring'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('openshift-cluster-observability-operator'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('observ-test'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('perses-dev'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace3'); persesCreateDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace4'); + persesCreateDashboardsPage.assertProjectDropdown('openshift-monitoring'); persesCreateDashboardsPage.createDashboardDialogCancelButton(); }); @@ -267,12 +267,12 @@ export function testCOORBACPersesTestsDevUser5(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickDuplicateOption(); cy.log(`5.5. Assert project dropdown options`); - listPersesDashboardsPage.assertDuplicateProjectDropdownExists('openshift-monitoring'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('openshift-cluster-observability-operator'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('empty-namespace3'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('observ-test'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('perses-dev'); listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists('empty-namespace4'); + listPersesDashboardsPage.assertDuplicateProjectDropdownExists('openshift-monitoring'); cy.log(`5.6. Enter new dashboard name`); listPersesDashboardsPage.duplicateDashboardEnterName(duplicatedDashboardName); @@ -342,12 +342,12 @@ export function testCOORBACPersesTestsDevUser5(perspective: PerspectiveConfig) { persesImportDashboardsPage.assertPersesDashboardDetected(); cy.log(`7.4. Verify project dropdown options`); - persesImportDashboardsPage.assertProjectDropdown('openshift-monitoring'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('openshift-cluster-observability-operator'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace3'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('observ-test'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('perses-dev'); persesImportDashboardsPage.assertProjectNotExistsInDropdown('empty-namespace4'); + persesImportDashboardsPage.assertProjectDropdown('openshift-monitoring'); persesImportDashboardsPage.clickCancelButton(); cy.log(`7.5. Change namespace to All Projects`); diff --git a/web/cypress/views/perses-dashboards-create-dashboard.ts b/web/cypress/views/perses-dashboards-create-dashboard.ts index 55a43389..30f5c68c 100644 --- a/web/cypress/views/perses-dashboards-create-dashboard.ts +++ b/web/cypress/views/perses-dashboards-create-dashboard.ts @@ -14,22 +14,22 @@ export const persesCreateDashboardsPage = { selectProject: (project: string) => { cy.log('persesCreateDashboardsPage.selectProject'); - cy.get(Classes.PersesCreateDashboardProjectDropdown).should('be.visible').click({ force: true }); + cy.byPFRole('dialog').find(Classes.PersesCreateDashboardProjectDropdown).click({ force: true }); cy.byAriaLabel(persesAriaLabels.dialogProjectInput).clear().type(project); cy.byPFRole('option').contains(project).should('be.visible').click({ force: true }); }, assertProjectDropdown: (project: string) => { cy.log('persesCreateDashboardsPage.assertProjectDropdown'); - cy.get(Classes.PersesCreateDashboardProjectDropdown).should('be.visible').click({ force: true }); + cy.byPFRole('dialog').find(Classes.PersesCreateDashboardProjectDropdown).click({ force: true }); cy.byAriaLabel(persesAriaLabels.dialogProjectInput).clear().type(project); cy.byPFRole('option').contains(project).should('be.visible'); - cy.get(Classes.PersesCreateDashboardProjectDropdown).should('be.visible').click({ force: true }); + cy.byPFRole('option').contains(project).should('be.visible').click({ force: true }); }, assertProjectNotExistsInDropdown: (project: string) => { cy.log('persesCreateDashboardsPage.assertProjectNotExistsInDropdown'); - cy.get(Classes.PersesCreateDashboardProjectDropdown).should('be.visible').click({ force: true }); + cy.byPFRole('dialog').find(Classes.PersesCreateDashboardProjectDropdown).click({ force: true }); cy.byPFRole('listbox').find('li').then((items) => { items.each((index, item) => { cy.log('Project: ' + item.innerText); @@ -38,7 +38,7 @@ export const persesCreateDashboardsPage = { } }); }); - cy.get(Classes.PersesCreateDashboardProjectDropdown).should('be.visible').click({ force: true }); + cy.byPFRole('dialog').find(Classes.PersesCreateDashboardProjectDropdown).click({ force: true }); }, enterDashboardName: (name: string) => { @@ -54,20 +54,17 @@ export const persesCreateDashboardsPage = { assertMaxLengthValidation: () => { cy.log('persesCreateDashboardsPage.assertMaxLengthValidation'); - cy.byPFRole('dialog').find('h4').should('have.text', persesCreateDashboard.DIALOG_MAX_LENGTH_VALIDATION).should('be.visible'); + cy.byPFRole('dialog').find(Classes.PersesCreateDashboardDashboardNameError).should('have.text', `${persesCreateDashboard.DIALOG_MAX_LENGTH_VALIDATION}`).should('be.visible'); }, - assertDuplicatedNameValidation: (dashboardName: string) => { + assertDuplicatedNameValidation: () => { cy.log('persesCreateDashboardsPage.assertDuplicatedNameValidation'); - if (dashboardName.includes(' ')) { - cy.byPFRole('dialog').find('h4').should('have.text', persesCreateDashboard.DIALOG_DUPLICATED_NAME_BKD_VALIDATION).should('be.visible'); - } else { - cy.byPFRole('dialog').find(Classes.PersesCreateDashboardDashboardNameError).should('have.text', `${persesCreateDashboard.DIALOG_DUPLICATED_NAME_PF_VALIDATION_PREFIX}"${dashboardName}"${persesCreateDashboard.DIALOG_DUPLICATED_NAME_PF_VALIDATION_SUFFIX}`).should('be.visible'); - } + cy.get(Classes.PersesDuplicateDashboardNameError).should('have.text', persesCreateDashboard.DIALOG_DUPLICATED_NAME_BKD_VALIDATION).should('be.visible'); }, createDashboardDialogCancelButton: () => { cy.log('persesCreateDashboardsPage.clickCancelButton'); + cy.wait(2000); cy.byPFRole('dialog').find('button').contains('Cancel').should('be.visible').click({ force: true }); cy.wait(2000); }, diff --git a/web/cypress/views/perses-dashboards-import-dashboard.ts b/web/cypress/views/perses-dashboards-import-dashboard.ts index 9f4c83ac..7b97cbc5 100644 --- a/web/cypress/views/perses-dashboards-import-dashboard.ts +++ b/web/cypress/views/perses-dashboards-import-dashboard.ts @@ -100,12 +100,12 @@ export const persesImportDashboardsPage = { assertFailedToMigrateGrafanaDashboard: () => { cy.log('persesImportDashboardsPage.assertFailedToMigrateGrafanaDashboard'); - cy.byPFRole('dialog').find('h4').contains(persesDashboardsImportDashboard.DIALOG_FAILED_TO_MIGRATE_GRAFANA_DASHBOARD).should('be.visible'); + cy.get('h4').contains(persesDashboardsImportDashboard.DIALOG_FAILED_TO_MIGRATE_GRAFANA_DASHBOARD).should('be.visible'); }, assertDuplicatedDashboardError: () => { cy.log('persesImportDashboardsPage.assertDuplicatedDashboardError'); - cy.byPFRole('dialog').find('h4').contains(persesDashboardsImportDashboard.DIALOG_DUPLICATED_DASHBOARD_ERROR).should('be.visible'); + cy.get('h4').contains(persesDashboardsImportDashboard.DIALOG_DUPLICATED_DASHBOARD_ERROR).should('be.visible'); }, dismissDuplicatedDashboardError: () => { diff --git a/web/cypress/views/perses-dashboards-list-dashboards.ts b/web/cypress/views/perses-dashboards-list-dashboards.ts index 4d5799ae..ff0e8315 100644 --- a/web/cypress/views/perses-dashboards-list-dashboards.ts +++ b/web/cypress/views/perses-dashboards-list-dashboards.ts @@ -179,10 +179,10 @@ export const listPersesDashboardsPage = { assertDuplicateProjectDropdown: (project: string) => { cy.log('listPersesDashboardsPage.assertDuplicateProjectDropdown'); - cy.get(Classes.PersesCreateDashboardProjectDropdown).should('be.visible').click({ force: true }); + cy.byPFRole('dialog').find(Classes.PersesCreateDashboardProjectDropdown).click({ force: true }); cy.byAriaLabel(persesAriaLabels.dialogProjectInput).should('be.visible').clear().type(project); cy.byPFRole('option').contains(project).should('be.visible'); - cy.get(Classes.PersesCreateDashboardProjectDropdown).should('be.visible').click({ force: true }); + cy.byPFRole('dialog').find(Classes.PersesCreateDashboardProjectDropdown).click({ force: true }); }, duplicateDashboardEnterName: (name: string) => { @@ -212,7 +212,7 @@ export const listPersesDashboardsPage = { duplicateDashboardSelectProjectDropdown: (project: string) => { cy.log('listPersesDashboardsPage.duplicateDashboardSelectProjectDropdown'); - cy.get(Classes.PersesCreateDashboardProjectDropdown).should('be.visible').click({ force: true }); + cy.byPFRole('dialog').find(Classes.PersesCreateDashboardProjectDropdown).click({ force: true }); cy.byAriaLabel(persesAriaLabels.dialogProjectInput).clear().type(project); cy.byPFRole('option').contains(project).should('be.visible').click({ force: true }); cy.wait(2000); @@ -220,16 +220,16 @@ export const listPersesDashboardsPage = { assertDuplicateProjectDropdownExists: (project: string) => { cy.log('listPersesDashboardsPage.assertDuplicateProjectDropdownExists'); - cy.get(Classes.PersesCreateDashboardProjectDropdown).should('be.visible').click({ force: true }); + cy.byPFRole('dialog').find(Classes.PersesCreateDashboardProjectDropdown).click({ force: true }); cy.byAriaLabel(persesAriaLabels.dialogProjectInput).clear().type(project); cy.byPFRole('option').contains(project).should('be.visible'); cy.log('Project: ' + project + ' is available in the dropdown'); - cy.get(Classes.PersesCreateDashboardProjectDropdown).should('be.visible').click({ force: true }); + cy.byPFRole('dialog').find(Classes.PersesCreateDashboardProjectDropdown).click({ force: true }); }, assertDuplicateProjectDropdownNotExists: (project: string) => { cy.log('listPersesDashboardsPage.assertDuplicateProjectDropdownNotExists'); - cy.get(Classes.PersesCreateDashboardProjectDropdown).should('be.visible').click({ force: true }); + cy.byPFRole('dialog').find(Classes.PersesCreateDashboardProjectDropdown).click({ force: true }); cy.byPFRole('listbox').find('li').then((items) => { items.each((index, item) => { cy.log('Project: ' + item.innerText); @@ -238,7 +238,7 @@ export const listPersesDashboardsPage = { } }); }); - cy.get(Classes.PersesCreateDashboardProjectDropdown).should('be.visible').click({ force: true }); + cy.byPFRole('dialog').find(Classes.PersesCreateDashboardProjectDropdown).click({ force: true }); }, clickDeleteOption: () => { diff --git a/web/cypress/views/perses-dashboards.ts b/web/cypress/views/perses-dashboards.ts index 59b21c8a..6358dffe 100644 --- a/web/cypress/views/perses-dashboards.ts +++ b/web/cypress/views/perses-dashboards.ts @@ -287,7 +287,6 @@ export const persesDashboardsPage = { case 'Save': cy.bySemanticElement('button', 'Save').scrollIntoView().should('be.visible').click({ force: true }); persesDashboardsPage.clickSaveDashboardButton(); - persesDashboardsPage.closeSuccessAlert(); break; case 'Cancel': cy.byTestID(persesDashboardDataTestIDs.cancelButtonToolbar).scrollIntoView().should('be.visible').click({ force: true }); diff --git a/web/src/components/data-test.ts b/web/src/components/data-test.ts index b77e4508..28fa374a 100644 --- a/web/src/components/data-test.ts +++ b/web/src/components/data-test.ts @@ -184,7 +184,7 @@ export const IDs = { persesDashboardAddPanelGroupForm: 'panel-group-editor-form', persesDashboardAddPanelForm: 'panel-editor-form', persesDashboardDiscardChangesDialog: 'discard-dialog', - persesDashboardCreateDashboardName: 'text-input-create-dashboard-dialog-name', + persesDashboardCreateDashboardName: 'create-modal-dashboard-name-form-group-text-input', persesDashboardRenameDashboardName: 'rename-modal-text-input', persesDashboardDuplicateDashboardName: 'duplicate-modal-dashboard-name-form-group-text-input', persesDashboardImportDashboardUploadFileInput: 'import-dashboard-file-filename', @@ -218,8 +218,9 @@ export const Classes = { NamespaceDropdown: '.pf-v6-c-menu-toggle.co-namespace-dropdown__menu-toggle', NamespaceDropdownExpanded: '.pf-v6-c-menu-toggle.pf-m-expanded.co-namespace-dropdown__menu-toggle', - PersesCreateDashboardProjectDropdown: '.pf-v6-c-menu-toggle.pf-m-full-width.pf-m-typeahead', + PersesCreateDashboardProjectDropdown: 'button[class="pf-v6-c-menu-toggle__button"]', PersesCreateDashboardDashboardNameError: '.pf-v6-c-helper-text__item-text', + PersesDuplicateDashboardNameError: '.pf-v6-c-alert__title', PersesListDashboardCount: '.pf-v6-c-menu-toggle__text', SectionHeader: '.pf-v6-c-title.pf-m-h2, .co-section-heading', TableHeaderColumn: '.pf-v6-c-table__button, .pf-c-table__button',