PromucFlow_constructor/app/client/test/factories/AppIDEFactoryUtils.ts

110 lines
2.9 KiB
TypeScript
Raw Normal View History

import store from "store";
import { EditorViewMode } from "ee/entities/IDE/constants";
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";
chore: Refactor DataSidePane to accept selector as prop to show usage messages in EE (#32870) ## Description Adds a couple of props to alter the data displayed in the datasources left pane to show the right count of entities using datasource. This props are going to be used in Packages and Workflow editors datasources page. PR for https://github.com/appsmithorg/appsmith-ee/pull/4026 ## Automation /ok-to-test tags="@tag.IDE, @tag.Datasource, @tag.Sanity" ### :mag: 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/8843287060> > Commit: 66a5282be88c27fab11316bd136d88bc74de5d5b > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8843287060&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced the `DataSidePane` to display the name and count of actions, improving the informational context for users. - Added a new selector function to calculate and display the count of queries for each datasource in the app. - Introduced a `DatasourceFactory` for generating mock datasource objects for testing purposes. - Expanded the list of plugin package names in the `MockPluginsState` to include additional plugins like `MY_SQL`, `S3`, `SNOWFLAKE`, `FIRESTORE`, `GRAPHQL`, `APPSMITH_AI`, `MS_SQL`, `ORACLE`, and `WORKFLOW`. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-26 10:08:25 +00:00
import type { Datasource } from "entities/Datasource";
import type { FeatureFlags } from "ee/entities/FeatureFlag";
chore: Cleanup Redux Actions file (#35720) ## Description Cleans out and reorganises the Redux Actions Constants file Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/10489649733> > Commit: 9fa7003f7c2d1b43a6c693cb1d34ba5cc2c11832 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=10489649733&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Wed, 21 Aug 2024 13:45: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 interfaces for enhanced structured data handling related to page management and property pane visibility. - Added functionality to control widget panel visibility with a new action. - **Bug Fixes** - Improved flexibility in closing property panes by adding an optional parameter to the related function. - **Refactor** - Streamlined import statements for various types to improve organization and maintainability. - Removed unused functions and action handlers to simplify user and data source management. - Updated action type constants for consistency across the application. - Removed sagas related to URL redirection and history management, simplifying navigation handling. - **Chores** - Cleaned up unused imports to reduce code clutter and improve readability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-08-22 04:19:30 +00:00
import type { Page } from "entities/Page";
interface IDEStateArgs {
ideView?: EditorViewMode;
pages?: Page[];
actions?: Action[];
js?: JSCollection[];
tabs?: IDETabs;
branch?: string;
focusHistory?: FocusHistory;
chore: Refactor DataSidePane to accept selector as prop to show usage messages in EE (#32870) ## Description Adds a couple of props to alter the data displayed in the datasources left pane to show the right count of entities using datasource. This props are going to be used in Packages and Workflow editors datasources page. PR for https://github.com/appsmithorg/appsmith-ee/pull/4026 ## Automation /ok-to-test tags="@tag.IDE, @tag.Datasource, @tag.Sanity" ### :mag: 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/8843287060> > Commit: 66a5282be88c27fab11316bd136d88bc74de5d5b > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8843287060&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced the `DataSidePane` to display the name and count of actions, improving the informational context for users. - Added a new selector function to calculate and display the count of queries for each datasource in the app. - Introduced a `DatasourceFactory` for generating mock datasource objects for testing purposes. - Expanded the list of plugin package names in the `MockPluginsState` to include additional plugins like `MY_SQL`, `S3`, `SNOWFLAKE`, `FIRESTORE`, `GRAPHQL`, `APPSMITH_AI`, `MS_SQL`, `ORACLE`, and `WORKFLOW`. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-26 10:08:25 +00:00
datasources?: Datasource[];
feat: side-by-side edit mode hover analytics (#34185) ## Description The purpose of this PR is to collect data about hovered canvas and widgets and send it to analytics platform. Fixes #33159 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/9584384829> > Commit: 9cec247f7f1e82e0cc23fa5aa5499008bdc58964 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9584384829&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `` <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced analytics tracking for side-by-side hover actions in the IDE canvas. - Added a new `AnalyticsWrapper` component for handling analytics events within layout systems. - Implemented a custom hook `useIsInSideBySideEditor` to check for side-by-side editor mode. - Added new CSS styles for layout systems. - **Bug Fixes** - Improved handling of widget hover events and analytics tracking in side-by-side editor mode. - **Refactor** - Refactored logic for determining the current entity info and segment state in the IDE. - Updated import paths and reordered imports for better organization. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-20 08:33:06 +00:00
featureFlags?: Partial<FeatureFlags>;
}
export const getIDETestState = ({
actions = [],
branch,
chore: Refactor DataSidePane to accept selector as prop to show usage messages in EE (#32870) ## Description Adds a couple of props to alter the data displayed in the datasources left pane to show the right count of entities using datasource. This props are going to be used in Packages and Workflow editors datasources page. PR for https://github.com/appsmithorg/appsmith-ee/pull/4026 ## Automation /ok-to-test tags="@tag.IDE, @tag.Datasource, @tag.Sanity" ### :mag: 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/8843287060> > Commit: 66a5282be88c27fab11316bd136d88bc74de5d5b > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8843287060&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced the `DataSidePane` to display the name and count of actions, improving the informational context for users. - Added a new selector function to calculate and display the count of queries for each datasource in the app. - Introduced a `DatasourceFactory` for generating mock datasource objects for testing purposes. - Expanded the list of plugin package names in the `MockPluginsState` to include additional plugins like `MY_SQL`, `S3`, `SNOWFLAKE`, `FIRESTORE`, `GRAPHQL`, `APPSMITH_AI`, `MS_SQL`, `ORACLE`, and `WORKFLOW`. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-26 10:08:25 +00:00
datasources = [],
feat: side-by-side edit mode hover analytics (#34185) ## Description The purpose of this PR is to collect data about hovered canvas and widgets and send it to analytics platform. Fixes #33159 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/9584384829> > Commit: 9cec247f7f1e82e0cc23fa5aa5499008bdc58964 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9584384829&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `` <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced analytics tracking for side-by-side hover actions in the IDE canvas. - Added a new `AnalyticsWrapper` component for handling analytics events within layout systems. - Implemented a custom hook `useIsInSideBySideEditor` to check for side-by-side editor mode. - Added new CSS styles for layout systems. - **Bug Fixes** - Improved handling of widget hover events and analytics tracking in side-by-side editor mode. - **Refactor** - Refactored logic for determining the current entity info and segment state in the IDE. - Updated import paths and reordered imports for better organization. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-20 08:33:06 +00:00
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: {},
};
feat: side-by-side edit mode hover analytics (#34185) ## Description The purpose of this PR is to collect data about hovered canvas and widgets and send it to analytics platform. Fixes #33159 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/9584384829> > Commit: 9cec247f7f1e82e0cc23fa5aa5499008bdc58964 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9584384829&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `` <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced analytics tracking for side-by-side hover actions in the IDE canvas. - Added a new `AnalyticsWrapper` component for handling analytics events within layout systems. - Implemented a custom hook `useIsInSideBySideEditor` to check for side-by-side editor mode. - Added new CSS styles for layout systems. - **Bug Fixes** - Improved handling of widget hover events and analytics tracking in side-by-side editor mode. - **Refactor** - Refactored logic for determining the current entity info and segment state in the IDE. - Updated import paths and reordered imports for better organization. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-20 08:33:06 +00:00
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 }));
feat: side-by-side edit mode hover analytics (#34185) ## Description The purpose of this PR is to collect data about hovered canvas and widgets and send it to analytics platform. Fixes #33159 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/9584384829> > Commit: 9cec247f7f1e82e0cc23fa5aa5499008bdc58964 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9584384829&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `` <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced analytics tracking for side-by-side hover actions in the IDE canvas. - Added a new `AnalyticsWrapper` component for handling analytics events within layout systems. - Implemented a custom hook `useIsInSideBySideEditor` to check for side-by-side editor mode. - Added new CSS styles for layout systems. - **Bug Fixes** - Improved handling of widget hover events and analytics tracking in side-by-side editor mode. - **Refactor** - Refactored logic for determining the current entity info and segment state in the IDE. - Updated import paths and reordered imports for better organization. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-20 08:33:06 +00:00
const featureFlag = featureFlags ? { data: featureFlags } : {};
return {
...initialState,
entities: {
...initialState.entities,
chore: Refactor DataSidePane to accept selector as prop to show usage messages in EE (#32870) ## Description Adds a couple of props to alter the data displayed in the datasources left pane to show the right count of entities using datasource. This props are going to be used in Packages and Workflow editors datasources page. PR for https://github.com/appsmithorg/appsmith-ee/pull/4026 ## Automation /ok-to-test tags="@tag.IDE, @tag.Datasource, @tag.Sanity" ### :mag: 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/8843287060> > Commit: 66a5282be88c27fab11316bd136d88bc74de5d5b > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8843287060&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced the `DataSidePane` to display the name and count of actions, improving the informational context for users. - Added a new selector function to calculate and display the count of queries for each datasource in the app. - Introduced a `DatasourceFactory` for generating mock datasource objects for testing purposes. - Expanded the list of plugin package names in the `MockPluginsState` to include additional plugins like `MY_SQL`, `S3`, `SNOWFLAKE`, `FIRESTORE`, `GRAPHQL`, `APPSMITH_AI`, `MS_SQL`, `ORACLE`, and `WORKFLOW`. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-26 10:08:25 +00:00
datasources: {
...initialState.entities.datasources,
list: datasources,
},
plugins: MockPluginsState,
pageList: pageList,
actions: actionData,
jsActions: jsData,
},
ui: {
...initialState.ui,
feat: side-by-side edit mode hover analytics (#34185) ## Description The purpose of this PR is to collect data about hovered canvas and widgets and send it to analytics platform. Fixes #33159 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/9584384829> > Commit: 9cec247f7f1e82e0cc23fa5aa5499008bdc58964 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9584384829&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `` <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced analytics tracking for side-by-side hover actions in the IDE canvas. - Added a new `AnalyticsWrapper` component for handling analytics events within layout systems. - Implemented a custom hook `useIsInSideBySideEditor` to check for side-by-side editor mode. - Added new CSS styles for layout systems. - **Bug Fixes** - Improved handling of widget hover events and analytics tracking in side-by-side editor mode. - **Refactor** - Refactored logic for determining the current entity info and segment state in the IDE. - Updated import paths and reordered imports for better organization. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-20 08:33:06 +00:00
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 },
},
},
};
};