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

110 lines
3.0 KiB
TypeScript
Raw Normal View History

import store from "store";
import { EditorViewMode } from "@appsmith/entities/IDE/constants";
import type { AppState } from "@appsmith/reducers";
import MockPluginsState from "test/factories/MockPluginsState";
import type { Page } from "@appsmith/constants/ReduxActionConstants";
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";
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
import type { FeatureFlags } from "@appsmith/entities/FeatureFlag";
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 },
},
},
};
};