PromucFlow_constructor/app/client/cypress/support/Objects/Registry.ts
Aishwarya-U-R fe3863eb65
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405)
## Description
- Removed hard waits from below specs:
    - Apps/CurrencyInputIssue_Spec.js
    - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip)
    - /Binding/TableV2_Widget_API_Pagination_spec.js
- Unskip - ApiTests/API_Unique_name_spec.js
- Flaky fix - TableV2_Widget_API_Pagination_spec.js
- Flaky fix - /ServerSide/QueryPane/S3_1_spec.js
- Removed empty ReusableHelper.ts
- Improved agHelper.GetElement() to include the assertion for element
presence/absence
- Modified helpers/function calls to fit the above syntax of
GetElement()
- Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout
from cypress config

#### Type of change
- Script fix (non-breaking change which fixes an issue)

## Testing
#### How Has This Been Tested?
- [X] Cypress CI runs

## Checklist:
#### QA activity:
- [X] Added `Test Plan Approved` label after Cypress tests were reviewed

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **Tests**
- Enhanced end-to-end test stability by replacing static waits with
dynamic element-based synchronization.
  - Skipped certain test suites to streamline the testing process.
- Improved test assertions and control flow for more reliable
verification of UI components.

- **Chores**
  - Updated test helper methods to support new verification strategies.
- Cleaned up unnecessary imports and inheritance in test support
classes.

- **Documentation**
- Adjusted test case descriptions to reflect the new synchronization
methods used.

- **Bug Fixes**
- Fixed issues with test synchronization that could lead to flaky test
results.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 14:39:36 +05:30

289 lines
9.5 KiB
TypeScript

