Files
openobserve/tests/ui-testing/pages/generalPages/changeOrgPage.js
T
+5 ae22a74e62 feat: ux improvement main (#11838)
#11720

Design at:

https://github.com/openobserve/designs/blob/main/dashboards/ux-improvement-dialog/design.md

---------

---------

Co-authored-by: ktx-vaidehi <134508096+ktx-vaidehi@users.noreply.github.com>
Co-authored-by: Abhay Padamani <141122205+ktx-abhay@users.noreply.github.com>
Co-authored-by: Sai Nikhil <nikhil@openobserve.ai>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: ktx-akshay <akshay.patil@kiara.tech>
Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
Co-authored-by: ktx-mihir <mihir.patel@kiara.tech>
Co-authored-by: ktx-riya <riya.kukadiya@kiara.tech>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Omkar Kesarkhane <127078473+omkarK06@users.noreply.github.com>
Co-authored-by: omkark06 <omkar@zinclabs.io>
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
2026-05-28 11:00:49 +00:00

230 lines
10 KiB
JavaScript

const { expect } = require('@playwright/test');
class ChangeOrgPage {
constructor(page) {
this.page = page;
}
// Home Page Methods
async validateHomePageDefault(pageManager) {
await this.page.waitForLoadState('domcontentloaded');
await this.page.reload();
await this.page.waitForLoadState('networkidle', { timeout: 10000 }).catch(() => {});
await pageManager.homePage.homePageValidation();
await pageManager.homePage.gotoHomePage();
await pageManager.homePage.homePageValidation();
await pageManager.homePage.homePageDefaultOrg();
await pageManager.homePage.homePageURLValidationDefaultOrg();
}
async validateHomePageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.homePage.homePageValidation();
await pageManager.homePage.homePageURLValidation(newOrgName);
await pageManager.homePage.gotoHomePage();
await pageManager.homePage.homePageValidation();
await pageManager.homePage.homePageURLValidation(newOrgName);
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// Logs Page Methods
async validateLogsPageDefault(pageManager) {
await pageManager.logsPage.navigateToLogs();
await pageManager.logsPage.validateLogsPage();
await pageManager.homePage.homePageDefaultOrg();
await pageManager.homePage.homePageURLValidationDefaultOrg();
}
async validateLogsPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.logsPage.navigateToLogs(multiOrgIdentifier);
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// Metrics Page Methods
async validateMetricsPageDefault(pageManager) {
await pageManager.metricsPage.gotoMetricsPage();
await pageManager.homePage.homePageDefaultOrg();
await pageManager.homePage.homePageURLValidationDefaultOrg();
await pageManager.metricsPage.metricsPageValidation();
await pageManager.metricsPage.metricsURLValidation();
}
async validateMetricsPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.metricsPage.gotoMetricsPage();
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// Traces Page Methods
async validateTracesPageDefault(pageManager) {
await pageManager.tracesPage.navigateToTraces();
// Use the shared search-filtered org switch (homePage.homePageDefaultOrg)
// — the per-identifier shortcut in tracesPage.tracesPageDefaultOrg only
// works when "default" is on the first OTable page, which fails against
// the pentest backend's large org list.
await pageManager.homePage.homePageDefaultOrg();
await pageManager.homePage.homePageURLValidationDefaultOrg();
await pageManager.tracesPage.validateTracesPage();
await pageManager.tracesPage.tracesURLValidation();
}
async validateTracesPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.tracesPage.navigateToTraces();
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// RUM Page Methods
async validateRumPageDefault(pageManager) {
await pageManager.rumPage.gotoRumPage();
await pageManager.homePage.homePageDefaultOrg();
await pageManager.homePage.homePageURLValidationDefaultOrg();
await pageManager.rumPage.rumURLValidation();
}
async validateRumPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.rumPage.gotoRumPage();
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// Pipelines Page Methods
async validatePipelinesPageDefault(pageManager) {
await pageManager.pipelinesPage.gotoPipelinesPage();
await pageManager.homePage.homePageDefaultOrg();
await pageManager.homePage.homePageURLValidationDefaultOrg();
await pageManager.pipelinesPage.pipelinesURLValidation();
}
async validatePipelinesPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.pipelinesPage.gotoPipelinesPage();
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// Dashboard Page Methods
async validateDashboardPageDefault(pageManager) {
await pageManager.dashboardPage.navigateToDashboards();
await pageManager.homePage.clickDefaultOrg();
await pageManager.homePage.homePageURLValidationDefaultOrg();
await pageManager.dashboardPage.dashboardURLValidation();
}
async validateDashboardPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.dashboardPage.navigateToDashboards();
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// Streams Page Methods
async validateStreamsPageDefault(pageManager) {
await pageManager.streamsPage.gotoStreamsPage();
// streamsPage.streamsPageDefaultOrg uses banned selectors
// (getByText/text-engine) — switch via the data-test-only homePage flow.
await pageManager.homePage.homePageDefaultOrg();
await pageManager.homePage.homePageURLValidationDefaultOrg();
await pageManager.streamsPage.streamsURLValidation();
}
async validateStreamsPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.streamsPage.gotoStreamsPage();
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// Reports Page Methods
async validateReportsPageDefault(pageManager) {
await pageManager.reportsPage.goToReports();
await pageManager.homePage.homePageDefaultOrg();
await pageManager.homePage.homePageURLValidationDefaultOrg();
await pageManager.reportsPage.reportsURLValidation();
}
async validateReportsPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.reportsPage.goToReports();
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// Alerts Page Methods
async validateAlertsPageDefault(pageManager) {
await pageManager.commonActions.navigateToAlerts();
await pageManager.homePage.clickDefaultOrg();
await this.page.waitForLoadState('networkidle', { timeout: 10000 }).catch(() => {});
await pageManager.homePage.homePageURLValidationDefaultOrg();
await pageManager.alertsPage.alertsURLValidation();
}
async validateAlertsPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.commonActions.navigateToAlerts();
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// Data sources Page Methods
async validateDataPageDefault(pageManager) {
await pageManager.dataPage.gotoDataPage();
await pageManager.homePage.homePageDefaultOrg();
await pageManager.homePage.homePageURLValidationDefaultOrg();
await pageManager.dataPage.dataURLValidation();
}
async validateDataPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.dataPage.gotoDataPage();
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// IAM Page Methods
async validateIamPageDefault(pageManager) {
await pageManager.iamPage.gotoIamPage();
await pageManager.homePage.homePageDefaultOrg();
await pageManager.homePage.homePageURLValidationDefaultOrg();
await pageManager.iamPage.iamURLValidation();
}
async validateIamPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.iamPage.gotoIamPage();
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// Management Page Methods
async validateManagementPageDefault(pageManager) {
await pageManager.managementPage.goToManagement();
await pageManager.homePage.homePageDefaultOrg();
await pageManager.homePage.homePageURLValidationDefaultOrg();
await pageManager.managementPage.managementURLValidation();
}
async validateManagementPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.managementPage.goToManagement();
await pageManager.managementPage.managementURLValidation();
}
// About Page Methods
async validateAboutPageDefault(pageManager) {
await pageManager.aboutPage.clickHelpMenu();
await pageManager.aboutPage.gotoAboutPage();
await pageManager.homePage.homePageDefaultOrg();
await pageManager.aboutPage.aboutURLValidation();
}
async validateAboutPageWithOrg(pageManager, newOrgName, multiOrgIdentifier) {
await pageManager.aboutPage.clickHelpMenu();
await pageManager.aboutPage.gotoAboutPage();
await pageManager.homePage.homePageOrg(newOrgName, multiOrgIdentifier);
await pageManager.homePage.homeURLContains(multiOrgIdentifier);
}
// Helper method to create org and setup ingestion
async createOrgAndSetupIngestion(pageManager, orgName) {
const multiOrgIdentifier = await pageManager.createOrgPage.createOrg(orgName);
await pageManager.ingestionPage.ingestionMultiOrg(multiOrgIdentifier);
return multiOrgIdentifier;
}
}
module.exports = { ChangeOrgPage };