PromucFlow_constructor/app/client/test/factories/AppIDEFactoryUtils.ts
Hetu Nandu ac41ad250b
chore: Move entities/IDE/constants (#39064)
## Description

Remove the IDE constants from the entities folder and move it to the
common IDE folder
Create separate buttons exports for sidebar buttons
Update the button usages 

Fixes #39050 

## Automation

/ok-to-test tags="@tag.All"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/13191919670>
> Commit: 5055b6ed0394b5f3fe1450bd7a042eb851fe39ab
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13191919670&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Fri, 07 Feb 2025 05:19:56 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


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

- **New Features**
- Introduced new editor state definitions and enhanced sidebar
configurations with conditional messaging for data source availability.

- **Refactor**
- Reorganized internal module structures and consolidated type
definitions to improve maintainability, consistency, and type safety.

- **Tests**
  - Updated test references to align with the new module organization.

These changes streamline the codebase and lay the groundwork for future
improvements while maintaining the existing end-user experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Ankita Kinger <ankita@appsmith.com>
2025-02-07 16:45:55 +05:30

110 lines
2.9 KiB
TypeScript

import store from "store";
import { EditorViewMode } from "IDE/Interfaces/EditorTypes";
import type { AppState } from "ee/reducers";
import MockPluginsState from "test/factories/MockPluginsState";
import type { Action } from "entities/Action";
import type {
IDETabs,
ParentEntityIDETabs,
} from "reducers/uiReducers/ideReducer";
import { IDETabsDefaultValue } from "reducers/uiReducers/ideReducer";
import type { JSCollection } from "entities/JSCollection";
import type { FocusHistory } from "reducers/uiReducers/focusHistoryReducer";
import type { Datasource } from "entities/Datasource";
import type { FeatureFlags } from "ee/entities/FeatureFlag";
import type { Page } from "entities/Page";
interface IDEStateArgs {
ideView?: EditorViewMode;
pages?: Page[];
actions?: Action[];
js?: JSCollection[];
tabs?: IDETabs;
branch?: string;
focusHistory?: FocusHistory;
datasources?: Datasource[];
featureFlags?: Partial<FeatureFlags>;
}
export const getIDETestState = ({
actions = [],
branch,
datasources = [],
featureFlags,
focusHistory = {},
ideView = EditorViewMode.FullScreen,
js = [],
pages = [],
tabs = IDETabsDefaultValue,
}: IDEStateArgs): AppState => {
const initialState = store.getState();
const pageList = {
pages,
isGeneratingTemplatePage: false,
applicationId: "655716e035e2c9432e4bd94b",
baseApplicationId: "655716e035e2c9432e4bd94b",
currentPageId: pages[0]?.pageId,
currentBasePageId: pages[0]?.basePageId,
defaultPageId: pages[0]?.pageId,
defaultBasePageId: pages[0]?.basePageId,
loading: {},
};
let ideTabs: ParentEntityIDETabs = {};
if (pageList.currentBasePageId) {
ideTabs = { [pageList.currentBasePageId]: tabs };
}
const actionData = actions.map((a) => ({ isLoading: false, config: a }));
const jsData = js.map((a) => ({ isLoading: false, config: a }));
const featureFlag = featureFlags ? { data: featureFlags } : {};
return {
...initialState,
entities: {
...initialState.entities,
datasources: {
...initialState.entities.datasources,
list: datasources,
},
plugins: MockPluginsState,
pageList: pageList,
actions: actionData,
jsActions: jsData,
},
ui: {
...initialState.ui,
users: {
...initialState.ui.users,
featureFlag,
},
ide: {
...initialState.ui.ide,
view: ideView,
tabs: ideTabs,
},
focusHistory: {
history: {
...focusHistory,
},
},
editor: {
...initialState.ui.editor,
initialized: true,
},
applications: {
...initialState.ui.applications,
currentApplication: branch
? {
...initialState.ui.applications.currentApplication,
gitApplicationMetadata: {
branchName: branch || "",
},
}
: { ...initialState.ui.applications.currentApplication },
},
},
};
};