import { AggregateHelper } from "../Pages/AggregateHelper";
import { JSEditor } from "../Pages/JSEditor";
import { EntityExplorer } from "../Pages/EntityExplorer";
import { CommonLocators } from "./CommonLocators";
import { ApiPage } from "../Pages/ApiPage";
import { AdminSettings } from "../Pages/AdminSettings";
import { HomePage } from "../Pages/HomePage";
import { DataSources } from "../Pages/DataSources";
import { Table } from "../Pages/Table";
import { PropertyPane } from "../Pages/PropertyPane";
import { DeployMode } from "../Pages/DeployModeHelper";
import { GitSync } from "../Pages/GitSync";
import { FakerHelper } from "../Pages/FakerHelper";
import { DebuggerHelper } from "../Pages/DebuggerHelper";
import { LibraryInstaller } from "../Pages/LibraryInstaller";
import { PeekOverlay } from "../Pages/PeekOverlay";
import { InviteModal } from "../Pages/InviteModal";
import { AppSettings } from "../Pages/AppSettings/AppSettings";
import { GeneralSettings } from "../Pages/AppSettings/GeneralSettings";
import { PageSettings } from "../Pages/AppSettings/PageSettings";
import { ThemeSettings } from "../Pages/AppSettings/ThemeSettings";
import { EmbedSettings } from "../Pages/AppSettings/EmbedSettings";
import { Templates } from "../Pages/Templates";
import { Onboarding } from "../Pages/Onboarding";
import { AutoLayout } from "../Pages/AutoLayout";
import { DataManager } from "./DataManager";
import { AssertHelper } from "../Pages/AssertHelper";
import { Tabs } from "../Pages/Tabs";
import { GsheetHelper } from "../Pages/GSheetHelper";
import { CommunityTemplates } from "../Pages/CommunityTemplates";
export class ObjectsRegistry {
private static aggregateHelper__: AggregateHelper;
static get AggregateHelper(): AggregateHelper {
if (ObjectsRegistry.aggregateHelper__ === undefined) {
ObjectsRegistry.aggregateHelper__ = new AggregateHelper();
}
return ObjectsRegistry.aggregateHelper__;
}
private static assertHelper__: AssertHelper;
static get AssertHelper(): AssertHelper {
if (ObjectsRegistry.assertHelper__ === undefined) {
ObjectsRegistry.assertHelper__ = new AssertHelper();
}
return ObjectsRegistry.assertHelper__;
}
private static jsEditor__: JSEditor;
static get JSEditor(): JSEditor {
if (ObjectsRegistry.jsEditor__ === undefined) {
ObjectsRegistry.jsEditor__ = new JSEditor();
}
return ObjectsRegistry.jsEditor__;
}
private static commonLocators__: CommonLocators;
static get CommonLocators(): CommonLocators {
if (ObjectsRegistry.commonLocators__ === undefined) {
ObjectsRegistry.commonLocators__ = new CommonLocators();
}
return ObjectsRegistry.commonLocators__;
}
private static entityExplorer__: EntityExplorer;
static get EntityExplorer(): EntityExplorer {
if (ObjectsRegistry.entityExplorer__ === undefined) {
ObjectsRegistry.entityExplorer__ = new EntityExplorer();
}
return ObjectsRegistry.entityExplorer__;
}
private static apiPage__: ApiPage;
static get ApiPage(): ApiPage {
if (ObjectsRegistry.apiPage__ === undefined) {
ObjectsRegistry.apiPage__ = new ApiPage();
}
return ObjectsRegistry.apiPage__;
}
private static adminSettings__: AdminSettings;
static get AdminSettings(): AdminSettings {
if (ObjectsRegistry.adminSettings__ === undefined) {
ObjectsRegistry.adminSettings__ = new AdminSettings();
}
return ObjectsRegistry.adminSettings__;
}
private static homePage__: HomePage;
static get HomePage(): HomePage {
if (ObjectsRegistry.homePage__ === undefined) {
ObjectsRegistry.homePage__ = new HomePage();
}
return ObjectsRegistry.homePage__;
}
private static dataSources__: DataSources;
static get DataSources(): DataSources {
if (ObjectsRegistry.dataSources__ === undefined) {
ObjectsRegistry.dataSources__ = new DataSources();
}
return ObjectsRegistry.dataSources__;
}
private static table__: Table;
static get Table(): Table {
if (ObjectsRegistry.table__ === undefined) {
ObjectsRegistry.table__ = new Table();
}
return ObjectsRegistry.table__;
}
private static tabs__: Tabs;
static get Tabs(): Tabs {
if (ObjectsRegistry.tabs__ === undefined) {
ObjectsRegistry.tabs__ = new Tabs();
}
return ObjectsRegistry.tabs__;
}
private static propertyPane__: PropertyPane;
static get PropertyPane(): PropertyPane {
if (ObjectsRegistry.propertyPane__ === undefined) {
ObjectsRegistry.propertyPane__ = new PropertyPane();
}
return ObjectsRegistry.propertyPane__;
}
private static deployMode__: DeployMode;
static get DeployMode(): DeployMode {
if (ObjectsRegistry.deployMode__ === undefined) {
ObjectsRegistry.deployMode__ = new DeployMode();
}
return ObjectsRegistry.deployMode__;
}
private static gitSync__: GitSync;
static get GitSync(): GitSync {
if (ObjectsRegistry.gitSync__ === undefined) {
ObjectsRegistry.gitSync__ = new GitSync();
}
return ObjectsRegistry.gitSync__;
}
private static fakerHelper__: FakerHelper;
static get FakerHelper(): FakerHelper {
if (ObjectsRegistry.fakerHelper__ === undefined) {
ObjectsRegistry.fakerHelper__ = new FakerHelper();
}
return ObjectsRegistry.fakerHelper__;
}
private static debuggerHelper__: DebuggerHelper;
static get DebuggerHelper(): DebuggerHelper {
if (ObjectsRegistry.debuggerHelper__ === undefined) {
ObjectsRegistry.debuggerHelper__ = new DebuggerHelper();
}
return ObjectsRegistry.debuggerHelper__;
}
private static appSettings__: AppSettings;
static get AppSettings(): AppSettings {
if (ObjectsRegistry.appSettings__ === undefined) {
ObjectsRegistry.appSettings__ = new AppSettings();
}
return ObjectsRegistry.appSettings__;
}
private static generalSettings__: GeneralSettings;
static get GeneralSettings(): GeneralSettings {
if (ObjectsRegistry.generalSettings__ === undefined) {
ObjectsRegistry.generalSettings__ = new GeneralSettings();
}
return ObjectsRegistry.generalSettings__;
}
private static pageSettings__: PageSettings;
static get PageSettings(): PageSettings {
if (ObjectsRegistry.pageSettings__ === undefined) {
ObjectsRegistry.pageSettings__ = new PageSettings();
}
return ObjectsRegistry.pageSettings__;
}
private static themeSettings__: ThemeSettings;
static get ThemeSettings(): ThemeSettings {
if (ObjectsRegistry.themeSettings__ === undefined) {
ObjectsRegistry.themeSettings__ = new ThemeSettings();
}
return ObjectsRegistry.themeSettings__;
}
private static embedSettings__: EmbedSettings;
static get EmbedSettings(): EmbedSettings {
if (ObjectsRegistry.embedSettings__ === undefined) {
ObjectsRegistry.embedSettings__ = new EmbedSettings();
}
return ObjectsRegistry.embedSettings__;
}
private static LibraryInstaller__: LibraryInstaller;
static get LibraryInstaller(): LibraryInstaller {
if (ObjectsRegistry.LibraryInstaller__ === undefined) {
ObjectsRegistry.LibraryInstaller__ = new LibraryInstaller();
}
return ObjectsRegistry.LibraryInstaller__;
}
private static peekOverlay__: PeekOverlay;
static get PeekOverlay(): PeekOverlay {
if (ObjectsRegistry.peekOverlay__ === undefined) {
ObjectsRegistry.peekOverlay__ = new PeekOverlay();
}
return ObjectsRegistry.peekOverlay__;
}
private static inviteModal__: InviteModal;
static get InviteModal(): InviteModal {
if (ObjectsRegistry.inviteModal__ === undefined) {
ObjectsRegistry.inviteModal__ = new InviteModal();
}
return ObjectsRegistry.inviteModal__;
}
private static templates__: Templates;
static get Templates(): Templates {
if (ObjectsRegistry.templates__ === undefined) {
ObjectsRegistry.templates__ = new Templates();
}
return ObjectsRegistry.templates__;
}
private static onboarding__: Onboarding;
static get Onboarding(): Onboarding {
if (ObjectsRegistry.onboarding__ === undefined) {
ObjectsRegistry.onboarding__ = new Onboarding();
}
return ObjectsRegistry.onboarding__;
}
private static autoLayout__: AutoLayout;
static get AutoLayout(): AutoLayout {
if (ObjectsRegistry.autoLayout__ === undefined) {
ObjectsRegistry.autoLayout__ = new AutoLayout();
}
return ObjectsRegistry.autoLayout__;
}
private static dataManager__: DataManager;
static get DataManager(): DataManager {
if (ObjectsRegistry.dataManager__ === undefined) {
ObjectsRegistry.dataManager__ = new DataManager();
}
return ObjectsRegistry.dataManager__;
}
private static gsheetHelper__: GsheetHelper;
static get GSheetHelper(): GsheetHelper {
if (ObjectsRegistry.gsheetHelper__ === undefined) {
ObjectsRegistry.gsheetHelper__ = new GsheetHelper();
}
return ObjectsRegistry.gsheetHelper__;
}
private static communityTemplates__: CommunityTemplates;
static get CommunityTemplates(): CommunityTemplates {
if (ObjectsRegistry.communityTemplates__ === undefined) {
ObjectsRegistry.communityTemplates__ = new CommunityTemplates();
}
return ObjectsRegistry.communityTemplates__;
}
}
export const initLocalstorageRegistry = () => {
cy.window().then((window) => {
window.localStorage.setItem("ShowCommentsButtonToolTip", "");
window.localStorage.setItem("updateDismissed", "true");
});
localStorage.setItem("inDeployedMode", "false");
};
declare namespace Cypress {
namespace Cypress {
interface Chainable {
TypeTab: (shiftKey: boolean, ctrlKey: boolean) => void;
}
}
}