From ff4c0730b642623a28417b67fb5641f554ad0e02 Mon Sep 17 00:00:00 2001 From: sbalaji1192 Date: Thu, 12 Aug 2021 10:23:08 +0530 Subject: [PATCH 01/13] feat: Onboarding flow for new users --- app/client/src/actions/onboardingActions.ts | 7 + .../src/actions/widgetSidebarActions.tsx | 5 + .../components/editorComponents/Sidebar.tsx | 15 + .../src/constants/ReduxActionConstants.tsx | 13 + app/client/src/constants/routes.ts | 6 + app/client/src/pages/Applications/index.tsx | 57 +- .../src/pages/Editor/Explorer/index.tsx | 20 +- .../Checklist.test.tsx | 89 ++ .../FirstTimeUserExperience/Checklist.tsx | 436 +++++++ .../IntroductionModal.tsx | 219 ++++ .../Statusbar.test.tsx | 87 ++ .../FirstTimeUserExperience/Statusbar.tsx | 236 ++++ .../Editor/FirstTimeUserExperience/Tasks.tsx | 241 ++++ .../FirstTimeUserExperience/constants.ts | 7 + .../FirstTimeUserExperience/testUtils.ts | 67 + .../GeneratePageForm/GeneratePageForm.tsx | 9 + .../IntegrationEditor/ActiveDataSources.tsx | 24 +- app/client/src/pages/Editor/MainContainer.tsx | 9 +- app/client/src/pages/Editor/WidgetSidebar.tsx | 10 +- app/client/src/pages/Editor/WidgetsEditor.tsx | 45 +- app/client/src/pages/Editor/utils.ts | 34 +- .../src/pages/common/ProfileDropdown.tsx | 1 - .../reducers/uiReducers/onBoardingReducer.ts | 71 + .../uiReducers/widgetSidebarReducer.ts | 34 + app/client/src/sagas/ApplicationSagas.tsx | 36 +- app/client/src/sagas/OnboardingSagas.ts | 86 +- app/client/src/sagas/userSagas.tsx | 24 + app/client/src/selectors/editorSelectors.tsx | 3 + app/client/src/selectors/entitiesSelector.ts | 14 + .../src/selectors/onboardingSelectors.tsx | 24 + app/client/src/utils/AnalyticsUtil.tsx | 10 +- app/client/src/utils/storage.ts | 81 ++ coverage-summary.json | 1142 ++++++----------- 33 files changed, 2415 insertions(+), 747 deletions(-) create mode 100644 app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.test.tsx create mode 100644 app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx create mode 100644 app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx create mode 100644 app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.test.tsx create mode 100644 app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx create mode 100644 app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx create mode 100644 app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts create mode 100644 app/client/src/pages/Editor/FirstTimeUserExperience/testUtils.ts create mode 100644 app/client/src/reducers/uiReducers/widgetSidebarReducer.ts diff --git a/app/client/src/actions/onboardingActions.ts b/app/client/src/actions/onboardingActions.ts index 8d73222924a4..21dd18ec20a9 100644 --- a/app/client/src/actions/onboardingActions.ts +++ b/app/client/src/actions/onboardingActions.ts @@ -71,3 +71,10 @@ export const showEndOnboardingHelper = () => { type: ReduxActionTypes.SHOW_END_ONBOARDING_HELPER, }; }; + +export const toggleInOnboardingWidgetSelection = (payload: boolean) => { + return { + type: ReduxActionTypes.TOGGLE_ONBOARDING_WIDGET_SELECTION, + payload, + }; +}; diff --git a/app/client/src/actions/widgetSidebarActions.tsx b/app/client/src/actions/widgetSidebarActions.tsx index aec2b71633db..d783c0b05080 100644 --- a/app/client/src/actions/widgetSidebarActions.tsx +++ b/app/client/src/actions/widgetSidebarActions.tsx @@ -26,6 +26,11 @@ export const successFetchingWidgetCards = (cards: { }; }; +export const forceOpenWidgetPanel = (flag: boolean) => ({ + type: ReduxActionTypes.SET_FORCE_WIDGET_PANEL_OPEN, + payload: flag, +}); + export default { fetchWidgetCards, errorFetchingWidgetCards, diff --git a/app/client/src/components/editorComponents/Sidebar.tsx b/app/client/src/components/editorComponents/Sidebar.tsx index 73093e7658ef..a89cc4722abd 100644 --- a/app/client/src/components/editorComponents/Sidebar.tsx +++ b/app/client/src/components/editorComponents/Sidebar.tsx @@ -8,6 +8,12 @@ import PerformanceTracker, { PerformanceTransactionName, } from "utils/PerformanceTracker"; import { Layers } from "constants/Layers"; +import { useSelector } from "store"; +import { + getFirstTimeUserExperienceComplete, + getIsFirstTimeUserExperienceEnabled, +} from "selectors/onboardingSelectors"; +import OnboardingStatusbar from "pages/Editor/FirstTimeUserExperience/Statusbar"; const SidebarWrapper = styled.div` background-color: ${Colors.MINE_SHAFT}; @@ -28,12 +34,21 @@ const SidebarWrapper = styled.div` const initialPanel = { component: ExplorerSidebar }; export const Sidebar = memo(() => { + const enableFirstTimeUserExperience = useSelector( + getIsFirstTimeUserExperienceEnabled, + ); + const isFirstTimeUserExperienceComplete = useSelector( + getFirstTimeUserExperienceComplete, + ); PerformanceTracker.startTracking(PerformanceTransactionName.SIDE_BAR_MOUNT); useEffect(() => { PerformanceTracker.stopTracking(); }); return ( + {(enableFirstTimeUserExperience || isFirstTimeUserExperienceComplete) && ( + + )} ); diff --git a/app/client/src/constants/ReduxActionConstants.tsx b/app/client/src/constants/ReduxActionConstants.tsx index 14c88dd8e25a..96d5f79ef249 100644 --- a/app/client/src/constants/ReduxActionConstants.tsx +++ b/app/client/src/constants/ReduxActionConstants.tsx @@ -549,6 +549,18 @@ export const ReduxActionTypes = { SET_PAGE_ORDER_SUCCESS: "SET_PAGE_ORDER_SUCCESS", GROUP_WIDGETS_INIT: "GROUP_WIDGETS_INIT", REFACTOR_JS_ACTION_NAME: "REFACTOR_JS_ACTION_NAME", + TOGGLE_ONBOARDING_WIDGET_SELECTION: "TOGGLE_ONBOARDING_WIDGET_SELECTION", + SET_ENABLE_FIRST_TIME_USER_EXPERIENCE: + "SET_ENABLE_FIRST_TIME_USER_EXPERIENCE", + SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID: + "SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID", + SET_FIRST_TIME_USER_EXPERIENCE_COMPLETE: + "SET_FIRST_TIME_USER_EXPERIENCE_COMPLETE", + SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL: + "SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL", + SET_FORCE_WIDGET_PANEL_OPEN: "SET_FORCE_WIDGET_PANEL_OPEN", + END_FIRST_TIME_USER_EXPERIENCE: "END_FIRST_TIME_USER_EXPERIENCE", + UNDO_END_FIRST_TIME_USER_EXPERIENCE: "UNDO_END_FIRST_TIME_USER_EXPERIENCE", }; export type ReduxActionType = typeof ReduxActionTypes[keyof typeof ReduxActionTypes]; @@ -793,6 +805,7 @@ export type ApplicationPayload = { appIsExample: boolean; forkingEnabled?: boolean; appLayout?: AppLayoutConfig; + lastDeployedAt?: string; }; export type OrganizationDetails = { diff --git a/app/client/src/constants/routes.ts b/app/client/src/constants/routes.ts index 2b68c182db51..89c6985d6ee5 100644 --- a/app/client/src/constants/routes.ts +++ b/app/client/src/constants/routes.ts @@ -12,6 +12,7 @@ export const USERS_URL = "/users"; export const VIEWER_URL_REGEX = /applications\/.*?\/pages\/.*/; export const UNSUBSCRIBE_EMAIL_URL = "/unsubscribe/discussion/:threadId"; export const SETUP = "/setup/welcome"; +export const BUILDER_CHECKLIST_URL = `${BUILDER_URL}/checklist`; export type BuilderRouteParams = { applicationId: string; @@ -243,6 +244,11 @@ export const getGenerateTemplateFormURL = ( pageId, )}${GEN_TEMPLATE_URL}${GEN_TEMPLATE_FORM_ROUTE}`; +export const getOnboardingCheckListUrl = ( + applicationId = ":applicationId", + pageId = ":pageId", +): string => `${BUILDER_PAGE_URL(applicationId, pageId)}/checklist`; + export const FORGOT_PASSWORD_URL = `${USER_AUTH_URL}/forgotPassword`; export const RESET_PASSWORD_URL = `${USER_AUTH_URL}/resetPassword`; export const BASE_SIGNUP_URL = `/signup`; diff --git a/app/client/src/pages/Applications/index.tsx b/app/client/src/pages/Applications/index.tsx index d623ea174be8..fe8039b0667a 100644 --- a/app/client/src/pages/Applications/index.tsx +++ b/app/client/src/pages/Applications/index.tsx @@ -83,6 +83,7 @@ import ImportApplicationModal from "./ImportApplicationModal"; import { SIGNUP_SUCCESS_URL } from "constants/routes"; import { getIsSafeRedirectURL } from "utils/helpers"; +import { getCurrentThemeDetails } from "selectors/themeSelectors"; const OrgDropDown = styled.div` display: flex; @@ -879,7 +880,12 @@ function ApplicationsSection(props: any) { } type ApplicationProps = { applicationList: ApplicationPayload[]; - createApplication: (appName: string) => void; + createApplication: ( + applicationName: string, + orgId?: string, + color?: string, + icon?: string, + ) => void; searchApplications: (keyword: string) => void; isCreatingApplication: creatingApplicationMap; isFetchingApplications: boolean; @@ -891,6 +897,8 @@ type ApplicationProps = { userOrgs: any; currentUser?: User; searchKeyword: string | undefined; + theme: any; + EnableFirstTimeUserExperience: (applicationId: string) => void; }; const getIsFromSignup = () => { @@ -923,8 +931,23 @@ class Applications extends Component< redirectUsingQueryParam = () => { const urlObject = new URL(window.location.href); const redirectUrl = urlObject?.searchParams.get("redirectUrl"); + const shouldEnableFirstTimeUserExperience = urlObject?.searchParams.get( + "enableFirstTimeUserExperience", + ); if (redirectUrl) { try { + if ( + window.location.pathname == SIGNUP_SUCCESS_URL && + shouldEnableFirstTimeUserExperience === "true" + ) { + const applicationIdReg = redirectUrl.match( + /\/applications\/(.[^\/]*)\//, + ); + const applicationId = applicationIdReg ? applicationIdReg[1] : null; + if (applicationId) { + this.props.EnableFirstTimeUserExperience(applicationId); + } + } if (getIsSafeRedirectURL(redirectUrl)) { window.location.replace(redirectUrl); } @@ -962,16 +985,26 @@ const mapStateToProps = (state: AppState) => ({ userOrgs: getUserApplicationsOrgsList(state), currentUser: getCurrentUser(state), searchKeyword: getApplicationSearchKeyword(state), + theme: getCurrentThemeDetails(state), }); const mapDispatchToProps = (dispatch: any) => ({ - getAllApplication: () => - dispatch({ type: ReduxActionTypes.GET_ALL_APPLICATION_INIT }), - createApplication: (appName: string) => { + getAllApplication: () => { + dispatch({ type: ReduxActionTypes.GET_ALL_APPLICATION_INIT }); + }, + createApplication: ( + applicationName: string, + orgId?: string, + color?: string, + icon?: string, + ) => { dispatch({ type: ReduxActionTypes.CREATE_APPLICATION_INIT, payload: { - name: appName, + applicationName, + orgId, + icon, + color, }, }); }, @@ -983,6 +1016,20 @@ const mapDispatchToProps = (dispatch: any) => ({ }, }); }, + EnableFirstTimeUserExperience: (applicationId: string) => { + dispatch({ + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + payload: true, + }); + dispatch({ + type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + payload: applicationId, + }); + dispatch({ + type: ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL, + payload: true, + }); + }, }); export default connect(mapStateToProps, mapDispatchToProps)(Applications); diff --git a/app/client/src/pages/Editor/Explorer/index.tsx b/app/client/src/pages/Editor/Explorer/index.tsx index b80797f1532a..694f06a800cf 100644 --- a/app/client/src/pages/Editor/Explorer/index.tsx +++ b/app/client/src/pages/Editor/Explorer/index.tsx @@ -1,13 +1,31 @@ import { IPanelProps } from "@blueprintjs/core"; +import { forceOpenWidgetPanel } from "actions/widgetSidebarActions"; import React from "react"; -import { useSelector } from "react-redux"; +import { useEffect } from "react"; +import { useDispatch, useSelector } from "react-redux"; +import { AppState } from "reducers"; import { inOnboarding, isAddWidgetComplete } from "sagas/OnboardingSagas"; +import WidgetSidebar from "../WidgetSidebar"; import EntityExplorer from "./EntityExplorer"; import OnboardingExplorer from "./Onboarding"; function ExplorerContent(props: IPanelProps) { const isInOnboarding = useSelector(inOnboarding); const addWidgetComplete = useSelector(isAddWidgetComplete); + const isForceOpenWidgetPanel = useSelector( + (state: AppState) => state.ui.onBoarding.forceOpenWidgetPanel, + ); + const dispatch = useDispatch(); + useEffect(() => { + if (isForceOpenWidgetPanel) { + props.openPanel({ component: WidgetSidebar }); + } + return () => { + if (isForceOpenWidgetPanel) { + dispatch(forceOpenWidgetPanel(false)); + } + }; + }, [isForceOpenWidgetPanel]); if (isInOnboarding && !addWidgetComplete) { return ; diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.test.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.test.tsx new file mode 100644 index 000000000000..aa9dcabf07f2 --- /dev/null +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.test.tsx @@ -0,0 +1,89 @@ +import React from "react"; +import { Provider } from "react-redux"; +import { render, screen } from "test/testUtils"; +import OnboardingChecklist from "./Checklist"; +import { getStore } from "./testUtils"; + +let container: any = null; + +let useIsWidgetActionConnectionPresent = false; +jest.mock("pages/Editor/utils", () => ({ + useIsWidgetActionConnectionPresent: () => useIsWidgetActionConnectionPresent, +})); + +function renderComponent(store: any) { + render( + + + , + container, + ); +} + +describe("Checklist", () => { + beforeEach(() => { + container = document.createElement("div"); + document.body.appendChild(container); + }); + + it("is rendered", () => { + renderComponent(getStore(0)); + const wrapper = screen.getAllByTestId("checklist-wrapper"); + expect(wrapper.length).toBe(1); + const completionInfo = screen.getAllByTestId("checklist-completion-info"); + expect(completionInfo[0].innerHTML).toBe("0 of 5"); + const datasourceButton = screen.getAllByTestId( + "checklist-datasource-button", + ); + expect(datasourceButton.length).toBe(1); + const actionButton = screen.getAllByTestId("checklist-action-button"); + expect(actionButton.length).toBe(1); + const widgetButton = screen.getAllByTestId("checklist-widget-button"); + expect(widgetButton.length).toBe(1); + const connectionButton = screen.getAllByTestId( + "checklist-connection-button", + ); + expect(connectionButton.length).toBe(1); + const deployButton = screen.getAllByTestId("checklist-deploy-button"); + expect(deployButton.length).toBe(1); + const banner = screen.queryAllByTestId("checklist-completion-banner"); + expect(banner.length).toBe(0); + }); + + it("with `add a datasource` task checked off", () => { + renderComponent(getStore(1)); + const datasourceButton = screen.queryAllByTestId( + "checklist-datasource-button", + ); + expect(datasourceButton.length).toBe(0); + }); + + it("with `add a query` task checked off", () => { + renderComponent(getStore(2)); + const actionButton = screen.queryAllByTestId("checklist-action-button"); + expect(actionButton.length).toBe(0); + }); + + it("with `add a widget` task checked off", () => { + renderComponent(getStore(3)); + const widgetButton = screen.queryAllByTestId("checklist-widget-button"); + expect(widgetButton.length).toBe(0); + }); + + it("with `connect your data` task checked off", () => { + useIsWidgetActionConnectionPresent = true; + renderComponent(getStore(4)); + const connectionButton = screen.queryAllByTestId( + "checklist-connection-button", + ); + expect(connectionButton.length).toBe(0); + }); + + it("with `Deploy your application` task checked off", () => { + renderComponent(getStore(5)); + const deployButton = screen.queryAllByTestId("checklist-connection-button"); + expect(deployButton.length).toBe(0); + const banner = screen.queryAllByTestId("checklist-completion-banner"); + expect(banner.length).toBe(1); + }); +}); diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx new file mode 100644 index 000000000000..3d71d9a5a84a --- /dev/null +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx @@ -0,0 +1,436 @@ +import Button, { Category } from "components/ads/Button"; +import Text, { TextType } from "components/ads/Text"; +import { Icon } from "@blueprintjs/core"; +import React from "react"; +import styled from "styled-components"; +import { useDispatch } from "react-redux"; +import { useSelector } from "store"; +import { + getActions, + getCanvasWidgets, + getDatasources, +} from "selectors/entitiesSelector"; +import { getCurrentThemeDetails } from "selectors/themeSelectors"; +import { useIsWidgetActionConnectionPresent } from "pages/Editor/utils"; +import { getEvaluationInverseDependencyMap } from "selectors/dataTreeSelectors"; +import { + APPLICATIONS_URL, + BUILDER_PAGE_URL, + INTEGRATION_EDITOR_URL, + INTEGRATION_TABS, +} from "constants/routes"; +import { + getApplicationLastDeployedAt, + getCurrentApplicationId, + getCurrentPageId, +} from "selectors/editorSelectors"; +import history from "utils/history"; +import { toggleInOnboardingWidgetSelection } from "actions/onboardingActions"; +import { ReduxActionTypes } from "constants/ReduxActionConstants"; +import { + getFirstTimeUserExperienceComplete, + getEnableFirstTimeUserExperience, +} from "selectors/onboardingSelectors"; +import AnalyticsUtil from "utils/AnalyticsUtil"; +import { Colors } from "constants/Colors"; +import { forceOpenWidgetPanel } from "actions/widgetSidebarActions"; +import { bindDataOnCanvas } from "actions/pluginActionActions"; + +const Wrapper = styled.div` + padding: 15px 55px; + background: #fff; + height: calc(100vh - 35px); +`; + +const Pageheader = styled.h4` + font-size: ${(props) => props.theme.fontSizes[6]}px; +`; + +const PageSubHeader = styled.p` + width: 100%; + margin-bottom: 30px; +`; + +const StatusWrapper = styled.p` + width: 100%; + margin-bottom: 30px; + & span { + font-weight: 700; + } +`; + +const StyledList = styled.ul` + margin: 0; + padding: 0; + list-style-type: none; + width: calc(100% - 160px); + overflow: auto; +`; + +const StyledListItem = styled.li` + width: 100%; + display: flex; + padding: 30px 0px; + align-items: center; + border-bottom: 1px solid ${(props) => props.theme.colors.grid}; + &:first-child { + border-top: 1px solid ${(props) => props.theme.colors.grid}; + } +`; + +const ChecklistText = styled.div` + flex-basis: calc(100% - 268px); + & span { + font-weight: 700; + } +`; + +const CompeleteMarkerIcon = styled.div<{ success: boolean }>` + width: 25px; + height: 25px; + border-radius: 30px; + border: 2px solid; + border-color: ${(props) => + props.success ? props.theme.colors.success.main : "#A9A7A7"}; + padding: 2px 2px; +`; + +const StyledCompleteMarker = styled.div` + flex-basis: 40px; +`; + +const StyledButton = styled(Button)` + width: 218px; + height: 30px; +`; + +const Backbutton = styled.span` + color: ${Colors.DIESEL}; + cursor: pointer; +`; + +const Banner = styled.div` + width: calc(100% - 113px); + border: 1px solid ${(props) => props.theme.colors.table.border}; + padding: 16px; + margin-top: 16px; +`; + +const BannerHeader = styled.h5` + font-size: 20px; + margin: 0; +`; + +const BannerText = styled.p` + margin: 8px 0px 16px; +`; + +export default function OnboardingChecklist() { + const dispatch = useDispatch(); + const datasources = useSelector(getDatasources); + const actions = useSelector(getActions); + const widgets = useSelector(getCanvasWidgets); + const deps = useSelector(getEvaluationInverseDependencyMap); + const isConnectionPresent = useIsWidgetActionConnectionPresent( + widgets, + actions, + deps, + ); + const theme = useSelector(getCurrentThemeDetails); + const applicationId = useSelector(getCurrentApplicationId); + const pageId = useSelector(getCurrentPageId); + const isDeployed = !!useSelector(getApplicationLastDeployedAt); + const isCompleted = useSelector(getFirstTimeUserExperienceComplete); + const isFirstTimeUserExperienceEnabled = useSelector( + getEnableFirstTimeUserExperience, + ); + let suggestedNextAction; + if (!isFirstTimeUserExperienceEnabled && !isCompleted) { + history.push(BUILDER_PAGE_URL(applicationId, pageId)); + } + if (!datasources.length) { + suggestedNextAction = "CREATE A DATASOURCE"; + } else if (!actions.length) { + suggestedNextAction = "CREATE A QUERY"; + } else if (Object.keys(widgets).length == 1) { + suggestedNextAction = "ADD WIDGETS"; + } else if (!isConnectionPresent) { + suggestedNextAction = "CONNECT DATA TO WIDGET"; + } else if (!isDeployed) { + suggestedNextAction = "DEPLOY APPLICATIONS"; + } + let completedTasks = 0; + + if (datasources.length) { + completedTasks++; + } + if (actions.length) { + completedTasks++; + } + if (Object.keys(widgets).length > 1) { + completedTasks++; + } + if (isConnectionPresent) { + completedTasks++; + } + if (isDeployed) { + completedTasks++; + } + const onconnectYourWidget = () => { + const action = actions[0]; + if (action && applicationId && pageId) { + dispatch( + bindDataOnCanvas({ + queryId: action.config.id, + applicationId, + pageId, + }), + ); + } else { + history.push(BUILDER_PAGE_URL(applicationId, pageId)); + } + AnalyticsUtil.logEvent("SIGNPOSTING_CONNECT_WIDGET_CLICK"); + }; + return ( + + history.push(BUILDER_PAGE_URL(applicationId, pageId))} + > + + + Back + + + {isCompleted && ( + + + Amazing work! You’ve explored the basics of Appsmith + + + You can carry on here, or explore the homepage to see how your + projects are stored. + + history.push(APPLICATIONS_URL)} + text="Explore homepage" + type="button" + /> + + )} + 👋 Welcome to Appsmith! + + Let’s get you started on your first application, explore Appsmith + yourself or follow our guide below to discover what Appsmith can do. + + + + {completedTasks} of 5 + +  completed + + + + + + + + + + Connect your data source to start building an + application. + + {!datasources.length && !actions.length && ( + { + AnalyticsUtil.logEvent("SIGNPOSTING_CREATE_DATASOURCE_CLICK", { + from: "CHECKLIST", + }); + history.push( + INTEGRATION_EDITOR_URL( + applicationId, + pageId, + INTEGRATION_TABS.NEW, + ), + ); + }} + text="CREATE A DATASOURCE" + type="button" + /> + )} + + + + + + + + + Create a query of your data source. + + {!actions.length && ( + { + AnalyticsUtil.logEvent("SIGNPOSTING_CREATE_QUERY_CLICK", { + from: "CHECKLIST", + }); + history.push( + INTEGRATION_EDITOR_URL( + applicationId, + pageId, + INTEGRATION_TABS.ACTIVE, + ), + ); + }} + text="CREATE A QUERY" + type="button" + /> + )} + + + + 1}> + 1 + ? theme.colors.success.main + : "#A9A7A7" + } + data-testid="checklist-widget-complete-icon" + icon={ + Object.keys(widgets).length > 1 ? "tick-circle" : "small-tick" + } + iconSize={17} + /> + + + + Start visualising your application using widgets. + + {Object.keys(widgets).length == 1 && ( + { + AnalyticsUtil.logEvent("SIGNPOSTING_ADD_WIDGET_CLICK", { + from: "CHECKLIST", + }); + dispatch(toggleInOnboardingWidgetSelection(true)); + dispatch(forceOpenWidgetPanel(true)); + history.push(BUILDER_PAGE_URL(applicationId, pageId)); + }} + text="ADD WIDGETS" + type="button" + /> + )} + + + + + + + + + Connect your data to the widgets using JavaScript. + + {!isConnectionPresent && ( + + )} + + + + + + + + + Deploy your application, and see your creation live. + + {!isDeployed && ( + { + AnalyticsUtil.logEvent("SIGNPOSTING_PUBLISH_CLICK", { + from: "CHECKLIST", + }); + dispatch({ + type: ReduxActionTypes.PUBLISH_APPLICATION_INIT, + payload: { + applicationId, + }, + }); + }} + text="DEPLOY APPLICATIONS" + type="button" + /> + )} + + + + ); +} diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx new file mode 100644 index 000000000000..f5eb6840f4ab --- /dev/null +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx @@ -0,0 +1,219 @@ +import { Icon, Overlay } from "@blueprintjs/core"; +import Button, { Category } from "components/ads/Button"; +import { ReduxActionTypes } from "constants/ReduxActionConstants"; +import { APPLICATIONS_URL } from "constants/routes"; +import React from "react"; +import { useDispatch } from "react-redux"; +import styled from "styled-components"; +import AnalyticsUtil from "utils/AnalyticsUtil"; +import history from "utils/history"; + +const Wrapper = styled.div` + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +`; +const CenteredContainer = styled.div` + width: 783px; + height: 420px; + background: #fff; + padding: 16px 24px; + position: relative; +`; + +const ModalHeader = styled.h5` + font-size: 20px; + margin: 16px 0 6px; + text-align: center; +`; + +const ModalBody = styled.div` + text-align: center; +`; + +const ModalImgWrapper = styled.div` + display: flex; + justify-content: center; +`; + +const ModalContentWrapper = styled.div` + display: flex; + & div:nth-child(1) { + flex-basis: 165px; + } + & div:nth-child(2) { + flex-basis: 265px; + margin-left: 73px; + } + & div:nth-child(3) { + flex-basis: 135px; + margin-left: 72px; + } +`; + +const StyledImgWrapper = styled.div` + text-align: center; + &:nth-child(1) { + width: 25%; + position: relative; + right: -2px; + } + &:nth-child(2) { + padding-top: 28px; + width: 50%; + } + &:nth-child(3) { + padding-top: 22px; + width: 25%; + position: relative; + left: -24px; + } +`; + +const StyledImg = styled.img` + width: ${(props) => props.width}px; + vertical-align: middle; +`; + +const StyledCount = styled.h5` + font-size: 20px; + margin: 0 0 5px; + font-weight: 500; +`; + +const ModalContent = styled.p``; + +const ModalFooter = styled.div` + text-align: center; +`; + +const StyledButton = styled(Button)` + width: 145px; + height: 38px; + display: inline-block; + margin: 33px 0px 30px; +`; + +const ModalFooterNote = styled.p` + & span { + cursor: pointer; + color: ${(props) => props.theme.colors.welcomeTourStickySidebarBackground}; + } +`; + +const StyledClose = styled(Icon)` + position: absolute; + top: 20px; + right: 20px; + cursor: pointer; +`; + +type IntroductionModalProps = { + close: () => void; +}; + +export default function IntroductionModal({ close }: IntroductionModalProps) { + const dispatch = useDispatch(); + const onBuildApp = () => { + AnalyticsUtil.logEvent("SIGNPOSTING_BUILD_APP_CLICK"); + close(); + }; + return ( + + + + + Here’s how Appsmith works + + + + + + + + + + + + + + + +
+ 1. + Connect your database or API +
+
+ 2. + + Connect queried data to pre-built widgets and customise with + Javascript. + +
+
+ 3. + + Instantly publish and share your apps + +
+
+
+ + + + Want more help getting started, let’s  + { + AnalyticsUtil.logEvent("SIGNPOSTING_WELCOME_TOUR_CLICK"); + history.push(APPLICATIONS_URL); + dispatch({ + type: + ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + payload: false, + }); + dispatch({ + type: + ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + payload: "", + }); + dispatch({ + type: ReduxActionTypes.ONBOARDING_CREATE_APPLICATION, + }); + }} + > + build an app together. + + + +
+
+
+ ); +} diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.test.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.test.tsx new file mode 100644 index 000000000000..919542e8f701 --- /dev/null +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.test.tsx @@ -0,0 +1,87 @@ +import React from "react"; +import { Provider } from "react-redux"; +import { render, screen } from "test/testUtils"; +import OnboardingStatusbar from "./Statusbar"; +import { getStore } from "./testUtils"; +import { + ONBOARDING_STEPS_FIRST, + ONBOARDING_STEPS_SECOND, + ONBOARDING_STEPS_THIRD, + ONBOARDING_STEPS_FOURTH, + ONBOARDING_STEPS_FIVETH, + ONBOARDING_STEPS_SIXTH, +} from "./constants"; + +let useIsWidgetActionConnectionPresent = false; +jest.mock("pages/Editor/utils", () => ({ + useIsWidgetActionConnectionPresent: () => useIsWidgetActionConnectionPresent, +})); + +let container: any = null; + +function renderComponent(store: any) { + render( + + + , + container, + ); +} + +describe("Statusbar", () => { + beforeEach(() => { + container = document.createElement("div"); + document.body.appendChild(container); + }); + + it("is rendered", async (done) => { + renderComponent(getStore(0)); + const statusbar = screen.queryAllByTestId("statusbar-container"); + expect(statusbar).toHaveLength(1); + done(); + }); + + it("is pro", async (done) => { + renderComponent(getStore(0)); + const statusbar = screen.queryAllByTestId("statusbar-container"); + expect(statusbar).not.toBeNull(); + done(); + }); + + it("is showing first step", async () => { + renderComponent(getStore(0)); + const statusbarText = screen.queryAllByTestId("statusbar-text"); + expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STEPS_FIRST); + }); + + it("is showing second step", async () => { + renderComponent(getStore(1)); + const statusbarText = screen.queryAllByTestId("statusbar-text"); + expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STEPS_SECOND); + }); + + it("is showing third step", async () => { + renderComponent(getStore(2)); + const statusbarText = screen.queryAllByTestId("statusbar-text"); + expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STEPS_THIRD); + }); + + it("is showing fourth step", async () => { + renderComponent(getStore(3)); + const statusbarText = screen.queryAllByTestId("statusbar-text"); + expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STEPS_FOURTH); + }); + + it("is showing fifth step", async () => { + useIsWidgetActionConnectionPresent = true; + renderComponent(getStore(4)); + const statusbarText = screen.queryAllByTestId("statusbar-text"); + expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STEPS_FIVETH); + }); + + it("is showing fifth step", async () => { + renderComponent(getStore(5)); + const statusbarText = screen.queryAllByTestId("statusbar-text"); + expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STEPS_SIXTH); + }); +}); diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx new file mode 100644 index 000000000000..74cd20d12c07 --- /dev/null +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx @@ -0,0 +1,236 @@ +import { Icon } from "@blueprintjs/core"; +import { ReduxActionTypes } from "constants/ReduxActionConstants"; +import { getOnboardingCheckListUrl } from "constants/routes"; +import { useIsWidgetActionConnectionPresent } from "pages/Editor/utils"; +import React, { SyntheticEvent } from "react"; +import { useDispatch, useSelector } from "react-redux"; +import { RouteComponentProps, withRouter } from "react-router-dom"; +import { getEvaluationInverseDependencyMap } from "selectors/dataTreeSelectors"; +import { + getApplicationLastDeployedAt, + getCurrentApplicationId, + getCurrentPageId, +} from "selectors/editorSelectors"; +import { + getActions, + getCanvasWidgets, + getDatasources, +} from "selectors/entitiesSelector"; +import { getFirstTimeUserExperienceComplete } from "selectors/onboardingSelectors"; +import styled from "styled-components"; +import history from "utils/history"; +import { + ONBOARDING_STEPS_FIRST, + ONBOARDING_STEPS_FIRST_ALT, + ONBOARDING_STEPS_SECOND, + ONBOARDING_STEPS_THIRD, + ONBOARDING_STEPS_FOURTH, + ONBOARDING_STEPS_FIVETH, + ONBOARDING_STEPS_SIXTH, +} from "./constants"; + +const Wrapper = styled.div<{ active: boolean }>` + position: relative; + width: 100%; + background-color: ${(props) => + props.active ? props.theme.colors.welcomeTourStickySidebarBackground : ""}; + cursor: ${(props) => (props.active ? "default" : "pointer")}; + height: 83px; + padding: 10px 16px; + transition: background-color 0.3s ease; + + &:hover .hover-icons { + opacity: 1; + } +`; + +const TitleWrapper = styled.p` + color: #fff; + font-size: 13px; + font-weight: 600; +`; + +const StatusText = styled.p` + color: #fff; + font-size: 13px; + & .hover-icons { + transform: translate(3px, 0px); + opacity: 0; + } +`; + +const ProgressContainer = styled.div` + background-color: rgb(255, 255, 255, 0.35); + border-radius: ${(props) => props.theme.radii[3]}px; + overflow: hidden; + margin-top: 12px; +`; + +const Progressbar = styled.div` + width: ${(props) => props.percentage}%; + height: 6px; + background: ${(props) => + props.active + ? "#fff" + : props.theme.colors.welcomeTourStickySidebarBackground}; + transition: width 0.3s ease, background 0.3s ease; + border-radius: ${(props) => props.theme.radii[3]}px; +`; + +const StyledClose = styled(Icon)` + position: absolute; + top: 15px; + right: 13px; + opacity: 0; +`; + +type StatusProgressbarType = { + percentage: number; + active: boolean; +}; + +export function StatusProgressbar(props: StatusProgressbarType) { + return ( + + + + ); +} + +const useStatus = (): { percentage: number; content: string } => { + const datasources = useSelector(getDatasources); + const actions = useSelector(getActions); + const widgets = useSelector(getCanvasWidgets); + const deps = useSelector(getEvaluationInverseDependencyMap); + const isConnectionPresent = useIsWidgetActionConnectionPresent( + widgets, + actions, + deps, + ); + const isDeployed = !!useSelector(getApplicationLastDeployedAt); + const isFirstTimeUserExperienceComplete = useSelector( + getFirstTimeUserExperienceComplete, + ); + + if (isFirstTimeUserExperienceComplete) { + return { + percentage: 100, + content: "Completed 🎉", + }; + } + + let content = ""; + let percentage = 0; + if (!datasources.length && !actions.length) { + content = + Object.keys(widgets).length == 1 + ? ONBOARDING_STEPS_FIRST + : ONBOARDING_STEPS_FIRST_ALT; + } else if (!actions.length) { + content = ONBOARDING_STEPS_SECOND; + } else if (Object.keys(widgets).length == 1) { + content = ONBOARDING_STEPS_THIRD; + } else if (!isConnectionPresent) { + content = ONBOARDING_STEPS_FOURTH; + } else if (!isDeployed) { + content = ONBOARDING_STEPS_FIVETH; + } else { + content = ONBOARDING_STEPS_SIXTH; + } + + if (datasources.length || actions.length) { + percentage += 20; + } + + if (actions.length) { + percentage += 20; + } + + if (Object.keys(widgets).length > 1) { + percentage += 20; + } + + if (isConnectionPresent) { + percentage += 20; + } + + if (isDeployed) { + percentage += 20; + } + + return { + percentage, + content, + }; +}; + +export function OnboardingStatusbar(props: RouteComponentProps) { + const dispatch = useDispatch(); + const applicationId = useSelector(getCurrentApplicationId); + const pageId = useSelector(getCurrentPageId); + const { content, percentage } = useStatus(); + const isChecklistPage = props.location.pathname.indexOf("/checklist") > -1; + const isGenerateAppPage = + props.location.pathname.indexOf("/generate-page/form") > -1; + if (isGenerateAppPage) { + return null; + } + const endFirstTimeUserExperience = (event?: SyntheticEvent) => { + event?.stopPropagation(); + dispatch({ + type: ReduxActionTypes.END_FIRST_TIME_USER_EXPERIENCE, + }); + }; + if (percentage == 100) { + dispatch({ + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + payload: false, + }); + dispatch({ + type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + payload: "", + }); + dispatch({ + type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_COMPLETE, + payload: true, + }); + } + + return ( + { + history.push(getOnboardingCheckListUrl(applicationId, pageId)); + }} + > + + GET STARTED + + {content}   + {!isChecklistPage && ( + + )} + + + + ); +} + +export default withRouter(OnboardingStatusbar); diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx new file mode 100644 index 000000000000..bb20045e4869 --- /dev/null +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx @@ -0,0 +1,241 @@ +import { toggleInOnboardingWidgetSelection } from "actions/onboardingActions"; +import { forceOpenWidgetPanel } from "actions/widgetSidebarActions"; +import Button from "components/ads/Button"; +import { ReduxActionTypes } from "constants/ReduxActionConstants"; +import { INTEGRATION_EDITOR_URL, INTEGRATION_TABS } from "constants/routes"; +import React from "react"; +import { useDispatch } from "react-redux"; +import { + getCurrentApplicationId, + getCurrentPageId, +} from "selectors/editorSelectors"; +import { + getActions, + getCanvasWidgets, + getDatasources, +} from "selectors/entitiesSelector"; +import { getFirstTimeUserExperienceModal } from "selectors/onboardingSelectors"; +import { useSelector } from "store"; +import styled from "styled-components"; +import AnalyticsUtil from "utils/AnalyticsUtil"; +import history from "utils/history"; +import IntroductionModal from "./IntroductionModal"; + +const Wrapper = styled.div` + width: 100%; + display: flex; + align-items: center; + justify-content: center; + height: calc(100vh - 36px); + margin: 0 auto; + background-color: #fff; +`; + +const CenteredContainer = styled.div` + text-align: center; + width: 529px; +`; + +const TaskImageContainer = styled.div` + width: 220px; + margin: 0 auto; +`; + +const TaskImage = styled.img` + width: 100%; +`; + +const TaskHeader = styled.h5` + font-size: 24px; + margin-bottom: 16px; +`; + +const TaskSubText = styled.p` + width: 100%; +`; + +const TaskButtonWrapper = styled.div` + margin-top: 30px; +`; + +const StyledButton = styled(Button)` + width: 208px; + margin: 0 auto; + height: 38px; +`; + +const Taskfootnote = styled.p` + margin-top: 30px; + & span { + color: ${(props) => props.theme.colors.welcomeTourStickySidebarBackground}; + font-weight: 600; + cursor: pointer; + } +`; + +export default function OnboardingTasks() { + const applicationId = useSelector(getCurrentApplicationId); + const pageId = useSelector(getCurrentPageId); + let content; + const datasources = useSelector(getDatasources); + const actions = useSelector(getActions); + const widgets = useSelector(getCanvasWidgets); + const dispatch = useDispatch(); + const showModal = useSelector(getFirstTimeUserExperienceModal); + if (!datasources.length && !actions.length) { + content = ( + + + + + Start by adding your first Data source + + Adding a data source makes creating applications more powerful. Don’t + worry if you don’t have any data to hand, we have sample data you can + use. + + + { + AnalyticsUtil.logEvent("SIGNPOSTING_CREATE_DATASOURCE_CLICK", { + from: "CANVAS", + }); + history.push( + INTEGRATION_EDITOR_URL( + applicationId, + pageId, + INTEGRATION_TABS.NEW, + ), + ); + }} + tag="button" + text="+ Add a data source" + type="button" + /> + + + Alternatively you can also  + { + AnalyticsUtil.logEvent("SIGNPOSTING_ADD_WIDGET_CLICK", { + from: "CANVAS", + }); + dispatch(toggleInOnboardingWidgetSelection(true)); + dispatch(forceOpenWidgetPanel(true)); + }} + > + Add widgets + +  first. + + + ); + } else if (!actions.length) { + content = ( + + + + + Next, create a query + + Great job adding a data source! The next thing you can do is create a + query on your data. + + + { + AnalyticsUtil.logEvent("SIGNPOSTING_CREATE_QUERY_CLICK", { + from: "CANVAS", + }); + history.push( + INTEGRATION_EDITOR_URL( + applicationId, + pageId, + INTEGRATION_TABS.ACTIVE, + ), + ); + }} + tag="button" + text="+ create a query" + type="button" + /> + + + Alternatively you can also  + { + AnalyticsUtil.logEvent("SIGNPOSTING_ADD_WIDGET_CLICK", { + from: "CANVAS", + }); + dispatch(toggleInOnboardingWidgetSelection(true)); + dispatch(forceOpenWidgetPanel(true)); + }} + > + Add widgets + + + + ); + } else if (Object.keys(widgets).length == 1) { + content = ( + + + + + Next, add a widget to start displaying data + + Great job adding a data source! The next thing you can do is add + widget to start start making your data visual. + + + { + AnalyticsUtil.logEvent("SIGNPOSTING_ADD_WIDGET_CLICK", { + from: "CANVAS", + }); + dispatch(toggleInOnboardingWidgetSelection(true)); + dispatch(forceOpenWidgetPanel(true)); + }} + tag="button" + text="+ Add a Widget" + type="button" + /> + + + Alternatively you can also  + { + AnalyticsUtil.logEvent("SIGNPOSTING_PUBLISH_CLICK", { + from: "CANVAS", + }); + dispatch({ + type: ReduxActionTypes.PUBLISH_APPLICATION_INIT, + payload: { + applicationId, + }, + }); + }} + > + Deploy your applications + + . + + + ); + } + return ( + + {content} + {showModal && ( + { + dispatch({ + type: ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL, + payload: false, + }); + }} + /> + )} + + ); +} diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts b/app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts new file mode 100644 index 000000000000..8637fbf7866f --- /dev/null +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts @@ -0,0 +1,7 @@ +export const ONBOARDING_STEPS_FIRST = "First: Add a Datasource"; +export const ONBOARDING_STEPS_FIRST_ALT = "Next: Add a Datasource"; +export const ONBOARDING_STEPS_SECOND = "Next: Add a Query"; +export const ONBOARDING_STEPS_THIRD = "Next: Add a Widget"; +export const ONBOARDING_STEPS_FOURTH = "Next: Connect data to Widget"; +export const ONBOARDING_STEPS_FIVETH = "Next: Deploy your application"; +export const ONBOARDING_STEPS_SIXTH = "Completed 🎉"; diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/testUtils.ts b/app/client/src/pages/Editor/FirstTimeUserExperience/testUtils.ts new file mode 100644 index 000000000000..46305bc3d84c --- /dev/null +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/testUtils.ts @@ -0,0 +1,67 @@ +import configureStore from "redux-mock-store"; + +const initialState: any = { + entities: { + pageList: { + applicationId: Math.random(), + currentPageId: Math.random(), + }, + datasources: { + list: [], + }, + actions: [], + canvasWidgets: { + main_component: {}, + }, + }, + evaluations: { + dependencies: { + inverseDependencyMap: {}, + }, + }, + ui: { + applications: { + currentApplication: { + lastDeployedAt: null, + }, + }, + onBoarding: { + firstTimeUserExperienceComplete: false, + }, + theme: { + theme: { + colors: { + success: { + main: "#e2e2e2", + }, + }, + }, + }, + }, +}; +let state = JSON.parse(JSON.stringify(initialState)); +const mockStore = configureStore(); + +export function getStore(step: number) { + switch (step) { + case 0: + state = JSON.parse(JSON.stringify(initialState)); + break; + case 1: + state.entities.datasources.list.push({}); + break; + case 2: + state.entities.actions.push({}); + break; + case 3: + state.entities.canvasWidgets[Math.random()] = {}; + break; + case 4: + break; + case 5: + state.ui.applications.currentApplication.lastDeployedAt = Math.random(); + state.ui.onBoarding.firstTimeUserExperienceComplete = true; + break; + } + return mockStore(state); +} diff --git a/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx b/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx index 74c44e03a26c..c0771151bb09 100644 --- a/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx +++ b/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx @@ -58,6 +58,7 @@ import Tooltip from "components/ads/Tooltip"; import { Bold, Label, SelectWrapper } from "./styles"; import { GeneratePagePayload } from "./types"; import Icon from "components/ads/Icon"; +import { ReduxActionTypes } from "constants/ReduxActionConstants"; // ---------- Styles ---------- @@ -500,6 +501,14 @@ function GeneratePageForm() { AnalyticsUtil.logEvent("GEN_CRUD_PAGE_FORM_SUBMIT"); dispatch(generateTemplateToUpdatePage(payload)); + dispatch({ + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + payload: true, + }); + dispatch({ + type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + payload: "", + }); }; const handleFormSubmit = () => { diff --git a/app/client/src/pages/Editor/IntegrationEditor/ActiveDataSources.tsx b/app/client/src/pages/Editor/IntegrationEditor/ActiveDataSources.tsx index fe43514b171f..984a58ed2c13 100644 --- a/app/client/src/pages/Editor/IntegrationEditor/ActiveDataSources.tsx +++ b/app/client/src/pages/Editor/IntegrationEditor/ActiveDataSources.tsx @@ -37,6 +37,21 @@ const EmptyActiveDatasource = styled.div` justify-content: center; `; +const GenerateInfoBanner = styled.div` + width: 518px; +`; + +const GenerateInfoHeader = styled.h5` + margin: 32px 0px 8px; + font-weight: 500; + color: ${(props) => props.theme.colors.textOnGreyBG}; +`; + +const GenerateInfoBody = styled.p` + font-size: 12px; + color: ${(props) => props.theme.colors.searchInput.placeholder}; +`; + type ActiveDataSourcesProps = { dataSources: Datasource[]; applicationId: string; @@ -53,7 +68,6 @@ type ActiveDataSourcesProps = { function ActiveDataSources(props: ActiveDataSourcesProps) { const { dataSources } = props; - const plugins = useSelector((state: AppState) => { return state.entities.plugins.list; }); @@ -87,6 +101,14 @@ function ActiveDataSources(props: ActiveDataSourcesProps) { /> ); })} + + Generate an application + + Quickly create a full application with using our Generation +  Application feature By adding a new query you’ll be able to + choose your own widgets, connect them to your data. + + ); } diff --git a/app/client/src/pages/Editor/MainContainer.tsx b/app/client/src/pages/Editor/MainContainer.tsx index c940c730f4c8..32d7d80364a8 100644 --- a/app/client/src/pages/Editor/MainContainer.tsx +++ b/app/client/src/pages/Editor/MainContainer.tsx @@ -2,15 +2,15 @@ import React from "react"; import styled from "styled-components"; import * as Sentry from "@sentry/react"; import { Route, Switch } from "react-router"; - import EditorsRouter from "./routes"; import WidgetsEditor from "./WidgetsEditor"; -import { BUILDER_URL } from "constants/routes"; import Sidebar from "components/editorComponents/Sidebar"; import BottomBar from "./BottomBar"; import getFeatureFlags from "utils/featureFlags"; +import { BUILDER_CHECKLIST_URL, BUILDER_URL } from "constants/routes"; +import OnboardingChecklist from "./FirstTimeUserExperience/Checklist"; const SentryRoute = Sentry.withSentryRouting(Route); const Container = styled.div` @@ -38,6 +38,11 @@ function MainContainer() { + diff --git a/app/client/src/pages/Editor/WidgetSidebar.tsx b/app/client/src/pages/Editor/WidgetSidebar.tsx index be21c64670af..2ceff3de0f98 100644 --- a/app/client/src/pages/Editor/WidgetSidebar.tsx +++ b/app/client/src/pages/Editor/WidgetSidebar.tsx @@ -1,5 +1,5 @@ import React, { useRef, useEffect, useState } from "react"; -import { useSelector } from "react-redux"; +import { useDispatch, useSelector } from "react-redux"; import WidgetCard from "./WidgetCard"; import styled from "styled-components"; import { @@ -24,6 +24,7 @@ import { import { BUILDER_PAGE_URL } from "constants/routes"; import OnboardingIndicator from "components/editorComponents/Onboarding/Indicator"; import { useLocation } from "react-router"; +import { forceOpenWidgetPanel } from "actions/widgetSidebarActions"; const MainWrapper = styled.div` text-transform: capitalize; @@ -147,6 +148,11 @@ function WidgetSidebar(props: IPanelProps) { const showTableWidget = currentStep >= OnboardingStep.RUN_QUERY_SUCCESS; const showInputWidget = currentStep >= OnboardingStep.ADD_INPUT_WIDGET; + const dispatch = useDispatch(); + const closeWidgetPanel = () => { + dispatch(forceOpenWidgetPanel(false)); + props.closePanel(); + }; return ( <> @@ -169,7 +175,7 @@ function WidgetSidebar(props: IPanelProps) { color={Colors.WHITE} icon="cross" iconSize={16} - onClick={props.closePanel} + onClick={closeWidgetPanel} /> diff --git a/app/client/src/pages/Editor/WidgetsEditor.tsx b/app/client/src/pages/Editor/WidgetsEditor.tsx index a18c90cc55b7..e0aa4f1abc6e 100644 --- a/app/client/src/pages/Editor/WidgetsEditor.tsx +++ b/app/client/src/pages/Editor/WidgetsEditor.tsx @@ -28,6 +28,12 @@ import { setCanvasSelectionFromEditor } from "actions/canvasSelectionActions"; import CrudInfoModal from "./GeneratePage/components/CrudInfoModal"; import EditorContextProvider from "components/editorComponents/EditorContextProvider"; import { useAllowEditorDragToSelect } from "utils/hooks/useAllowEditorDragToSelect"; +import OnboardingTasks from "./FirstTimeUserExperience/Tasks"; +import { + getIsOnboardingTasksView, + getIsOnboardingWidgetSelection, +} from "selectors/entitiesSelector"; +import { getIsFirstTimeUserExperienceEnabled } from "selectors/onboardingSelectors"; const EditorWrapper = styled.div` display: flex; @@ -67,6 +73,13 @@ function WidgetsEditor() { const currentPageName = useSelector(getCurrentPageName); const currentApp = useSelector(getCurrentApplication); + const showOnboardingTasks = useSelector(getIsOnboardingTasksView); + const enableFirstTimeUserExperience = useSelector( + getIsFirstTimeUserExperienceEnabled, + ); + const isOnboardingWidgetSelection = useSelector( + getIsOnboardingWidgetSelection, + ); useDynamicAppLayout(); useEffect(() => { PerformanceTracker.stopTracking(PerformanceTransactionName.CLOSE_SIDE_PANE); @@ -137,19 +150,25 @@ function WidgetsEditor() { PerformanceTracker.stopTracking(); return ( - - - {node} - - - - - + {enableFirstTimeUserExperience && + showOnboardingTasks && + !isOnboardingWidgetSelection ? ( + + ) : ( + + + {node} + + + + + + )} ); } diff --git a/app/client/src/pages/Editor/utils.ts b/app/client/src/pages/Editor/utils.ts index ed00dbfb48f4..de951a13bc52 100644 --- a/app/client/src/pages/Editor/utils.ts +++ b/app/client/src/pages/Editor/utils.ts @@ -1,4 +1,5 @@ -import { debounce } from "lodash"; +import { getDependenciesFromInverseDependencies } from "components/editorComponents/Debugger/helpers"; +import _, { debounce } from "lodash"; import ReactDOM from "react-dom"; import ResizeObserver from "resize-observer-polyfill"; import getFeatureFlags from "utils/featureFlags"; @@ -168,3 +169,34 @@ const createDragHandler = ( ReactDOM.render(dragHandle(), dragElement); return dragElement; }; + +export const useIsWidgetActionConnectionPresent = ( + widgets: any, + actions: any, + deps: any, +): boolean => { + const actionLables = actions.map((action: any) => action.config.name); + + let isBindingAvailable = !!Object.values(widgets).find((widget: any) => { + const depsConnections = getDependenciesFromInverseDependencies( + deps, + widget.widgetName, + ); + return !!_.intersection(depsConnections?.directDependencies, actionLables) + .length; + }); + + if (!isBindingAvailable) { + isBindingAvailable = !!Object.values(widgets).find((widget: any) => { + return ( + widget.dynamicTriggerPathList && + !!widget.dynamicTriggerPathList.find((path: { key: string }) => { + return !!actionLables.find((label: string) => { + return widget[path.key].indexOf(`${label}.run`) > -1; + }); + }) + ); + }); + } + return isBindingAvailable; +}; diff --git a/app/client/src/pages/common/ProfileDropdown.tsx b/app/client/src/pages/common/ProfileDropdown.tsx index 7d9b8bf5fa75..98bd1d4818f9 100644 --- a/app/client/src/pages/common/ProfileDropdown.tsx +++ b/app/client/src/pages/common/ProfileDropdown.tsx @@ -15,7 +15,6 @@ import ProfileImage from "./ProfileImage"; import { PopperModifiers } from "@blueprintjs/core"; import { PROFILE } from "constants/routes"; import UserApi from "api/UserApi"; - type TagProps = CommonComponentProps & { onClick?: (text: string) => void; userName?: string; diff --git a/app/client/src/reducers/uiReducers/onBoardingReducer.ts b/app/client/src/reducers/uiReducers/onBoardingReducer.ts index 6d5671112727..e05d36126082 100644 --- a/app/client/src/reducers/uiReducers/onBoardingReducer.ts +++ b/app/client/src/reducers/uiReducers/onBoardingReducer.ts @@ -27,6 +27,12 @@ const initialState: OnboardingState = { }, allowMinimize: false, }, + inOnboardingWidgetSelection: false, + enableFirstTimeUserExperience: false, + firstTimeUserExperienceApplicationId: "", + firstTimeUserExperienceComplete: false, + showFirstTimeUserExperienceModal: false, + forceOpenWidgetPanel: false, }; export interface OnboardingState { @@ -41,6 +47,12 @@ export interface OnboardingState { showHelper: boolean; helperStepConfig: OnboardingHelperConfig; showingIndicator: OnboardingStep; + inOnboardingWidgetSelection: boolean; + enableFirstTimeUserExperience: boolean; + firstTimeUserExperienceApplicationId: string; + firstTimeUserExperienceComplete: boolean; + showFirstTimeUserExperienceModal: boolean; + forceOpenWidgetPanel: boolean; } const onboardingReducer = createReducer(initialState, { @@ -85,6 +97,10 @@ const onboardingReducer = createReducer(initialState, { return { ...initialState, inOnboarding: action.payload, + enableFirstTimeUserExperience: state.enableFirstTimeUserExperience, + firstTimeUserExperienceApplicationId: + state.firstTimeUserExperienceApplicationId, + showFirstTimeUserExperienceModal: state.showFirstTimeUserExperienceModal, }; }, [ReduxActionTypes.ADD_WIDGET_COMPLETE]: (state: OnboardingState) => { @@ -142,8 +158,63 @@ const onboardingReducer = createReducer(initialState, { return { ...state, ...initialState, + enableFirstTimeUserExperience: state.enableFirstTimeUserExperience, + firstTimeUserExperienceApplicationId: + state.firstTimeUserExperienceApplicationId, + showFirstTimeUserExperienceModal: state.showFirstTimeUserExperienceModal, }; }, + [ReduxActionTypes.TOGGLE_ONBOARDING_WIDGET_SELECTION]: ( + state: OnboardingState, + action: ReduxAction, + ) => { + return { + ...state, + inOnboardingWidgetSelection: action.payload, + }; + }, + [ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE]: ( + state: OnboardingState, + action: ReduxAction, + ) => { + return { + ...state, + enableFirstTimeUserExperience: action.payload, + }; + }, + [ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID]: ( + state: OnboardingState, + action: ReduxAction, + ) => { + return { + ...state, + firstTimeUserExperienceApplicationId: action.payload, + }; + }, + [ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_COMPLETE]: ( + state: OnboardingState, + action: ReduxAction, + ) => { + return { + ...state, + firstTimeUserExperienceComplete: action.payload, + }; + }, + [ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL]: ( + state: OnboardingState, + action: ReduxAction, + ) => { + return { + ...state, + showFirstTimeUserExperienceModal: action.payload, + }; + }, + [ReduxActionTypes.SET_FORCE_WIDGET_PANEL_OPEN]: ( + state: OnboardingState, + action: ReduxAction, + ) => { + return { ...state, forceOpenWidgetPanel: action.payload }; + }, }); export default onboardingReducer; diff --git a/app/client/src/reducers/uiReducers/widgetSidebarReducer.ts b/app/client/src/reducers/uiReducers/widgetSidebarReducer.ts new file mode 100644 index 000000000000..7490d3a0c703 --- /dev/null +++ b/app/client/src/reducers/uiReducers/widgetSidebarReducer.ts @@ -0,0 +1,34 @@ +import { createReducer } from "utils/AppsmithUtils"; +import { WidgetCardProps } from "widgets/BaseWidget"; +import WidgetSidebarResponse from "mockResponses/WidgetSidebarResponse"; +import { + LoadWidgetSidebarPayload, + ReduxAction, + ReduxActionTypes, +} from "constants/ReduxActionConstants"; +import { EditorReduxState } from "./editorReducer"; + +export interface WidgetSidebarReduxState { + cards: WidgetCardProps[]; + forceOpen: boolean; +} + +const initialState: WidgetSidebarReduxState = { + cards: WidgetSidebarResponse, + forceOpen: false, +}; + +export const widgetSidebarReducer = createReducer(initialState, { + [ReduxActionTypes.FETCH_WIDGET_CARDS_SUCCESS]: ( + state: EditorReduxState, + action: ReduxAction, + ) => { + return { ...state, ...action.payload }; + }, + [ReduxActionTypes.SET_FORCE_WIDGET_PANEL_OPEN]: ( + state: EditorReduxState, + action: ReduxAction, + ) => { + return { ...state, forceOpen: action.payload }; + }, +}); diff --git a/app/client/src/sagas/ApplicationSagas.tsx b/app/client/src/sagas/ApplicationSagas.tsx index d67296701521..87f6a5c1f1c9 100644 --- a/app/client/src/sagas/ApplicationSagas.tsx +++ b/app/client/src/sagas/ApplicationSagas.tsx @@ -63,6 +63,10 @@ import { deleteRecentAppEntities } from "utils/storage"; import { reconnectWebsocket as reconnectWebsocketAction } from "actions/websocketActions"; import { getCurrentOrg } from "selectors/organizationSelectors"; import { Org } from "constants/orgConstants"; +import { + getEnableFirstTimeUserExperience, + getFirstTimeUserExperienceApplicationId, +} from "selectors/onboardingSelectors"; const getDefaultPageId = ( pages?: ApplicationPagePayload[], @@ -107,6 +111,13 @@ export function* publishApplicationSaga( appicationViewPageUrl += "?onboardingComplete=true"; } + yield put({ + type: ReduxActionTypes.FETCH_APPLICATION_INIT, + payload: { + applicationId: applicationId, + mode: APP_MODE.EDIT, + }, + }); // If the tab is opened focus and reload else open in new tab if (!windowReference || windowReference.closed) { windowReference = window.open(appicationViewPageUrl, "_blank"); @@ -457,10 +468,29 @@ export function* createApplicationSaga( application, }, }); - const pageURL = getGenerateTemplateURL( - application.id, - application.defaultPageId, + const isFirstTimeUserExperienceEnabled = yield select( + getEnableFirstTimeUserExperience, + ); + const FirstTimeUserExperienceApplicationId = yield select( + getFirstTimeUserExperienceApplicationId, ); + let pageURL; + if ( + isFirstTimeUserExperienceEnabled && + FirstTimeUserExperienceApplicationId == "" + ) { + yield put({ + type: + ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + payload: application.id, + }); + pageURL = BUILDER_PAGE_URL(application.id, application.defaultPageId); + } else { + pageURL = getGenerateTemplateURL( + application.id, + application.defaultPageId, + ); + } history.push(pageURL); // subscribe to newly created application diff --git a/app/client/src/sagas/OnboardingSagas.ts b/app/client/src/sagas/OnboardingSagas.ts index 9d5ddb3ed041..0d545b5ca7ba 100644 --- a/app/client/src/sagas/OnboardingSagas.ts +++ b/app/client/src/sagas/OnboardingSagas.ts @@ -3,6 +3,7 @@ import DatasourcesApi from "api/DatasourcesApi"; import { Datasource } from "entities/Datasource"; import { Plugin } from "api/PluginApi"; import { + ReduxAction, ReduxActionErrorTypes, ReduxActionTypes, WidgetReduxActionTypes, @@ -28,6 +29,8 @@ import { getDataTree } from "selectors/dataTreeSelectors"; import { getCurrentOrgId } from "selectors/organizationSelectors"; import { getOnboardingState, + setEnableFirstTimeUserExperience as storeEnableFirstTimerUserExperience, + setFirstTimeUserExperienceApplicationId as storeFirstTimeUserExperienceApplicationId, setOnboardingState, setOnboardingWelcomeState, } from "utils/storage"; @@ -101,6 +104,12 @@ import { PropertyEvaluationErrorType, } from "utils/DynamicBindingUtils"; import { GRID_DENSITY_MIGRATION_V1 } from "widgets/constants"; +import { + getFirstTimeUserExperienceApplicationId, + getIsFirstTimeUserExperienceEnabled, +} from "selectors/onboardingSelectors"; +import { Toaster } from "components/ads/Toast"; +import { Variant } from "components/ads/common"; export const getCurrentStep = (state: AppState) => state.ui.onBoarding.currentStep; @@ -561,9 +570,26 @@ function* createApplication() { const userOrgs = yield select(getUserApplicationsOrgs); const currentOrganizationId = currentUser.currentOrganizationId; let organization; + const isFirstTimeUserExperiencedEnabled = yield select( + getIsFirstTimeUserExperienceEnabled, + ); + if (isFirstTimeUserExperiencedEnabled) { + yield put({ + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + payload: false, + }); + yield put({ + type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + payload: "", + }); + } if (!currentOrganizationId) { - organization = userOrgs[0]; + if (userOrgs.length) { + organization = userOrgs[0]; + } else { + organization = currentUser.organizationIds[0]; + } } else { const filteredOrganizations = userOrgs.filter( (org: any) => org.organization.id === currentOrganizationId, @@ -889,6 +915,48 @@ export default function* onboardingSagas() { } } +function* setEnableFirstTimeUserExperience(action: ReduxAction) { + yield storeEnableFirstTimerUserExperience(action.payload); +} + +function* setFirstTimeUserExperienceApplicationId(action: ReduxAction) { + yield storeFirstTimeUserExperienceApplicationId(action.payload); +} + +function* endFirstTimeUserExperienceSaga() { + const firstTimeUserExperienceAppId = yield select( + getFirstTimeUserExperienceApplicationId, + ); + yield put({ + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + payload: false, + }); + yield put({ + type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + payload: "", + }); + Toaster.show({ + text: "Skipped First time user experience", + hideProgressBar: false, + variant: Variant.success, + dispatchableAction: { + type: ReduxActionTypes.UNDO_END_FIRST_TIME_USER_EXPERIENCE, + payload: firstTimeUserExperienceAppId, + }, + }); +} + +function* undoEndFirstTimeUserExperienceSaga(action: ReduxAction) { + yield put({ + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + payload: true, + }); + yield put({ + type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + payload: action.payload, + }); +} + function* onboardingActionSagas() { yield all([ takeLatest( @@ -934,5 +1002,21 @@ function* onboardingActionSagas() { ReduxActionTypes.ONBOARDING_CREATE_APPLICATION, createApplication, ), + takeLatest( + ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + setEnableFirstTimeUserExperience, + ), + takeLatest( + ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + setFirstTimeUserExperienceApplicationId, + ), + takeLatest( + ReduxActionTypes.END_FIRST_TIME_USER_EXPERIENCE, + endFirstTimeUserExperienceSaga, + ), + takeLatest( + ReduxActionTypes.UNDO_END_FIRST_TIME_USER_EXPERIENCE, + undoEndFirstTimeUserExperienceSaga, + ), ]); } diff --git a/app/client/src/sagas/userSagas.tsx b/app/client/src/sagas/userSagas.tsx index 8906b8e376b9..fd8e70545199 100644 --- a/app/client/src/sagas/userSagas.tsx +++ b/app/client/src/sagas/userSagas.tsx @@ -54,6 +54,10 @@ import log from "loglevel"; import { getCurrentUser } from "selectors/usersSelectors"; import { initSocketConnection } from "actions/websocketActions"; +import { + getEnableFirstTimeUserExperience, + getFirstTimeUserExperienceApplicationId, +} from "utils/storage"; export function* createUserSaga( action: ReduxActionWithPromise, @@ -417,6 +421,22 @@ function* fetchFeatureFlags() { } } +function* updateFirstTimeUserExperienceSage() { + const enable = yield getEnableFirstTimeUserExperience(); + + if (enable) { + const applicationId = yield getFirstTimeUserExperienceApplicationId() || ""; + yield put({ + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + payload: true, + }); + yield put({ + type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + payload: applicationId, + }); + } +} + export default function* userSagas() { yield all([ takeLatest(ReduxActionTypes.CREATE_USER_INIT, createUserSaga), @@ -442,6 +462,10 @@ export default function* userSagas() { takeLatest(ReduxActionTypes.UPLOAD_PROFILE_PHOTO, updatePhoto), takeLatest(ReduxActionTypes.LEAVE_ORG_INIT, leaveOrgSaga), takeLatest(ReduxActionTypes.FETCH_FEATURE_FLAGS_INIT, fetchFeatureFlags), + takeLatest( + ReduxActionTypes.FETCH_USER_DETAILS_SUCCESS, + updateFirstTimeUserExperienceSage, + ), ]); } diff --git a/app/client/src/selectors/editorSelectors.tsx b/app/client/src/selectors/editorSelectors.tsx index c9c61e5d15ee..bb32e23a087a 100644 --- a/app/client/src/selectors/editorSelectors.tsx +++ b/app/client/src/selectors/editorSelectors.tsx @@ -367,3 +367,6 @@ export const getJSCollectionById = createSelector( } }, ); + +export const getApplicationLastDeployedAt = (state: AppState) => + state.ui.applications.currentApplication?.lastDeployedAt; diff --git a/app/client/src/selectors/entitiesSelector.ts b/app/client/src/selectors/entitiesSelector.ts index a10df1dbd644..217c60028076 100644 --- a/app/client/src/selectors/entitiesSelector.ts +++ b/app/client/src/selectors/entitiesSelector.ts @@ -495,3 +495,17 @@ export const widgetsMapWithParentModalId = (state: AppState) => { ? getAllWidgetsMap(state) : getCanvasWidgetsWithParentId(state); }; + +export const getIsOnboardingTasksView = createSelector( + getDatasources, + getActions, + getCanvasWidgets, + (datasources, actions, widgets) => { + return ( + !datasources.length || !actions.length || Object.keys(widgets).length == 1 + ); + }, +); + +export const getIsOnboardingWidgetSelection = (state: AppState) => + state.ui.onBoarding.inOnboardingWidgetSelection; diff --git a/app/client/src/selectors/onboardingSelectors.tsx b/app/client/src/selectors/onboardingSelectors.tsx index 8b45231c9cc6..f17e9774bf15 100644 --- a/app/client/src/selectors/onboardingSelectors.tsx +++ b/app/client/src/selectors/onboardingSelectors.tsx @@ -1,4 +1,5 @@ import { AppState } from "reducers"; +import { createSelector } from "reselect"; export const getIsOnboardingHelperVisible = (state: AppState) => { const urlSearchParams = new URL(window.location.href).searchParams; @@ -8,3 +9,26 @@ export const getIsOnboardingHelperVisible = (state: AppState) => { export const showWelcomeScreen = (state: AppState) => state.ui.onBoarding.showOnboardingLoader; +export const getEnableFirstTimeUserExperience = (state: AppState) => { + return state.ui.onBoarding.enableFirstTimeUserExperience; +}; + +export const getFirstTimeUserExperienceApplicationId = (state: AppState) => { + return state.ui.onBoarding.firstTimeUserExperienceApplicationId; +}; + +export const getFirstTimeUserExperienceComplete = (state: AppState) => { + return state.ui.onBoarding.firstTimeUserExperienceComplete; +}; + +export const getFirstTimeUserExperienceModal = (state: AppState) => + state.ui.onBoarding.showFirstTimeUserExperienceModal; + +export const getIsFirstTimeUserExperienceEnabled = createSelector( + (state: AppState) => state.entities.pageList.applicationId, + getEnableFirstTimeUserExperience, + getFirstTimeUserExperienceApplicationId, + (currentApplicationId, enabled, applicationId) => { + return enabled && currentApplicationId === applicationId; + }, +); diff --git a/app/client/src/utils/AnalyticsUtil.tsx b/app/client/src/utils/AnalyticsUtil.tsx index e1339d89a3f7..a13a9c4353bc 100644 --- a/app/client/src/utils/AnalyticsUtil.tsx +++ b/app/client/src/utils/AnalyticsUtil.tsx @@ -170,7 +170,15 @@ export type EventName = | "SNIPPET_EXECUTE" | "SNIPPET_FILTER" | "SNIPPET_COPIED" - | "SNIPPET_CATEGORY_CLICK"; + | "SNIPPET_CATEGORY_CLICK" + | "SIGNPOSTING_SKIP" + | "SIGNPOSTING_CREATE_DATASOURCE_CLICK" + | "SIGNPOSTING_CREATE_QUERY_CLICK" + | "SIGNPOSTING_ADD_WIDGET_CLICK" + | "SIGNPOSTING_CONNECT_WIDGET_CLICK" + | "SIGNPOSTING_PUBLISH_CLICK" + | "SIGNPOSTING_BUILD_APP_CLICK" + | "SIGNPOSTING_WELCOME_TOUR_CLICK"; function getApplicationId(location: Location) { const pathSplit = location.pathname.split("/"); diff --git a/app/client/src/utils/storage.ts b/app/client/src/utils/storage.ts index e98430d2ce02..770d2f74ef30 100644 --- a/app/client/src/utils/storage.ts +++ b/app/client/src/utils/storage.ts @@ -13,6 +13,9 @@ const STORAGE_KEYS: { [id: string]: string } = { RECENT_ENTITIES: "RecentEntities", COMMENTS_INTRO_SEEN: "CommentsIntroSeen", ONBOARDING_FORM_IN_PROGRESS: "ONBOARDING_FORM_IN_PROGRESS", + ENABLE_FIRST_TIME_USER_EXPERIENCE: "ENABLE_FIRST_TIME_USER_EXPERIENCE", + FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID: + "FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID", }; const store = localforage.createInstance({ @@ -211,3 +214,81 @@ export const getCommentsIntroSeen = async () => { log.error(error); } }; + +export const setOnboardingFormInProgress = async (flag?: boolean) => { + try { + await store.setItem(STORAGE_KEYS.ONBOARDING_FORM_IN_PROGRESS, flag); + return true; + } catch (error) { + log.error("An error occurred when setting ONBOARDING_FORM_IN_PROGRESS"); + log.error(error); + return false; + } +}; + +export const getOnboardingFormInProgress = async () => { + try { + const onboardingFormInProgress = await store.getItem( + STORAGE_KEYS.ONBOARDING_FORM_IN_PROGRESS, + ); + return onboardingFormInProgress; + } catch (error) { + log.error("An error occurred while fetching ONBOARDING_FORM_IN_PROGRESS"); + log.error(error); + } +}; + +export const setEnableFirstTimeUserExperience = async (flag: boolean) => { + try { + await store.setItem(STORAGE_KEYS.ENABLE_FIRST_TIME_USER_EXPERIENCE, flag); + return true; + } catch (error) { + log.error( + "An error occurred while setting ENABLE_FIRST_TIME_USER_EXPERIENCE", + ); + log.error(error); + } +}; + +export const getEnableFirstTimeUserExperience = async () => { + try { + const enableFirstTimeUserExperience = await store.getItem( + STORAGE_KEYS.ENABLE_FIRST_TIME_USER_EXPERIENCE, + ); + return enableFirstTimeUserExperience; + } catch (error) { + log.error( + "An error occurred while fetching ENABLE_FIRST_TIME_USER_EXPERIENCE", + ); + log.error(error); + } +}; + +export const setFirstTimeUserExperienceApplicationId = async (id: string) => { + try { + await store.setItem( + STORAGE_KEYS.FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + id, + ); + return true; + } catch (error) { + log.error( + "An error occurred while setting FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID", + ); + log.error(error); + } +}; + +export const getFirstTimeUserExperienceApplicationId = async () => { + try { + const id = await store.getItem( + STORAGE_KEYS.FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + ); + return id; + } catch (error) { + log.error( + "An error occurred while fetching FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID", + ); + log.error(error); + } +}; diff --git a/coverage-summary.json b/coverage-summary.json index c745711b35f0..6d064ec18fc1 100644 --- a/coverage-summary.json +++ b/coverage-summary.json @@ -1,717 +1,427 @@ -{"total": {"lines":{"total":29011,"covered":15792,"skipped":0,"pct":54.43},"statements":{"total":32408,"covered":17454,"skipped":0,"pct":53.86},"functions":{"total":7082,"covered":2298,"skipped":0,"pct":32.45},"branches":{"total":15912,"covered":5681,"skipped":0,"pct":35.7}} -,"/Users/hetunandu/code/appsmith/app/client/src/store.ts": {"lines":{"total":19,"covered":16,"skipped":0,"pct":84.21},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":20,"covered":17,"skipped":0,"pct":85},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/actionActions.ts": {"lines":{"total":58,"covered":32,"skipped":0,"pct":55.17},"functions":{"total":29,"covered":0,"skipped":0,"pct":0},"statements":{"total":90,"covered":61,"skipped":0,"pct":67.78},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/apiPaneActions.ts": {"lines":{"total":19,"covered":10,"skipped":0,"pct":52.63},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":28,"covered":19,"skipped":0,"pct":67.86},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/applicationActions.ts": {"lines":{"total":20,"covered":12,"skipped":0,"pct":60},"functions":{"total":10,"covered":2,"skipped":0,"pct":20},"statements":{"total":31,"covered":23,"skipped":0,"pct":74.19},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/batchActions.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/canvasSelectionActions.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/commentActions.ts": {"lines":{"total":62,"covered":48,"skipped":0,"pct":77.42},"functions":{"total":39,"covered":17,"skipped":0,"pct":43.59},"statements":{"total":122,"covered":97,"skipped":0,"pct":79.51},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/controlActions.tsx": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":13,"covered":10,"skipped":0,"pct":76.92},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/datasourceActions.ts": {"lines":{"total":40,"covered":21,"skipped":0,"pct":52.5},"functions":{"total":19,"covered":0,"skipped":0,"pct":0},"statements":{"total":60,"covered":40,"skipped":0,"pct":66.67},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/debuggerActions.ts": {"lines":{"total":9,"covered":8,"skipped":0,"pct":88.89},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":22,"covered":17,"skipped":0,"pct":77.27},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/errorActions.ts": {"lines":{"total":5,"covered":3,"skipped":0,"pct":60},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/evaluationActions.ts": {"lines":{"total":14,"covered":7,"skipped":0,"pct":50},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":10,"skipped":0,"pct":58.82},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/explorerActions.ts": {"lines":{"total":3,"covered":2,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/globalSearchActions.ts": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":22,"covered":17,"skipped":0,"pct":77.27},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/helpActions.ts": {"lines":{"total":5,"covered":3,"skipped":0,"pct":60},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/importActions.ts": {"lines":{"total":3,"covered":2,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/initActions.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":10,"covered":9,"skipped":0,"pct":90},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/metaActions.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":8,"skipped":0,"pct":72.73},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/notificationActions.ts": {"lines":{"total":14,"covered":12,"skipped":0,"pct":85.71},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":34,"covered":23,"skipped":0,"pct":67.65},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/onboardingActions.ts": {"lines":{"total":21,"covered":11,"skipped":0,"pct":52.38},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":31,"covered":21,"skipped":0,"pct":67.74},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/orgActions.ts": {"lines":{"total":19,"covered":10,"skipped":0,"pct":52.63},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":28,"covered":19,"skipped":0,"pct":67.86},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/pageActions.tsx": {"lines":{"total":45,"covered":32,"skipped":0,"pct":71.11},"functions":{"total":22,"covered":8,"skipped":0,"pct":36.36},"statements":{"total":71,"covered":55,"skipped":0,"pct":77.46},"branches":{"total":4,"covered":1,"skipped":0,"pct":25}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/pluginActions.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":9,"skipped":0,"pct":69.23},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/propertyPaneActions.ts": {"lines":{"total":5,"covered":4,"skipped":0,"pct":80},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":7,"covered":6,"skipped":0,"pct":85.71},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/providerActions.ts": {"lines":{"total":17,"covered":9,"skipped":0,"pct":52.94},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":17,"skipped":0,"pct":68},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/queryPaneActions.ts": {"lines":{"total":7,"covered":4,"skipped":0,"pct":57.14},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":7,"skipped":0,"pct":70},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/themeActions.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/tourActions.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":9,"skipped":0,"pct":69.23},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/userActions.ts": {"lines":{"total":19,"covered":16,"skipped":0,"pct":84.21},"functions":{"total":14,"covered":0,"skipped":0,"pct":0},"statements":{"total":44,"covered":30,"skipped":0,"pct":68.18},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/websocketActions.ts": {"lines":{"total":8,"covered":6,"skipped":0,"pct":75},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":10,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/widgetActions.tsx": {"lines":{"total":34,"covered":26,"skipped":0,"pct":76.47},"functions":{"total":15,"covered":7,"skipped":0,"pct":46.67},"statements":{"total":50,"covered":41,"skipped":0,"pct":82},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/widgetSelectionActions.ts": {"lines":{"total":19,"covered":19,"skipped":0,"pct":100},"functions":{"total":8,"covered":8,"skipped":0,"pct":100},"statements":{"total":27,"covered":27,"skipped":0,"pct":100},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/actions/widgetSidebarActions.tsx": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":8,"skipped":0,"pct":72.73},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/ActionAPI.tsx": {"lines":{"total":32,"covered":17,"skipped":0,"pct":53.13},"functions":{"total":11,"covered":1,"skipped":0,"pct":9.09},"statements":{"total":33,"covered":18,"skipped":0,"pct":54.55},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/Api.ts": {"lines":{"total":27,"covered":23,"skipped":0,"pct":85.19},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":27,"covered":23,"skipped":0,"pct":85.19},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/ApiUtils.ts": {"lines":{"total":49,"covered":36,"skipped":0,"pct":73.47},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":53,"covered":40,"skipped":0,"pct":75.47},"branches":{"total":35,"covered":22,"skipped":0,"pct":62.86}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/ApplicationApi.tsx": {"lines":{"total":41,"covered":23,"skipped":0,"pct":56.1},"functions":{"total":18,"covered":2,"skipped":0,"pct":11.11},"statements":{"total":45,"covered":24,"skipped":0,"pct":53.33},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/CloudServicesApi.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":5,"covered":4,"skipped":0,"pct":80},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/CollectionApi.ts": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":8,"covered":7,"skipped":0,"pct":87.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/CommentsAPI.tsx": {"lines":{"total":27,"covered":21,"skipped":0,"pct":77.78},"functions":{"total":11,"covered":5,"skipped":0,"pct":45.45},"statements":{"total":28,"covered":22,"skipped":0,"pct":78.57},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/DatasourcesApi.ts": {"lines":{"total":23,"covered":14,"skipped":0,"pct":60.87},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":24,"covered":15,"skipped":0,"pct":62.5},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/ImportApi.ts": {"lines":{"total":8,"covered":6,"skipped":0,"pct":75},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":9,"covered":7,"skipped":0,"pct":77.78},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/NotificationsAPI.tsx": {"lines":{"total":16,"covered":12,"skipped":0,"pct":75},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":17,"covered":13,"skipped":0,"pct":76.47},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/OrgApi.ts": {"lines":{"total":31,"covered":18,"skipped":0,"pct":58.06},"functions":{"total":12,"covered":2,"skipped":0,"pct":16.67},"statements":{"total":32,"covered":19,"skipped":0,"pct":59.38},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/PageApi.tsx": {"lines":{"total":38,"covered":27,"skipped":0,"pct":71.05},"functions":{"total":14,"covered":3,"skipped":0,"pct":21.43},"statements":{"total":40,"covered":28,"skipped":0,"pct":70},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/PluginApi.ts": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":10,"covered":8,"skipped":0,"pct":80},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/ProvidersApi.ts": {"lines":{"total":33,"covered":18,"skipped":0,"pct":54.55},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":35,"covered":20,"skipped":0,"pct":57.14},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/SaasApi.ts": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":10,"covered":8,"skipped":0,"pct":80},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/UserApi.tsx": {"lines":{"total":47,"covered":30,"skipped":0,"pct":63.83},"functions":{"total":15,"covered":1,"skipped":0,"pct":6.67},"statements":{"total":48,"covered":31,"skipped":0,"pct":64.58},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/api/WidgetSidebarApi.tsx": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":8,"covered":7,"skipped":0,"pct":87.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/utils.ts": {"lines":{"total":32,"covered":29,"skipped":0,"pct":90.63},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":39,"covered":36,"skipped":0,"pct":92.31},"branches":{"total":12,"covered":3,"skipped":0,"pct":25}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/AppComments/AppCommentsFilterPopover.tsx": {"lines":{"total":36,"covered":17,"skipped":0,"pct":47.22},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":38,"covered":17,"skipped":0,"pct":44.74},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/CommentCard/CommentCard.tsx": {"lines":{"total":154,"covered":114,"skipped":0,"pct":74.03},"functions":{"total":41,"covered":18,"skipped":0,"pct":43.9},"statements":{"total":166,"covered":122,"skipped":0,"pct":73.49},"branches":{"total":113,"covered":74,"skipped":0,"pct":65.49}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/CommentCard/CommentContextMenu.tsx": {"lines":{"total":46,"covered":37,"skipped":0,"pct":80.43},"functions":{"total":12,"covered":4,"skipped":0,"pct":33.33},"statements":{"total":49,"covered":39,"skipped":0,"pct":79.59},"branches":{"total":22,"covered":18,"skipped":0,"pct":81.82}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/CommentCard/ResolveCommentButton.tsx": {"lines":{"total":24,"covered":22,"skipped":0,"pct":91.67},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":26,"covered":24,"skipped":0,"pct":92.31},"branches":{"total":10,"covered":7,"skipped":0,"pct":70}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/CommentThread/CommentThread.tsx": {"lines":{"total":49,"covered":47,"skipped":0,"pct":95.92},"functions":{"total":11,"covered":9,"skipped":0,"pct":81.82},"statements":{"total":53,"covered":49,"skipped":0,"pct":92.45},"branches":{"total":93,"covered":58,"skipped":0,"pct":62.37}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/CommentThread/ScrollToLatest.tsx": {"lines":{"total":13,"covered":13,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":14,"covered":14,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/inlineComments/AddCommentInput.tsx": {"lines":{"total":91,"covered":66,"skipped":0,"pct":72.53},"functions":{"total":19,"covered":12,"skipped":0,"pct":63.16},"statements":{"total":105,"covered":76,"skipped":0,"pct":72.38},"branches":{"total":40,"covered":17,"skipped":0,"pct":42.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/inlineComments/Comments.tsx": {"lines":{"total":30,"covered":30,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":33,"covered":32,"skipped":0,"pct":96.97},"branches":{"total":8,"covered":7,"skipped":0,"pct":87.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/inlineComments/InlineCommentPin.tsx": {"lines":{"total":56,"covered":48,"skipped":0,"pct":85.71},"functions":{"total":14,"covered":12,"skipped":0,"pct":85.71},"statements":{"total":60,"covered":51,"skipped":0,"pct":85},"branches":{"total":42,"covered":25,"skipped":0,"pct":59.52}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/inlineComments/OverlayCommentsWrapper.tsx": {"lines":{"total":26,"covered":26,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":29,"covered":28,"skipped":0,"pct":96.55},"branches":{"total":8,"covered":6,"skipped":0,"pct":75}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/inlineComments/StyledComponents.tsx": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":6,"skipped":0,"pct":66.67},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/inlineComments/UnpublishedCommentThread.tsx": {"lines":{"total":25,"covered":22,"skipped":0,"pct":88},"functions":{"total":7,"covered":5,"skipped":0,"pct":71.43},"statements":{"total":27,"covered":24,"skipped":0,"pct":88.89},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/inlineComments/useOrgUsers.tsx": {"lines":{"total":13,"covered":13,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":13,"covered":13,"skipped":0,"pct":100},"branches":{"total":4,"covered":3,"skipped":0,"pct":75}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/tests/setMockPages.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/comments/tour/commentsTourSteps.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/AppIcon.tsx": {"lines":{"total":276,"covered":88,"skipped":0,"pct":31.88},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":277,"covered":88,"skipped":0,"pct":31.77},"branches":{"total":91,"covered":2,"skipped":0,"pct":2.2}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Button.tsx": {"lines":{"total":126,"covered":117,"skipped":0,"pct":92.86},"functions":{"total":43,"covered":40,"skipped":0,"pct":93.02},"statements":{"total":128,"covered":118,"skipped":0,"pct":92.19},"branches":{"total":93,"covered":74,"skipped":0,"pct":79.57}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/ButtonTabComponent.tsx": {"lines":{"total":14,"covered":6,"skipped":0,"pct":42.86},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":6,"skipped":0,"pct":42.86},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Callout.tsx": {"lines":{"total":23,"covered":10,"skipped":0,"pct":43.48},"functions":{"total":13,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":10,"skipped":0,"pct":43.48},"branches":{"total":20,"covered":4,"skipped":0,"pct":20}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Checkbox.tsx": {"lines":{"total":33,"covered":10,"skipped":0,"pct":30.3},"functions":{"total":16,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":10,"skipped":0,"pct":27.03},"branches":{"total":32,"covered":6,"skipped":0,"pct":18.75}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/ColorPickerComponent.tsx": {"lines":{"total":35,"covered":14,"skipped":0,"pct":40},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":14,"skipped":0,"pct":37.84},"branches":{"total":22,"covered":14,"skipped":0,"pct":63.64}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/CopyToClipBoard.tsx": {"lines":{"total":21,"covered":7,"skipped":0,"pct":33.33},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":7,"skipped":0,"pct":30.43},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/DatePickerComponent.tsx": {"lines":{"total":17,"covered":8,"skipped":0,"pct":47.06},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":8,"skipped":0,"pct":47.06},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/DialogComponent.tsx": {"lines":{"total":34,"covered":31,"skipped":0,"pct":91.18},"functions":{"total":21,"covered":19,"skipped":0,"pct":90.48},"statements":{"total":36,"covered":33,"skipped":0,"pct":91.67},"branches":{"total":18,"covered":13,"skipped":0,"pct":72.22}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/DraggableList.tsx": {"lines":{"total":47,"covered":12,"skipped":0,"pct":25.53},"functions":{"total":14,"covered":0,"skipped":0,"pct":0},"statements":{"total":62,"covered":12,"skipped":0,"pct":19.35},"branches":{"total":14,"covered":2,"skipped":0,"pct":14.29}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/DraggableListComponent.tsx": {"lines":{"total":23,"covered":7,"skipped":0,"pct":30.43},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":29,"covered":9,"skipped":0,"pct":31.03},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Dropdown.tsx": {"lines":{"total":72,"covered":44,"skipped":0,"pct":61.11},"functions":{"total":38,"covered":14,"skipped":0,"pct":36.84},"statements":{"total":78,"covered":50,"skipped":0,"pct":64.1},"branches":{"total":93,"covered":62,"skipped":0,"pct":66.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/EditableText.tsx": {"lines":{"total":102,"covered":68,"skipped":0,"pct":66.67},"functions":{"total":34,"covered":28,"skipped":0,"pct":82.35},"statements":{"total":115,"covered":80,"skipped":0,"pct":69.57},"branches":{"total":100,"covered":42,"skipped":0,"pct":42}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/EmojiPicker.tsx": {"lines":{"total":19,"covered":16,"skipped":0,"pct":84.21},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":21,"covered":18,"skipped":0,"pct":85.71},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/EmojiReactions.tsx": {"lines":{"total":50,"covered":20,"skipped":0,"pct":40},"functions":{"total":17,"covered":2,"skipped":0,"pct":11.76},"statements":{"total":58,"covered":23,"skipped":0,"pct":39.66},"branches":{"total":54,"covered":15,"skipped":0,"pct":27.78}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/FilePicker.tsx": {"lines":{"total":156,"covered":70,"skipped":0,"pct":44.87},"functions":{"total":46,"covered":27,"skipped":0,"pct":58.7},"statements":{"total":166,"covered":80,"skipped":0,"pct":48.19},"branches":{"total":84,"covered":13,"skipped":0,"pct":15.48}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/GifPlayerComponent.tsx": {"lines":{"total":17,"covered":9,"skipped":0,"pct":52.94},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":19,"covered":9,"skipped":0,"pct":47.37},"branches":{"total":8,"covered":6,"skipped":0,"pct":75}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Icon.tsx": {"lines":{"total":280,"covered":157,"skipped":0,"pct":56.07},"functions":{"total":9,"covered":9,"skipped":0,"pct":100},"statements":{"total":281,"covered":158,"skipped":0,"pct":56.23},"branches":{"total":119,"covered":49,"skipped":0,"pct":41.18}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/IconTabsComponent.tsx": {"lines":{"total":15,"covered":6,"skipped":0,"pct":40},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":18,"covered":6,"skipped":0,"pct":33.33},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/MentionsInput.tsx": {"lines":{"total":69,"covered":44,"skipped":0,"pct":63.77},"functions":{"total":22,"covered":6,"skipped":0,"pct":27.27},"statements":{"total":76,"covered":50,"skipped":0,"pct":65.79},"branches":{"total":48,"covered":19,"skipped":0,"pct":39.58}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Menu.tsx": {"lines":{"total":12,"covered":7,"skipped":0,"pct":58.33},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":12,"covered":7,"skipped":0,"pct":58.33},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/MenuDivider.tsx": {"lines":{"total":6,"covered":3,"skipped":0,"pct":50},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":3,"skipped":0,"pct":50},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/MenuItem.tsx": {"lines":{"total":23,"covered":14,"skipped":0,"pct":60.87},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":14,"skipped":0,"pct":60.87},"branches":{"total":32,"covered":4,"skipped":0,"pct":12.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/MultiSwitch.tsx": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":7,"skipped":0,"pct":46.67},"branches":{"total":10,"covered":6,"skipped":0,"pct":60}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/MultiselectDropdown.tsx": {"lines":{"total":78,"covered":15,"skipped":0,"pct":19.23},"functions":{"total":40,"covered":0,"skipped":0,"pct":0},"statements":{"total":83,"covered":15,"skipped":0,"pct":18.07},"branches":{"total":84,"covered":14,"skipped":0,"pct":16.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Radio.tsx": {"lines":{"total":38,"covered":5,"skipped":0,"pct":13.16},"functions":{"total":27,"covered":0,"skipped":0,"pct":0},"statements":{"total":40,"covered":5,"skipped":0,"pct":12.5},"branches":{"total":40,"covered":4,"skipped":0,"pct":10}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/RectangularSwitcher.tsx": {"lines":{"total":26,"covered":8,"skipped":0,"pct":30.77},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":30,"covered":8,"skipped":0,"pct":26.67},"branches":{"total":20,"covered":6,"skipped":0,"pct":30}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/ScrollIndicator.tsx": {"lines":{"total":42,"covered":34,"skipped":0,"pct":80.95},"functions":{"total":15,"covered":13,"skipped":0,"pct":86.67},"statements":{"total":46,"covered":38,"skipped":0,"pct":82.61},"branches":{"total":36,"covered":19,"skipped":0,"pct":52.78}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Spinner.tsx": {"lines":{"total":15,"covered":10,"skipped":0,"pct":66.67},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":10,"skipped":0,"pct":66.67},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/StepComponent.tsx": {"lines":{"total":22,"covered":9,"skipped":0,"pct":40.91},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":9,"skipped":0,"pct":40.91},"branches":{"total":12,"covered":8,"skipped":0,"pct":66.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Switch.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Tabs.tsx": {"lines":{"total":48,"covered":11,"skipped":0,"pct":22.92},"functions":{"total":37,"covered":0,"skipped":0,"pct":0},"statements":{"total":48,"covered":11,"skipped":0,"pct":22.92},"branches":{"total":44,"covered":8,"skipped":0,"pct":18.18}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/TagInputComponent.tsx": {"lines":{"total":57,"covered":7,"skipped":0,"pct":12.28},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":61,"covered":7,"skipped":0,"pct":11.48},"branches":{"total":38,"covered":2,"skipped":0,"pct":5.26}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Text.tsx": {"lines":{"total":42,"covered":42,"skipped":0,"pct":100},"functions":{"total":14,"covered":14,"skipped":0,"pct":100},"statements":{"total":43,"covered":43,"skipped":0,"pct":100},"branches":{"total":28,"covered":21,"skipped":0,"pct":75}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/TextInput.tsx": {"lines":{"total":67,"covered":45,"skipped":0,"pct":67.16},"functions":{"total":18,"covered":15,"skipped":0,"pct":83.33},"statements":{"total":70,"covered":48,"skipped":0,"pct":68.57},"branches":{"total":45,"covered":18,"skipped":0,"pct":40}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Toast.tsx": {"lines":{"total":46,"covered":21,"skipped":0,"pct":45.65},"functions":{"total":17,"covered":1,"skipped":0,"pct":5.88},"statements":{"total":46,"covered":21,"skipped":0,"pct":45.65},"branches":{"total":54,"covered":18,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Toggle.tsx": {"lines":{"total":22,"covered":6,"skipped":0,"pct":27.27},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":24,"covered":6,"skipped":0,"pct":25},"branches":{"total":30,"covered":2,"skipped":0,"pct":6.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/Tooltip.tsx": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/TreeDropdown.tsx": {"lines":{"total":54,"covered":28,"skipped":0,"pct":51.85},"functions":{"total":23,"covered":7,"skipped":0,"pct":30.43},"statements":{"total":56,"covered":30,"skipped":0,"pct":53.57},"branches":{"total":34,"covered":20,"skipped":0,"pct":58.82}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/common.tsx": {"lines":{"total":41,"covered":27,"skipped":0,"pct":65.85},"functions":{"total":7,"covered":4,"skipped":0,"pct":57.14},"statements":{"total":46,"covered":32,"skipped":0,"pct":69.57},"branches":{"total":13,"covered":7,"skipped":0,"pct":53.85}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/ads/tour/TourTooltipWrapper.tsx": {"lines":{"total":31,"covered":30,"skipped":0,"pct":96.77},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":31,"covered":30,"skipped":0,"pct":96.77},"branches":{"total":32,"covered":22,"skipped":0,"pct":68.75}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/CenteredWrapper.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/ContainerComponent.tsx": {"lines":{"total":30,"covered":28,"skipped":0,"pct":93.33},"functions":{"total":12,"covered":12,"skipped":0,"pct":100},"statements":{"total":30,"covered":28,"skipped":0,"pct":93.33},"branches":{"total":44,"covered":26,"skipped":0,"pct":59.09}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/CopyToClipBoard.tsx": {"lines":{"total":21,"covered":7,"skipped":0,"pct":33.33},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":7,"skipped":0,"pct":30.43},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/Dropdown.tsx": {"lines":{"total":22,"covered":7,"skipped":0,"pct":31.82},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":7,"skipped":0,"pct":31.82},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/FilePickerComponent.tsx": {"lines":{"total":19,"covered":10,"skipped":0,"pct":52.63},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":20,"covered":11,"skipped":0,"pct":55},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/IconComponent.tsx": {"lines":{"total":8,"covered":7,"skipped":0,"pct":87.5},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":9,"covered":8,"skipped":0,"pct":88.89},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/ImageComponent.tsx": {"lines":{"total":45,"covered":12,"skipped":0,"pct":26.67},"functions":{"total":16,"covered":2,"skipped":0,"pct":12.5},"statements":{"total":49,"covered":13,"skipped":0,"pct":26.53},"branches":{"total":43,"covered":6,"skipped":0,"pct":13.95}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/MapComponent.tsx": {"lines":{"total":41,"covered":13,"skipped":0,"pct":31.71},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":43,"covered":13,"skipped":0,"pct":30.23},"branches":{"total":33,"covered":8,"skipped":0,"pct":24.24}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/PickMyLocation.tsx": {"lines":{"total":21,"covered":8,"skipped":0,"pct":38.1},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":24,"covered":9,"skipped":0,"pct":37.5},"branches":{"total":16,"covered":4,"skipped":0,"pct":25}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/PopoverVideo.tsx": {"lines":{"total":11,"covered":9,"skipped":0,"pct":81.82},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":9,"skipped":0,"pct":81.82},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/PositionedContainer.tsx": {"lines":{"total":21,"covered":21,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":22,"covered":22,"skipped":0,"pct":100},"branches":{"total":14,"covered":11,"skipped":0,"pct":78.57}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/StyledHeader.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/TabbedView.tsx": {"lines":{"total":14,"covered":6,"skipped":0,"pct":42.86},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":6,"skipped":0,"pct":42.86},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/TabsComponent.tsx": {"lines":{"total":36,"covered":36,"skipped":0,"pct":100},"functions":{"total":18,"covered":18,"skipped":0,"pct":100},"statements":{"total":37,"covered":37,"skipped":0,"pct":100},"branches":{"total":34,"covered":29,"skipped":0,"pct":85.29}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/TextInputComponent.tsx": {"lines":{"total":35,"covered":10,"skipped":0,"pct":28.57},"functions":{"total":11,"covered":1,"skipped":0,"pct":9.09},"statements":{"total":40,"covered":12,"skipped":0,"pct":30},"branches":{"total":27,"covered":4,"skipped":0,"pct":14.81}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/VideoComponent.tsx": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":7,"skipped":0,"pct":77.78},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/AutoToolTipComponent.tsx": {"lines":{"total":29,"covered":9,"skipped":0,"pct":31.03},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":9,"skipped":0,"pct":27.27},"branches":{"total":28,"covered":4,"skipped":0,"pct":14.29}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/CommonUtilities.ts": {"lines":{"total":32,"covered":28,"skipped":0,"pct":87.5},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":35,"covered":31,"skipped":0,"pct":88.57},"branches":{"total":47,"covered":23,"skipped":0,"pct":48.94}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/Constants.ts": {"lines":{"total":59,"covered":50,"skipped":0,"pct":84.75},"functions":{"total":22,"covered":20,"skipped":0,"pct":90.91},"statements":{"total":59,"covered":50,"skipped":0,"pct":84.75},"branches":{"total":32,"covered":23,"skipped":0,"pct":71.88}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableHelpers.ts": {"lines":{"total":23,"covered":23,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":28,"covered":28,"skipped":0,"pct":100},"branches":{"total":10,"covered":8,"skipped":0,"pct":80}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableStyledWrappers.tsx": {"lines":{"total":86,"covered":31,"skipped":0,"pct":36.05},"functions":{"total":55,"covered":0,"skipped":0,"pct":0},"statements":{"total":86,"covered":31,"skipped":0,"pct":36.05},"branches":{"total":268,"covered":44,"skipped":0,"pct":16.42}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableUtilities.tsx": {"lines":{"total":104,"covered":38,"skipped":0,"pct":36.54},"functions":{"total":32,"covered":3,"skipped":0,"pct":9.38},"statements":{"total":114,"covered":44,"skipped":0,"pct":38.6},"branches":{"total":73,"covered":14,"skipped":0,"pct":19.18}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/header/DeployLinkButton.tsx": {"lines":{"total":16,"covered":11,"skipped":0,"pct":68.75},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":18,"covered":13,"skipped":0,"pct":72.22},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/header/ThreeDotsLoading.tsx": {"lines":{"total":5,"covered":4,"skipped":0,"pct":80},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":5,"covered":4,"skipped":0,"pct":80},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/help/CollapsibleHelp.tsx": {"lines":{"total":8,"covered":7,"skipped":0,"pct":87.5},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":7,"skipped":0,"pct":87.5},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/appsmith/help/DocumentationSearch.tsx": {"lines":{"total":72,"covered":45,"skipped":0,"pct":62.5},"functions":{"total":14,"covered":1,"skipped":0,"pct":7.14},"statements":{"total":77,"covered":46,"skipped":0,"pct":59.74},"branches":{"total":72,"covered":23,"skipped":0,"pct":31.94}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/ButtonComponent.tsx": {"lines":{"total":71,"covered":44,"skipped":0,"pct":61.97},"functions":{"total":21,"covered":14,"skipped":0,"pct":66.67},"statements":{"total":77,"covered":46,"skipped":0,"pct":59.74},"branches":{"total":57,"covered":30,"skipped":0,"pct":52.63}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/CheckboxComponent.tsx": {"lines":{"total":15,"covered":14,"skipped":0,"pct":93.33},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":17,"covered":16,"skipped":0,"pct":94.12},"branches":{"total":15,"covered":10,"skipped":0,"pct":66.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/DatePickerComponent.tsx": {"lines":{"total":69,"covered":19,"skipped":0,"pct":27.54},"functions":{"total":16,"covered":1,"skipped":0,"pct":6.25},"statements":{"total":71,"covered":20,"skipped":0,"pct":28.17},"branches":{"total":63,"covered":2,"skipped":0,"pct":3.17}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/DatePickerComponent2.tsx": {"lines":{"total":67,"covered":19,"skipped":0,"pct":28.36},"functions":{"total":17,"covered":1,"skipped":0,"pct":5.88},"statements":{"total":69,"covered":20,"skipped":0,"pct":28.99},"branches":{"total":61,"covered":2,"skipped":0,"pct":3.28}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/DividerComponent.tsx": {"lines":{"total":42,"covered":29,"skipped":0,"pct":69.05},"functions":{"total":12,"covered":5,"skipped":0,"pct":41.67},"statements":{"total":48,"covered":31,"skipped":0,"pct":64.58},"branches":{"total":71,"covered":30,"skipped":0,"pct":42.25}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/DropdownComponent.tsx": {"lines":{"total":78,"covered":25,"skipped":0,"pct":32.05},"functions":{"total":31,"covered":1,"skipped":0,"pct":3.23},"statements":{"total":81,"covered":26,"skipped":0,"pct":32.1},"branches":{"total":53,"covered":12,"skipped":0,"pct":22.64}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/IframeComponent.tsx": {"lines":{"total":15,"covered":5,"skipped":0,"pct":33.33},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":5,"skipped":0,"pct":33.33},"branches":{"total":10,"covered":2,"skipped":0,"pct":20}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/InputComponent.tsx": {"lines":{"total":69,"covered":43,"skipped":0,"pct":62.32},"functions":{"total":29,"covered":15,"skipped":0,"pct":51.72},"statements":{"total":73,"covered":46,"skipped":0,"pct":63.01},"branches":{"total":62,"covered":26,"skipped":0,"pct":41.94}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/ModalComponent.tsx": {"lines":{"total":28,"covered":9,"skipped":0,"pct":32.14},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":29,"covered":9,"skipped":0,"pct":31.03},"branches":{"total":26,"covered":4,"skipped":0,"pct":15.38}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/RadioGroupComponent.tsx": {"lines":{"total":15,"covered":11,"skipped":0,"pct":73.33},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":18,"covered":12,"skipped":0,"pct":66.67},"branches":{"total":13,"covered":4,"skipped":0,"pct":30.77}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/RateComponent.tsx": {"lines":{"total":30,"covered":11,"skipped":0,"pct":36.67},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":34,"covered":11,"skipped":0,"pct":32.35},"branches":{"total":20,"covered":4,"skipped":0,"pct":20}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/SwitchComponent.tsx": {"lines":{"total":15,"covered":14,"skipped":0,"pct":93.33},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":15,"covered":14,"skipped":0,"pct":93.33},"branches":{"total":8,"covered":5,"skipped":0,"pct":62.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/designSystems/blueprint/TextComponent.tsx": {"lines":{"total":31,"covered":13,"skipped":0,"pct":41.94},"functions":{"total":11,"covered":1,"skipped":0,"pct":9.09},"statements":{"total":32,"covered":14,"skipped":0,"pct":43.75},"branches":{"total":60,"covered":6,"skipped":0,"pct":10}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/ActionNameEditor.tsx": {"lines":{"total":63,"covered":18,"skipped":0,"pct":28.57},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":66,"covered":18,"skipped":0,"pct":27.27},"branches":{"total":59,"covered":2,"skipped":0,"pct":3.39}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/ApiResponseView.tsx": {"lines":{"total":70,"covered":39,"skipped":0,"pct":55.71},"functions":{"total":14,"covered":0,"skipped":0,"pct":0},"statements":{"total":72,"covered":39,"skipped":0,"pct":54.17},"branches":{"total":64,"covered":24,"skipped":0,"pct":37.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Button.tsx": {"lines":{"total":27,"covered":12,"skipped":0,"pct":44.44},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":29,"covered":13,"skipped":0,"pct":44.83},"branches":{"total":43,"covered":8,"skipped":0,"pct":18.6}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CloseEditor.tsx": {"lines":{"total":22,"covered":11,"skipped":0,"pct":50},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":11,"skipped":0,"pct":50},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Divider.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/DragLayerComponent.tsx": {"lines":{"total":50,"covered":40,"skipped":0,"pct":80},"functions":{"total":11,"covered":11,"skipped":0,"pct":100},"statements":{"total":54,"covered":44,"skipped":0,"pct":81.48},"branches":{"total":50,"covered":19,"skipped":0,"pct":38}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/DraggableComponent.tsx": {"lines":{"total":53,"covered":44,"skipped":0,"pct":83.02},"functions":{"total":15,"covered":11,"skipped":0,"pct":73.33},"statements":{"total":59,"covered":49,"skipped":0,"pct":83.05},"branches":{"total":39,"covered":24,"skipped":0,"pct":61.54}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/DropTargetComponent.tsx": {"lines":{"total":87,"covered":52,"skipped":0,"pct":59.77},"functions":{"total":16,"covered":8,"skipped":0,"pct":50},"statements":{"total":98,"covered":63,"skipped":0,"pct":64.29},"branches":{"total":73,"covered":29,"skipped":0,"pct":39.73}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/DropTargetUtils.ts": {"lines":{"total":9,"covered":2,"skipped":0,"pct":22.22},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":3,"skipped":0,"pct":30},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Dropzone.tsx": {"lines":{"total":33,"covered":14,"skipped":0,"pct":42.42},"functions":{"total":13,"covered":0,"skipped":0,"pct":0},"statements":{"total":43,"covered":14,"skipped":0,"pct":32.56},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/EditableText.tsx": {"lines":{"total":58,"covered":17,"skipped":0,"pct":29.31},"functions":{"total":16,"covered":1,"skipped":0,"pct":6.25},"statements":{"total":63,"covered":17,"skipped":0,"pct":26.98},"branches":{"total":47,"covered":8,"skipped":0,"pct":17.02}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/EditorContextProvider.tsx": {"lines":{"total":15,"covered":14,"skipped":0,"pct":93.33},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":15,"covered":14,"skipped":0,"pct":93.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/ErrorBoundry.tsx": {"lines":{"total":19,"covered":14,"skipped":0,"pct":73.68},"functions":{"total":7,"covered":3,"skipped":0,"pct":42.86},"statements":{"total":21,"covered":16,"skipped":0,"pct":76.19},"branches":{"total":8,"covered":7,"skipped":0,"pct":87.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/ErrorTooltip.tsx": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":8,"covered":8,"skipped":0,"pct":100},"branches":{"total":6,"covered":5,"skipped":0,"pct":83.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/FormLabel.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/FormRow.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/HelperTooltip.tsx": {"lines":{"total":8,"covered":7,"skipped":0,"pct":87.5},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":7,"skipped":0,"pct":87.5},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/LoadingOverlayScreen.tsx": {"lines":{"total":5,"covered":3,"skipped":0,"pct":60},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":5,"covered":3,"skipped":0,"pct":60},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/PaneWrapper.tsx": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/PreventInteractionsOverlay.tsx": {"lines":{"total":13,"covered":13,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":14,"covered":14,"skipped":0,"pct":100},"branches":{"total":8,"covered":7,"skipped":0,"pct":87.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/ReadOnlyEditor.tsx": {"lines":{"total":6,"covered":4,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":4,"skipped":0,"pct":66.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/ResizableComponent.tsx": {"lines":{"total":89,"covered":52,"skipped":0,"pct":58.43},"functions":{"total":11,"covered":7,"skipped":0,"pct":63.64},"statements":{"total":91,"covered":54,"skipped":0,"pct":59.34},"branches":{"total":61,"covered":14,"skipped":0,"pct":22.95}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/ResizableUtils.tsx": {"lines":{"total":11,"covered":6,"skipped":0,"pct":54.55},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":10,"skipped":0,"pct":66.67},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/ResizeStyledComponents.tsx": {"lines":{"total":19,"covered":19,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":19,"covered":19,"skipped":0,"pct":100},"branches":{"total":28,"covered":28,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Sidebar.tsx": {"lines":{"total":19,"covered":19,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":19,"covered":19,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Spinner.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/StoreAsDatasource.tsx": {"lines":{"total":16,"covered":10,"skipped":0,"pct":62.5},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":10,"skipped":0,"pct":62.5},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/ActionCreator/Fields.tsx": {"lines":{"total":263,"covered":74,"skipped":0,"pct":28.14},"functions":{"total":65,"covered":5,"skipped":0,"pct":7.69},"statements":{"total":269,"covered":78,"skipped":0,"pct":29},"branches":{"total":138,"covered":36,"skipped":0,"pct":26.09}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/ActionCreator/index.tsx": {"lines":{"total":121,"covered":58,"skipped":0,"pct":47.93},"functions":{"total":23,"covered":13,"skipped":0,"pct":56.52},"statements":{"total":123,"covered":60,"skipped":0,"pct":48.78},"branches":{"total":70,"covered":8,"skipped":0,"pct":11.43}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CodeEditor/BindingPrompt.tsx": {"lines":{"total":14,"covered":14,"skipped":0,"pct":100},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":14,"covered":14,"skipped":0,"pct":100},"branches":{"total":16,"covered":12,"skipped":0,"pct":75}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CodeEditor/BindingPromptHelper.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":8,"covered":7,"skipped":0,"pct":87.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CodeEditor/EditorConfig.ts": {"lines":{"total":22,"covered":22,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":22,"covered":22,"skipped":0,"pct":100},"branches":{"total":10,"covered":10,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CodeEditor/EvaluatedValuePopup.tsx": {"lines":{"total":84,"covered":55,"skipped":0,"pct":65.48},"functions":{"total":28,"covered":12,"skipped":0,"pct":42.86},"statements":{"total":90,"covered":57,"skipped":0,"pct":63.33},"branches":{"total":64,"covered":38,"skipped":0,"pct":59.38}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CodeEditor/codeEditorUtils.ts": {"lines":{"total":35,"covered":35,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":39,"covered":39,"skipped":0,"pct":100},"branches":{"total":18,"covered":16,"skipped":0,"pct":88.89}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CodeEditor/commandsHelper.ts": {"lines":{"total":54,"covered":25,"skipped":0,"pct":46.3},"functions":{"total":9,"covered":2,"skipped":0,"pct":22.22},"statements":{"total":59,"covered":26,"skipped":0,"pct":44.07},"branches":{"total":21,"covered":7,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CodeEditor/generateQuickCommands.tsx": {"lines":{"total":57,"covered":9,"skipped":0,"pct":15.79},"functions":{"total":14,"covered":0,"skipped":0,"pct":0},"statements":{"total":58,"covered":10,"skipped":0,"pct":17.24},"branches":{"total":28,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CodeEditor/hintHelpers.ts": {"lines":{"total":22,"covered":17,"skipped":0,"pct":77.27},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":23,"covered":18,"skipped":0,"pct":78.26},"branches":{"total":4,"covered":3,"skipped":0,"pct":75}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CodeEditor/index.tsx": {"lines":{"total":228,"covered":163,"skipped":0,"pct":71.49},"functions":{"total":38,"covered":20,"skipped":0,"pct":52.63},"statements":{"total":244,"covered":174,"skipped":0,"pct":71.31},"branches":{"total":137,"covered":63,"skipped":0,"pct":45.99}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CodeEditor/markHelpers.ts": {"lines":{"total":10,"covered":5,"skipped":0,"pct":50},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":6,"skipped":0,"pct":54.55},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CodeEditor/modes.ts": {"lines":{"total":12,"covered":11,"skipped":0,"pct":91.67},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":12,"covered":11,"skipped":0,"pct":91.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/CodeEditor/styledComponents.ts": {"lines":{"total":44,"covered":41,"skipped":0,"pct":93.18},"functions":{"total":25,"covered":25,"skipped":0,"pct":100},"statements":{"total":46,"covered":41,"skipped":0,"pct":89.13},"branches":{"total":74,"covered":41,"skipped":0,"pct":55.41}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/DebugCTA.tsx": {"lines":{"total":21,"covered":12,"skipped":0,"pct":57.14},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":12,"skipped":0,"pct":54.55},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/DebuggerLogs.tsx": {"lines":{"total":39,"covered":15,"skipped":0,"pct":38.46},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":48,"covered":15,"skipped":0,"pct":31.25},"branches":{"total":16,"covered":4,"skipped":0,"pct":25}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/DebuggerMessage.tsx": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":7,"skipped":0,"pct":77.78},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/DebuggerTabs.tsx": {"lines":{"total":27,"covered":17,"skipped":0,"pct":62.96},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":30,"covered":17,"skipped":0,"pct":56.67},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/EntityDependecies.tsx": {"lines":{"total":47,"covered":16,"skipped":0,"pct":34.04},"functions":{"total":23,"covered":0,"skipped":0,"pct":0},"statements":{"total":51,"covered":16,"skipped":0,"pct":31.37},"branches":{"total":20,"covered":8,"skipped":0,"pct":40}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/EntityLink.tsx": {"lines":{"total":56,"covered":17,"skipped":0,"pct":30.36},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":58,"covered":17,"skipped":0,"pct":29.31},"branches":{"total":21,"covered":2,"skipped":0,"pct":9.52}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/Errors.tsx": {"lines":{"total":16,"covered":10,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":10,"skipped":0,"pct":58.82},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/FilterHeader.tsx": {"lines":{"total":17,"covered":10,"skipped":0,"pct":58.82},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":10,"skipped":0,"pct":58.82},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/LogItem.tsx": {"lines":{"total":64,"covered":23,"skipped":0,"pct":35.94},"functions":{"total":31,"covered":0,"skipped":0,"pct":0},"statements":{"total":67,"covered":24,"skipped":0,"pct":35.82},"branches":{"total":38,"covered":10,"skipped":0,"pct":26.32}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/helpers.tsx": {"lines":{"total":46,"covered":38,"skipped":0,"pct":82.61},"functions":{"total":13,"covered":5,"skipped":0,"pct":38.46},"statements":{"total":54,"covered":44,"skipped":0,"pct":81.48},"branches":{"total":20,"covered":16,"skipped":0,"pct":80}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/hooks.ts": {"lines":{"total":73,"covered":24,"skipped":0,"pct":32.88},"functions":{"total":14,"covered":1,"skipped":0,"pct":7.14},"statements":{"total":84,"covered":28,"skipped":0,"pct":33.33},"branches":{"total":84,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/index.tsx": {"lines":{"total":35,"covered":31,"skipped":0,"pct":88.57},"functions":{"total":12,"covered":11,"skipped":0,"pct":91.67},"statements":{"total":35,"covered":31,"skipped":0,"pct":88.57},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Debugger/Resizer/index.tsx": {"lines":{"total":36,"covered":6,"skipped":0,"pct":16.67},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":40,"covered":6,"skipped":0,"pct":15},"branches":{"total":14,"covered":4,"skipped":0,"pct":28.57}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/ActionLink.tsx": {"lines":{"total":16,"covered":8,"skipped":0,"pct":50},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":8,"skipped":0,"pct":50},"branches":{"total":8,"covered":2,"skipped":0,"pct":25}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/AlgoliaSearchWrapper.tsx": {"lines":{"total":14,"covered":8,"skipped":0,"pct":57.14},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":8,"skipped":0,"pct":47.06},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/Description.tsx": {"lines":{"total":65,"covered":13,"skipped":0,"pct":20},"functions":{"total":30,"covered":0,"skipped":0,"pct":0},"statements":{"total":68,"covered":13,"skipped":0,"pct":19.12},"branches":{"total":27,"covered":8,"skipped":0,"pct":29.63}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/Footer.tsx": {"lines":{"total":14,"covered":5,"skipped":0,"pct":35.71},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":5,"skipped":0,"pct":35.71},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/GlobalSearchContext.tsx": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/GlobalSearchHotKeys.tsx": {"lines":{"total":18,"covered":14,"skipped":0,"pct":77.78},"functions":{"total":7,"covered":5,"skipped":0,"pct":71.43},"statements":{"total":26,"covered":17,"skipped":0,"pct":65.38},"branches":{"total":7,"covered":3,"skipped":0,"pct":42.86}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/HelpBar.tsx": {"lines":{"total":24,"covered":22,"skipped":0,"pct":91.67},"functions":{"total":10,"covered":9,"skipped":0,"pct":90},"statements":{"total":26,"covered":24,"skipped":0,"pct":92.31},"branches":{"total":4,"covered":3,"skipped":0,"pct":75}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/Highlight.tsx": {"lines":{"total":15,"covered":2,"skipped":0,"pct":13.33},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":2,"skipped":0,"pct":11.76},"branches":{"total":18,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/ResultsNotFound.tsx": {"lines":{"total":17,"covered":10,"skipped":0,"pct":58.82},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":10,"skipped":0,"pct":58.82},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/SearchBox.tsx": {"lines":{"total":34,"covered":12,"skipped":0,"pct":35.29},"functions":{"total":14,"covered":0,"skipped":0,"pct":0},"statements":{"total":41,"covered":12,"skipped":0,"pct":29.27},"branches":{"total":14,"covered":4,"skipped":0,"pct":28.57}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/SearchModal.tsx": {"lines":{"total":9,"covered":8,"skipped":0,"pct":88.89},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":11,"covered":10,"skipped":0,"pct":90.91},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/SearchResults.tsx": {"lines":{"total":103,"covered":29,"skipped":0,"pct":28.16},"functions":{"total":37,"covered":0,"skipped":0,"pct":0},"statements":{"total":106,"covered":29,"skipped":0,"pct":27.36},"branches":{"total":71,"covered":18,"skipped":0,"pct":25.35}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/SetSearchResults.tsx": {"lines":{"total":12,"covered":5,"skipped":0,"pct":41.67},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":5,"skipped":0,"pct":38.46},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/githubHelper.ts": {"lines":{"total":13,"covered":6,"skipped":0,"pct":46.15},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":17,"covered":8,"skipped":0,"pct":47.06},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/index.tsx": {"lines":{"total":186,"covered":110,"skipped":0,"pct":59.14},"functions":{"total":43,"covered":17,"skipped":0,"pct":39.53},"statements":{"total":205,"covered":120,"skipped":0,"pct":58.54},"branches":{"total":160,"covered":23,"skipped":0,"pct":14.38}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/parseDocumentationContent.ts": {"lines":{"total":88,"covered":70,"skipped":0,"pct":79.55},"functions":{"total":13,"covered":12,"skipped":0,"pct":92.31},"statements":{"total":91,"covered":72,"skipped":0,"pct":79.12},"branches":{"total":86,"covered":37,"skipped":0,"pct":43.02}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/useRecentEntities.tsx": {"lines":{"total":31,"covered":17,"skipped":0,"pct":54.84},"functions":{"total":7,"covered":3,"skipped":0,"pct":42.86},"statements":{"total":33,"covered":17,"skipped":0,"pct":51.52},"branches":{"total":26,"covered":1,"skipped":0,"pct":3.85}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/GlobalSearch/utils.tsx": {"lines":{"total":50,"covered":34,"skipped":0,"pct":68},"functions":{"total":10,"covered":7,"skipped":0,"pct":70},"statements":{"total":64,"covered":44,"skipped":0,"pct":68.75},"branches":{"total":59,"covered":12,"skipped":0,"pct":20.34}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/HighlightedCode/index.tsx": {"lines":{"total":19,"covered":12,"skipped":0,"pct":63.16},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":19,"covered":12,"skipped":0,"pct":63.16},"branches":{"total":12,"covered":4,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/HighlightedCode/themes.ts": {"lines":{"total":6,"covered":4,"skipped":0,"pct":66.67},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":4,"skipped":0,"pct":66.67},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Onboarding/Boxed.tsx": {"lines":{"total":12,"covered":9,"skipped":0,"pct":75},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":12,"covered":9,"skipped":0,"pct":75},"branches":{"total":7,"covered":2,"skipped":0,"pct":28.57}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Onboarding/EndTour.tsx": {"lines":{"total":11,"covered":7,"skipped":0,"pct":63.64},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":7,"skipped":0,"pct":63.64},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Onboarding/Helper.tsx": {"lines":{"total":61,"covered":42,"skipped":0,"pct":68.85},"functions":{"total":17,"covered":6,"skipped":0,"pct":35.29},"statements":{"total":65,"covered":46,"skipped":0,"pct":70.77},"branches":{"total":103,"covered":36,"skipped":0,"pct":34.95}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/Onboarding/Indicator.tsx": {"lines":{"total":18,"covered":10,"skipped":0,"pct":55.56},"functions":{"total":9,"covered":2,"skipped":0,"pct":22.22},"statements":{"total":18,"covered":10,"skipped":0,"pct":55.56},"branches":{"total":20,"covered":5,"skipped":0,"pct":25}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/WidgetNameComponent/SettingsControl.tsx": {"lines":{"total":34,"covered":32,"skipped":0,"pct":94.12},"functions":{"total":9,"covered":8,"skipped":0,"pct":88.89},"statements":{"total":34,"covered":32,"skipped":0,"pct":94.12},"branches":{"total":21,"covered":18,"skipped":0,"pct":85.71}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/WidgetNameComponent/index.tsx": {"lines":{"total":47,"covered":38,"skipped":0,"pct":80.85},"functions":{"total":10,"covered":9,"skipped":0,"pct":90},"statements":{"total":49,"covered":40,"skipped":0,"pct":81.63},"branches":{"total":38,"covered":26,"skipped":0,"pct":68.42}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/CredentialsTooltip.tsx": {"lines":{"total":10,"covered":9,"skipped":0,"pct":90},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":9,"skipped":0,"pct":90},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/FormDialogComponent.tsx": {"lines":{"total":21,"covered":17,"skipped":0,"pct":80.95},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":23,"covered":19,"skipped":0,"pct":82.61},"branches":{"total":5,"covered":2,"skipped":0,"pct":40}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/CheckboxField.tsx": {"lines":{"total":9,"covered":5,"skipped":0,"pct":55.56},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":5,"skipped":0,"pct":55.56},"branches":{"total":11,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/DropdownField.tsx": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/DropdownFieldWrapper.tsx": {"lines":{"total":17,"covered":4,"skipped":0,"pct":23.53},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":19,"covered":4,"skipped":0,"pct":21.05},"branches":{"total":11,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/DropdownWrapper.tsx": {"lines":{"total":12,"covered":3,"skipped":0,"pct":25},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":3,"skipped":0,"pct":21.43},"branches":{"total":9,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/DynamicTextField.tsx": {"lines":{"total":10,"covered":10,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/EmbeddedDatasourcePathField.tsx": {"lines":{"total":115,"covered":36,"skipped":0,"pct":31.3},"functions":{"total":25,"covered":1,"skipped":0,"pct":4},"statements":{"total":126,"covered":37,"skipped":0,"pct":29.37},"branches":{"total":75,"covered":2,"skipped":0,"pct":2.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/KeyValueFieldArray.tsx": {"lines":{"total":43,"covered":19,"skipped":0,"pct":44.19},"functions":{"total":18,"covered":0,"skipped":0,"pct":0},"statements":{"total":44,"covered":19,"skipped":0,"pct":43.18},"branches":{"total":49,"covered":12,"skipped":0,"pct":24.49}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/NumberField.tsx": {"lines":{"total":12,"covered":7,"skipped":0,"pct":58.33},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":13,"covered":8,"skipped":0,"pct":61.54},"branches":{"total":11,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/RadioGroupField.tsx": {"lines":{"total":10,"covered":6,"skipped":0,"pct":60},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":6,"skipped":0,"pct":60},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/RadioGroupWrapper.tsx": {"lines":{"total":17,"covered":3,"skipped":0,"pct":17.65},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":19,"covered":3,"skipped":0,"pct":15.79},"branches":{"total":11,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/RequestDropdownField.tsx": {"lines":{"total":10,"covered":6,"skipped":0,"pct":60},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":6,"skipped":0,"pct":60},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/SelectField.tsx": {"lines":{"total":8,"covered":6,"skipped":0,"pct":75},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":6,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/TagListField.tsx": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/editorComponents/form/fields/TextField.tsx": {"lines":{"total":8,"covered":7,"skipped":0,"pct":87.5},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":9,"covered":8,"skipped":0,"pct":88.89},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/BaseControl.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/CheckboxControl.tsx": {"lines":{"total":13,"covered":10,"skipped":0,"pct":76.92},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":17,"covered":11,"skipped":0,"pct":64.71},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/DropDownControl.tsx": {"lines":{"total":28,"covered":16,"skipped":0,"pct":57.14},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":37,"covered":17,"skipped":0,"pct":45.95},"branches":{"total":23,"covered":4,"skipped":0,"pct":17.39}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/DynamicInputTextControl.tsx": {"lines":{"total":24,"covered":23,"skipped":0,"pct":95.83},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":29,"covered":28,"skipped":0,"pct":96.55},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/DynamicTextFieldControl.tsx": {"lines":{"total":51,"covered":50,"skipped":0,"pct":98.04},"functions":{"total":9,"covered":8,"skipped":0,"pct":88.89},"statements":{"total":54,"covered":53,"skipped":0,"pct":98.15},"branches":{"total":17,"covered":12,"skipped":0,"pct":70.59}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/FieldArrayControl.tsx": {"lines":{"total":26,"covered":13,"skipped":0,"pct":50},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":26,"covered":13,"skipped":0,"pct":50},"branches":{"total":13,"covered":8,"skipped":0,"pct":61.54}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/FilePickerControl.tsx": {"lines":{"total":46,"covered":21,"skipped":0,"pct":45.65},"functions":{"total":12,"covered":2,"skipped":0,"pct":16.67},"statements":{"total":52,"covered":23,"skipped":0,"pct":44.23},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/FixedKeyInputControl.tsx": {"lines":{"total":29,"covered":12,"skipped":0,"pct":41.38},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":30,"covered":13,"skipped":0,"pct":43.33},"branches":{"total":9,"covered":2,"skipped":0,"pct":22.22}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/InputNumberControl.tsx": {"lines":{"total":25,"covered":13,"skipped":0,"pct":52},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":26,"covered":14,"skipped":0,"pct":53.85},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/InputTextControl.tsx": {"lines":{"total":38,"covered":16,"skipped":0,"pct":42.11},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":39,"covered":17,"skipped":0,"pct":43.59},"branches":{"total":18,"covered":2,"skipped":0,"pct":11.11}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/KeyValueArrayControl.tsx": {"lines":{"total":57,"covered":20,"skipped":0,"pct":35.09},"functions":{"total":13,"covered":1,"skipped":0,"pct":7.69},"statements":{"total":60,"covered":21,"skipped":0,"pct":35},"branches":{"total":56,"covered":4,"skipped":0,"pct":7.14}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/KeyValueInputControl.tsx": {"lines":{"total":25,"covered":15,"skipped":0,"pct":60},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":27,"covered":16,"skipped":0,"pct":59.26},"branches":{"total":12,"covered":2,"skipped":0,"pct":16.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/StyledControls.tsx": {"lines":{"total":57,"covered":22,"skipped":0,"pct":38.6},"functions":{"total":35,"covered":0,"skipped":0,"pct":0},"statements":{"total":57,"covered":22,"skipped":0,"pct":38.6},"branches":{"total":34,"covered":28,"skipped":0,"pct":82.35}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/SwitchControl.tsx": {"lines":{"total":28,"covered":18,"skipped":0,"pct":64.29},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":41,"covered":21,"skipped":0,"pct":51.22},"branches":{"total":14,"covered":6,"skipped":0,"pct":42.86}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/formControls/utils.ts": {"lines":{"total":71,"covered":66,"skipped":0,"pct":92.96},"functions":{"total":13,"covered":13,"skipped":0,"pct":100},"statements":{"total":80,"covered":74,"skipped":0,"pct":92.5},"branches":{"total":59,"covered":45,"skipped":0,"pct":76.27}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/ActionSelectorControl.tsx": {"lines":{"total":14,"covered":12,"skipped":0,"pct":85.71},"functions":{"total":4,"covered":3,"skipped":0,"pct":75},"statements":{"total":16,"covered":14,"skipped":0,"pct":87.5},"branches":{"total":3,"covered":2,"skipped":0,"pct":66.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/BaseControl.tsx": {"lines":{"total":11,"covered":7,"skipped":0,"pct":63.64},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":12,"covered":8,"skipped":0,"pct":66.67},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/ButtonTabControl.tsx": {"lines":{"total":21,"covered":10,"skipped":0,"pct":47.62},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":27,"covered":11,"skipped":0,"pct":40.74},"branches":{"total":11,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/ChartDataControl.tsx": {"lines":{"total":58,"covered":23,"skipped":0,"pct":39.66},"functions":{"total":18,"covered":2,"skipped":0,"pct":11.11},"statements":{"total":61,"covered":24,"skipped":0,"pct":39.34},"branches":{"total":37,"covered":14,"skipped":0,"pct":37.84}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/CodeEditorControl.tsx": {"lines":{"total":23,"covered":10,"skipped":0,"pct":43.48},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":28,"covered":11,"skipped":0,"pct":39.29},"branches":{"total":9,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/ColorPickerControl.tsx": {"lines":{"total":12,"covered":9,"skipped":0,"pct":75},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":14,"covered":10,"skipped":0,"pct":71.43},"branches":{"total":5,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/ColumnActionSelectorControl.tsx": {"lines":{"total":42,"covered":18,"skipped":0,"pct":42.86},"functions":{"total":12,"covered":2,"skipped":0,"pct":16.67},"statements":{"total":47,"covered":19,"skipped":0,"pct":40.43},"branches":{"total":19,"covered":6,"skipped":0,"pct":31.58}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/ComputeTablePropertyControl.tsx": {"lines":{"total":51,"covered":17,"skipped":0,"pct":33.33},"functions":{"total":9,"covered":2,"skipped":0,"pct":22.22},"statements":{"total":53,"covered":18,"skipped":0,"pct":33.96},"branches":{"total":19,"covered":4,"skipped":0,"pct":21.05}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/CustomFusionChartControl.tsx": {"lines":{"total":11,"covered":8,"skipped":0,"pct":72.73},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":16,"covered":9,"skipped":0,"pct":56.25},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/DatePickerControl.tsx": {"lines":{"total":52,"covered":14,"skipped":0,"pct":26.92},"functions":{"total":15,"covered":2,"skipped":0,"pct":13.33},"statements":{"total":55,"covered":15,"skipped":0,"pct":27.27},"branches":{"total":42,"covered":2,"skipped":0,"pct":4.76}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/DropDownControl.tsx": {"lines":{"total":23,"covered":17,"skipped":0,"pct":73.91},"functions":{"total":7,"covered":4,"skipped":0,"pct":57.14},"statements":{"total":26,"covered":20,"skipped":0,"pct":76.92},"branches":{"total":11,"covered":5,"skipped":0,"pct":45.45}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/IconTabControl.tsx": {"lines":{"total":16,"covered":9,"skipped":0,"pct":56.25},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":22,"covered":10,"skipped":0,"pct":45.45},"branches":{"total":5,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/InputTextControl.tsx": {"lines":{"total":34,"covered":26,"skipped":0,"pct":76.47},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":36,"covered":28,"skipped":0,"pct":77.78},"branches":{"total":14,"covered":4,"skipped":0,"pct":28.57}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/KeyValueComponent.tsx": {"lines":{"total":58,"covered":11,"skipped":0,"pct":18.97},"functions":{"total":18,"covered":0,"skipped":0,"pct":0},"statements":{"total":62,"covered":11,"skipped":0,"pct":17.74},"branches":{"total":27,"covered":8,"skipped":0,"pct":29.63}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/LocationSearchControl.tsx": {"lines":{"total":40,"covered":14,"skipped":0,"pct":35},"functions":{"total":9,"covered":2,"skipped":0,"pct":22.22},"statements":{"total":44,"covered":15,"skipped":0,"pct":34.09},"branches":{"total":17,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/MultiSelectControl.tsx": {"lines":{"total":19,"covered":10,"skipped":0,"pct":52.63},"functions":{"total":6,"covered":2,"skipped":0,"pct":33.33},"statements":{"total":23,"covered":11,"skipped":0,"pct":47.83},"branches":{"total":5,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/MultiSwitchControl.tsx": {"lines":{"total":16,"covered":11,"skipped":0,"pct":68.75},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":18,"covered":12,"skipped":0,"pct":66.67},"branches":{"total":11,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/OptionControl.tsx": {"lines":{"total":12,"covered":9,"skipped":0,"pct":75},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":14,"covered":10,"skipped":0,"pct":71.43},"branches":{"total":3,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/PrimaryColumnsControl.tsx": {"lines":{"total":96,"covered":22,"skipped":0,"pct":22.92},"functions":{"total":25,"covered":2,"skipped":0,"pct":8},"statements":{"total":103,"covered":23,"skipped":0,"pct":22.33},"branches":{"total":55,"covered":8,"skipped":0,"pct":14.55}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/StepControl.tsx": {"lines":{"total":19,"covered":9,"skipped":0,"pct":47.37},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":26,"covered":10,"skipped":0,"pct":38.46},"branches":{"total":5,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/StyledControls.tsx": {"lines":{"total":77,"covered":49,"skipped":0,"pct":63.64},"functions":{"total":48,"covered":20,"skipped":0,"pct":41.67},"statements":{"total":77,"covered":49,"skipped":0,"pct":63.64},"branches":{"total":64,"covered":49,"skipped":0,"pct":76.56}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/SwitchControl.tsx": {"lines":{"total":12,"covered":11,"skipped":0,"pct":91.67},"functions":{"total":4,"covered":3,"skipped":0,"pct":75},"statements":{"total":14,"covered":13,"skipped":0,"pct":92.86},"branches":{"total":3,"covered":2,"skipped":0,"pct":66.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/TabControl.tsx": {"lines":{"total":82,"covered":22,"skipped":0,"pct":26.83},"functions":{"total":24,"covered":2,"skipped":0,"pct":8.33},"statements":{"total":86,"covered":23,"skipped":0,"pct":26.74},"branches":{"total":25,"covered":8,"skipped":0,"pct":32}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/propertyControls/index.ts": {"lines":{"total":27,"covered":22,"skipped":0,"pct":81.48},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":28,"covered":23,"skipped":0,"pct":82.14},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/utils/CollapseComponent.tsx": {"lines":{"total":13,"covered":6,"skipped":0,"pct":46.15},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":6,"skipped":0,"pct":40},"branches":{"total":10,"covered":2,"skipped":0,"pct":20}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/utils/EmptyDataState.tsx": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/utils/Skeleton.tsx": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":6,"skipped":0,"pct":85.71},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/components/utils/TreeStructure.tsx": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/configs/index.ts": {"lines":{"total":41,"covered":40,"skipped":0,"pct":97.56},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":45,"covered":43,"skipped":0,"pct":95.56},"branches":{"total":98,"covered":82,"skipped":0,"pct":83.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/configs/types.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/ApiConstants.tsx": {"lines":{"total":23,"covered":23,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":23,"covered":23,"skipped":0,"pct":100},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/ApiEditorConstants.ts": {"lines":{"total":21,"covered":21,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":22,"covered":22,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/AppConstants.ts": {"lines":{"total":18,"covered":17,"skipped":0,"pct":94.44},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":21,"covered":19,"skipped":0,"pct":90.48},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/BindingsConstants.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/Colors.tsx": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/CommentConstants.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/CustomChartConstants.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/DatasourceEditorConstants.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/DefaultTheme.tsx": {"lines":{"total":90,"covered":86,"skipped":0,"pct":95.56},"functions":{"total":28,"covered":24,"skipped":0,"pct":85.71},"statements":{"total":106,"covered":102,"skipped":0,"pct":96.23},"branches":{"total":38,"covered":34,"skipped":0,"pct":89.47}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/Explorer.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/FieldExpectedValue.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/Fonts.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/HelpConstants.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/IconConstants.tsx": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":14,"covered":14,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/KeyboardShortcuts.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/Layers.tsx": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/OmnibarDocumentationConstants.ts": {"lines":{"total":10,"covered":3,"skipped":0,"pct":30},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":3,"skipped":0,"pct":30},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/OnboardingConstants.tsx": {"lines":{"total":32,"covered":18,"skipped":0,"pct":56.25},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":32,"covered":18,"skipped":0,"pct":56.25},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/QueryEditorConstants.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/ReduxActionConstants.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/TourSteps.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/WebsocketConstants.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":7,"skipped":0,"pct":70},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/WidgetConstants.tsx": {"lines":{"total":61,"covered":61,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":61,"covered":61,"skipped":0,"pct":100},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/WidgetValidation.ts": {"lines":{"total":36,"covered":36,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":36,"covered":36,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/forms.ts": {"lines":{"total":19,"covered":19,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":19,"covered":19,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/messages.ts": {"lines":{"total":296,"covered":226,"skipped":0,"pct":76.35},"functions":{"total":214,"covered":25,"skipped":0,"pct":11.68},"statements":{"total":647,"covered":458,"skipped":0,"pct":70.79},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/providerConstants.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/routes.ts": {"lines":{"total":115,"covered":95,"skipped":0,"pct":82.61},"functions":{"total":18,"covered":12,"skipped":0,"pct":66.67},"statements":{"total":133,"covered":112,"skipped":0,"pct":84.21},"branches":{"total":92,"covered":40,"skipped":0,"pct":43.48}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/userConstants.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/AppsmithActionConstants/ActionConstants.tsx": {"lines":{"total":51,"covered":51,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":51,"covered":51,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/ApiDependencyConfigs.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/ApiEditorConfigs.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/ApiSettingsConfig.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/GoogleSheetsSettingsConfig.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/QuerySettingsConfig.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/entities/Action/actionProperties.ts": {"lines":{"total":34,"covered":34,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":38,"covered":38,"skipped":0,"pct":100},"branches":{"total":22,"covered":20,"skipped":0,"pct":90.91}} -,"/Users/hetunandu/code/appsmith/app/client/src/entities/Action/index.ts": {"lines":{"total":13,"covered":10,"skipped":0,"pct":76.92},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":16,"covered":11,"skipped":0,"pct":68.75},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/entities/AppsmithConsole/index.ts": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":8,"covered":8,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/entities/AppsmithConsole/logtype.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/entities/DataTree/dataTreeAction.ts": {"lines":{"total":11,"covered":3,"skipped":0,"pct":27.27},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":4,"skipped":0,"pct":25},"branches":{"total":22,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/entities/DataTree/dataTreeFactory.ts": {"lines":{"total":31,"covered":13,"skipped":0,"pct":41.94},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":32,"covered":14,"skipped":0,"pct":43.75},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/entities/DataTree/dataTreeWidget.ts": {"lines":{"total":32,"covered":27,"skipped":0,"pct":84.38},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":33,"covered":28,"skipped":0,"pct":84.85},"branches":{"total":4,"covered":1,"skipped":0,"pct":25}} -,"/Users/hetunandu/code/appsmith/app/client/src/entities/Datasource/RestAPIForm.ts": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":12,"covered":12,"skipped":0,"pct":100},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/entities/Datasource/index.ts": {"lines":{"total":10,"covered":3,"skipped":0,"pct":30},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":5,"skipped":0,"pct":31.25},"branches":{"total":8,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/entities/Tour/index.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/entities/Widget/utils.ts": {"lines":{"total":62,"covered":60,"skipped":0,"pct":96.77},"functions":{"total":11,"covered":11,"skipped":0,"pct":100},"statements":{"total":64,"covered":62,"skipped":0,"pct":96.88},"branches":{"total":68,"covered":58,"skipped":0,"pct":85.29}} -,"/Users/hetunandu/code/appsmith/app/client/src/globalStyles/tooltip.ts": {"lines":{"total":10,"covered":5,"skipped":0,"pct":50},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":5,"skipped":0,"pct":50},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/icons/AlertIcons.tsx": {"lines":{"total":11,"covered":7,"skipped":0,"pct":63.64},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":7,"skipped":0,"pct":63.64},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/icons/ControlIcons.tsx": {"lines":{"total":95,"covered":55,"skipped":0,"pct":57.89},"functions":{"total":46,"covered":6,"skipped":0,"pct":13.04},"statements":{"total":95,"covered":55,"skipped":0,"pct":57.89},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/icons/FormIcons.tsx": {"lines":{"total":17,"covered":10,"skipped":0,"pct":58.82},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":17,"covered":10,"skipped":0,"pct":58.82},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/icons/HeaderIcons.tsx": {"lines":{"total":13,"covered":9,"skipped":0,"pct":69.23},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":13,"covered":9,"skipped":0,"pct":69.23},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/icons/HelpIcons.tsx": {"lines":{"total":18,"covered":10,"skipped":0,"pct":55.56},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":18,"covered":10,"skipped":0,"pct":55.56},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/icons/MenuIcons.tsx": {"lines":{"total":37,"covered":23,"skipped":0,"pct":62.16},"functions":{"total":17,"covered":3,"skipped":0,"pct":17.65},"statements":{"total":37,"covered":23,"skipped":0,"pct":62.16},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/icons/WidgetIcons.tsx": {"lines":{"total":54,"covered":35,"skipped":0,"pct":64.81},"functions":{"total":26,"covered":7,"skipped":0,"pct":26.92},"statements":{"total":54,"covered":35,"skipped":0,"pct":64.81},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/mockResponses/CommentApiMockResponse.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/mockResponses/WidgetConfigResponse.tsx": {"lines":{"total":94,"covered":11,"skipped":0,"pct":11.7},"functions":{"total":19,"covered":0,"skipped":0,"pct":0},"statements":{"total":97,"covered":11,"skipped":0,"pct":11.34},"branches":{"total":32,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/mockResponses/WidgetSidebarResponse.tsx": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/normalizers/CanvasWidgetsNormalizer.tsx": {"lines":{"total":10,"covered":10,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":10,"covered":10,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/AppViewer/viewer/GetAppViewerHeaderCTA.tsx": {"lines":{"total":29,"covered":27,"skipped":0,"pct":93.1},"functions":{"total":4,"covered":3,"skipped":0,"pct":75},"statements":{"total":29,"covered":27,"skipped":0,"pct":93.1},"branches":{"total":38,"covered":32,"skipped":0,"pct":84.21}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Applications/ForkApplicationModal.tsx": {"lines":{"total":38,"covered":32,"skipped":0,"pct":84.21},"functions":{"total":7,"covered":3,"skipped":0,"pct":42.86},"statements":{"total":40,"covered":34,"skipped":0,"pct":85},"branches":{"total":13,"covered":6,"skipped":0,"pct":46.15}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Applications/ForkModalStyles.ts": {"lines":{"total":22,"covered":21,"skipped":0,"pct":95.45},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":22,"covered":21,"skipped":0,"pct":95.45},"branches":{"total":16,"covered":14,"skipped":0,"pct":87.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Applications/permissionHelpers.tsx": {"lines":{"total":12,"covered":11,"skipped":0,"pct":91.67},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":13,"covered":12,"skipped":0,"pct":92.31},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Applications/ProductUpdatesModal/ReleaseComponent.tsx": {"lines":{"total":69,"covered":17,"skipped":0,"pct":24.64},"functions":{"total":37,"covered":1,"skipped":0,"pct":2.7},"statements":{"total":75,"covered":17,"skipped":0,"pct":22.67},"branches":{"total":34,"covered":16,"skipped":0,"pct":47.06}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/ActionSettings.tsx": {"lines":{"total":18,"covered":7,"skipped":0,"pct":38.89},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":18,"covered":7,"skipped":0,"pct":38.89},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Canvas.tsx": {"lines":{"total":15,"covered":12,"skipped":0,"pct":80},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":15,"covered":12,"skipped":0,"pct":80},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/EditableAppName.tsx": {"lines":{"total":19,"covered":14,"skipped":0,"pct":73.68},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":22,"covered":16,"skipped":0,"pct":72.73},"branches":{"total":8,"covered":3,"skipped":0,"pct":37.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/EditorHeader.tsx": {"lines":{"total":96,"covered":85,"skipped":0,"pct":88.54},"functions":{"total":26,"covered":20,"skipped":0,"pct":76.92},"statements":{"total":100,"covered":89,"skipped":0,"pct":89},"branches":{"total":45,"covered":25,"skipped":0,"pct":55.56}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/EntityNotFoundPane.tsx": {"lines":{"total":11,"covered":8,"skipped":0,"pct":72.73},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":8,"skipped":0,"pct":72.73},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/FormControl.tsx": {"lines":{"total":11,"covered":6,"skipped":0,"pct":54.55},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":12,"covered":6,"skipped":0,"pct":50},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/GlobalHotKeys.tsx": {"lines":{"total":76,"covered":53,"skipped":0,"pct":69.74},"functions":{"total":30,"covered":18,"skipped":0,"pct":60},"statements":{"total":80,"covered":57,"skipped":0,"pct":71.25},"branches":{"total":23,"covered":9,"skipped":0,"pct":39.13}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/HelpButton.tsx": {"lines":{"total":16,"covered":15,"skipped":0,"pct":93.75},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":18,"covered":17,"skipped":0,"pct":94.44},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/MainContainer.tsx": {"lines":{"total":17,"covered":17,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":17,"covered":17,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/MainContainerLayoutControl.tsx": {"lines":{"total":28,"covered":24,"skipped":0,"pct":85.71},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":28,"covered":24,"skipped":0,"pct":85.71},"branches":{"total":10,"covered":5,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Popper.tsx": {"lines":{"total":40,"covered":34,"skipped":0,"pct":85},"functions":{"total":9,"covered":8,"skipped":0,"pct":88.89},"statements":{"total":40,"covered":34,"skipped":0,"pct":85},"branches":{"total":36,"covered":26,"skipped":0,"pct":72.22}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/PropertyPaneHelpButton.tsx": {"lines":{"total":19,"covered":16,"skipped":0,"pct":84.21},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":20,"covered":17,"skipped":0,"pct":85},"branches":{"total":12,"covered":6,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/PropertyPaneTitle.tsx": {"lines":{"total":49,"covered":40,"skipped":0,"pct":81.63},"functions":{"total":17,"covered":14,"skipped":0,"pct":82.35},"statements":{"total":53,"covered":44,"skipped":0,"pct":83.02},"branches":{"total":44,"covered":17,"skipped":0,"pct":38.64}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/ToggleModeButton.tsx": {"lines":{"total":101,"covered":69,"skipped":0,"pct":68.32},"functions":{"total":26,"covered":10,"skipped":0,"pct":38.46},"statements":{"total":111,"covered":78,"skipped":0,"pct":70.27},"branches":{"total":44,"covered":17,"skipped":0,"pct":38.64}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/WidgetCard.tsx": {"lines":{"total":33,"covered":14,"skipped":0,"pct":42.42},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":14,"skipped":0,"pct":37.84},"branches":{"total":12,"covered":6,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/WidgetSidebar.tsx": {"lines":{"total":67,"covered":24,"skipped":0,"pct":35.82},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":69,"covered":24,"skipped":0,"pct":34.78},"branches":{"total":47,"covered":10,"skipped":0,"pct":21.28}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/WidgetsEditor.tsx": {"lines":{"total":60,"covered":54,"skipped":0,"pct":90},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":63,"covered":57,"skipped":0,"pct":90.48},"branches":{"total":32,"covered":23,"skipped":0,"pct":71.88}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/WidgetsMultiSelectBox.tsx": {"lines":{"total":83,"covered":71,"skipped":0,"pct":85.54},"functions":{"total":24,"covered":19,"skipped":0,"pct":79.17},"statements":{"total":90,"covered":78,"skipped":0,"pct":86.67},"branches":{"total":36,"covered":32,"skipped":0,"pct":88.89}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/routes.tsx": {"lines":{"total":59,"covered":26,"skipped":0,"pct":44.07},"functions":{"total":15,"covered":1,"skipped":0,"pct":6.67},"statements":{"total":68,"covered":27,"skipped":0,"pct":39.71},"branches":{"total":18,"covered":4,"skipped":0,"pct":22.22}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/utils.ts": {"lines":{"total":86,"covered":38,"skipped":0,"pct":44.19},"functions":{"total":12,"covered":3,"skipped":0,"pct":25},"statements":{"total":92,"covered":39,"skipped":0,"pct":42.39},"branches":{"total":31,"covered":4,"skipped":0,"pct":12.9}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/APIEditor/CurlImportForm.tsx": {"lines":{"total":29,"covered":23,"skipped":0,"pct":79.31},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":32,"covered":24,"skipped":0,"pct":75},"branches":{"total":14,"covered":12,"skipped":0,"pct":85.71}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/APIEditor/DatasourceList.tsx": {"lines":{"total":37,"covered":19,"skipped":0,"pct":51.35},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":41,"covered":20,"skipped":0,"pct":48.78},"branches":{"total":30,"covered":14,"skipped":0,"pct":46.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/APIEditor/Form.tsx": {"lines":{"total":154,"covered":62,"skipped":0,"pct":40.26},"functions":{"total":54,"covered":0,"skipped":0,"pct":0},"statements":{"total":163,"covered":62,"skipped":0,"pct":38.04},"branches":{"total":96,"covered":46,"skipped":0,"pct":47.92}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/APIEditor/Pagination.tsx": {"lines":{"total":51,"covered":26,"skipped":0,"pct":50.98},"functions":{"total":25,"covered":0,"skipped":0,"pct":0},"statements":{"total":51,"covered":26,"skipped":0,"pct":50.98},"branches":{"total":32,"covered":20,"skipped":0,"pct":62.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/APIEditor/PostBodyData.tsx": {"lines":{"total":32,"covered":17,"skipped":0,"pct":53.13},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":17,"skipped":0,"pct":51.52},"branches":{"total":14,"covered":4,"skipped":0,"pct":28.57}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/APIEditor/ProviderTemplates.tsx": {"lines":{"total":93,"covered":35,"skipped":0,"pct":37.63},"functions":{"total":21,"covered":1,"skipped":0,"pct":4.76},"statements":{"total":102,"covered":36,"skipped":0,"pct":35.29},"branches":{"total":49,"covered":20,"skipped":0,"pct":40.82}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/APIEditor/RapidApiEditorForm.tsx": {"lines":{"total":46,"covered":29,"skipped":0,"pct":63.04},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":46,"covered":29,"skipped":0,"pct":63.04},"branches":{"total":39,"covered":18,"skipped":0,"pct":46.15}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/APIEditor/helpers.ts": {"lines":{"total":3,"covered":2,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/APIEditor/index.tsx": {"lines":{"total":93,"covered":31,"skipped":0,"pct":33.33},"functions":{"total":20,"covered":1,"skipped":0,"pct":5},"statements":{"total":104,"covered":32,"skipped":0,"pct":30.77},"branches":{"total":55,"covered":2,"skipped":0,"pct":3.64}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/DataSourceEditor/BackButton.tsx": {"lines":{"total":17,"covered":10,"skipped":0,"pct":58.82},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":10,"skipped":0,"pct":58.82},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/DataSourceEditor/Collapsible.tsx": {"lines":{"total":15,"covered":9,"skipped":0,"pct":60},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":19,"covered":10,"skipped":0,"pct":52.63},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/DataSourceEditor/Connected.tsx": {"lines":{"total":50,"covered":25,"skipped":0,"pct":50},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":51,"covered":25,"skipped":0,"pct":49.02},"branches":{"total":72,"covered":8,"skipped":0,"pct":11.11}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/DataSourceEditor/DBForm.tsx": {"lines":{"total":71,"covered":34,"skipped":0,"pct":47.89},"functions":{"total":13,"covered":1,"skipped":0,"pct":7.69},"statements":{"total":73,"covered":35,"skipped":0,"pct":47.95},"branches":{"total":27,"covered":8,"skipped":0,"pct":29.63}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/DataSourceEditor/DatasourceSection.tsx": {"lines":{"total":39,"covered":11,"skipped":0,"pct":28.21},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":41,"covered":12,"skipped":0,"pct":29.27},"branches":{"total":30,"covered":8,"skipped":0,"pct":26.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/DataSourceEditor/FormTitle.tsx": {"lines":{"total":45,"covered":13,"skipped":0,"pct":28.89},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":47,"covered":13,"skipped":0,"pct":27.66},"branches":{"total":39,"covered":2,"skipped":0,"pct":5.13}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/DataSourceEditor/JSONtoForm.tsx": {"lines":{"total":127,"covered":22,"skipped":0,"pct":17.32},"functions":{"total":23,"covered":1,"skipped":0,"pct":4.35},"statements":{"total":142,"covered":23,"skipped":0,"pct":16.2},"branches":{"total":69,"covered":14,"skipped":0,"pct":20.29}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/DataSourceEditor/RestAPIDatasourceForm.tsx": {"lines":{"total":169,"covered":49,"skipped":0,"pct":28.99},"functions":{"total":34,"covered":1,"skipped":0,"pct":2.94},"statements":{"total":194,"covered":50,"skipped":0,"pct":25.77},"branches":{"total":112,"covered":22,"skipped":0,"pct":19.64}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/DataSourceEditor/index.tsx": {"lines":{"total":86,"covered":25,"skipped":0,"pct":29.07},"functions":{"total":18,"covered":2,"skipped":0,"pct":11.11},"statements":{"total":97,"covered":27,"skipped":0,"pct":27.84},"branches":{"total":55,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/ContextMenuTrigger.tsx": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/EntityExplorer.tsx": {"lines":{"total":45,"covered":38,"skipped":0,"pct":84.44},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":48,"covered":40,"skipped":0,"pct":83.33},"branches":{"total":17,"covered":8,"skipped":0,"pct":47.06}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/ExplorerIcons.tsx": {"lines":{"total":51,"covered":44,"skipped":0,"pct":86.27},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":53,"covered":46,"skipped":0,"pct":86.79},"branches":{"total":12,"covered":7,"skipped":0,"pct":58.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/ExplorerSearch.tsx": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":8,"covered":7,"skipped":0,"pct":87.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/ExplorerStyledComponents.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/JSDependencies.tsx": {"lines":{"total":28,"covered":25,"skipped":0,"pct":89.29},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":33,"covered":28,"skipped":0,"pct":84.85},"branches":{"total":16,"covered":15,"skipped":0,"pct":93.75}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/TreeDropdown.tsx": {"lines":{"total":35,"covered":22,"skipped":0,"pct":62.86},"functions":{"total":9,"covered":4,"skipped":0,"pct":44.44},"statements":{"total":37,"covered":24,"skipped":0,"pct":64.86},"branches":{"total":26,"covered":14,"skipped":0,"pct":53.85}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/helpers.tsx": {"lines":{"total":25,"covered":16,"skipped":0,"pct":64},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":28,"covered":19,"skipped":0,"pct":67.86},"branches":{"total":60,"covered":27,"skipped":0,"pct":45}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/hooks.ts": {"lines":{"total":125,"covered":65,"skipped":0,"pct":52},"functions":{"total":37,"covered":22,"skipped":0,"pct":59.46},"statements":{"total":159,"covered":77,"skipped":0,"pct":48.43},"branches":{"total":65,"covered":19,"skipped":0,"pct":29.23}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/index.tsx": {"lines":{"total":11,"covered":10,"skipped":0,"pct":90.91},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":11,"covered":10,"skipped":0,"pct":90.91},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Actions/ActionEntity.tsx": {"lines":{"total":25,"covered":15,"skipped":0,"pct":60},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":15,"skipped":0,"pct":60},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Actions/ActionEntityContextMenu.tsx": {"lines":{"total":35,"covered":14,"skipped":0,"pct":40},"functions":{"total":14,"covered":0,"skipped":0,"pct":0},"statements":{"total":36,"covered":14,"skipped":0,"pct":38.89},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Actions/ActionsGroup.tsx": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":7,"skipped":0,"pct":46.67},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Actions/MoreActionsMenu.tsx": {"lines":{"total":35,"covered":12,"skipped":0,"pct":34.29},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":38,"covered":12,"skipped":0,"pct":31.58},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Actions/helpers.tsx": {"lines":{"total":53,"covered":26,"skipped":0,"pct":49.06},"functions":{"total":20,"covered":4,"skipped":0,"pct":20},"statements":{"total":62,"covered":29,"skipped":0,"pct":46.77},"branches":{"total":53,"covered":19,"skipped":0,"pct":35.85}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Datasources/DataSourceContextMenu.tsx": {"lines":{"total":18,"covered":10,"skipped":0,"pct":55.56},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":18,"covered":10,"skipped":0,"pct":55.56},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Datasources/DatasourceEntity.tsx": {"lines":{"total":45,"covered":16,"skipped":0,"pct":35.56},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":45,"covered":16,"skipped":0,"pct":35.56},"branches":{"total":18,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Datasources/DatasourceField.tsx": {"lines":{"total":21,"covered":14,"skipped":0,"pct":66.67},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":14,"skipped":0,"pct":66.67},"branches":{"total":16,"covered":14,"skipped":0,"pct":87.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Datasources/DatasourceStructure.tsx": {"lines":{"total":28,"covered":14,"skipped":0,"pct":50},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":31,"covered":14,"skipped":0,"pct":45.16},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Datasources/DatasourceStructureContainer.tsx": {"lines":{"total":17,"covered":9,"skipped":0,"pct":52.94},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":9,"skipped":0,"pct":52.94},"branches":{"total":17,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Datasources/QueryTemplates.tsx": {"lines":{"total":33,"covered":16,"skipped":0,"pct":48.48},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":34,"covered":16,"skipped":0,"pct":47.06},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Entity/AddButton.tsx": {"lines":{"total":11,"covered":9,"skipped":0,"pct":81.82},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":13,"covered":11,"skipped":0,"pct":84.62},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Entity/Collapse.tsx": {"lines":{"total":14,"covered":14,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":15,"covered":14,"skipped":0,"pct":93.33},"branches":{"total":6,"covered":5,"skipped":0,"pct":83.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Entity/CollapseToggle.tsx": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":13,"covered":12,"skipped":0,"pct":92.31},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Entity/CurrentPageEntityProperties.tsx": {"lines":{"total":46,"covered":13,"skipped":0,"pct":28.26},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":48,"covered":13,"skipped":0,"pct":27.08},"branches":{"total":16,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Entity/EntityProperties.tsx": {"lines":{"total":51,"covered":12,"skipped":0,"pct":23.53},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":52,"covered":12,"skipped":0,"pct":23.08},"branches":{"total":26,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Entity/EntityProperty.tsx": {"lines":{"total":39,"covered":21,"skipped":0,"pct":53.85},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":39,"covered":21,"skipped":0,"pct":53.85},"branches":{"total":26,"covered":6,"skipped":0,"pct":23.08}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Entity/Loader.tsx": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Entity/Name.tsx": {"lines":{"total":78,"covered":46,"skipped":0,"pct":58.97},"functions":{"total":19,"covered":10,"skipped":0,"pct":52.63},"statements":{"total":82,"covered":49,"skipped":0,"pct":59.76},"branches":{"total":42,"covered":11,"skipped":0,"pct":26.19}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Entity/Placeholder.tsx": {"lines":{"total":11,"covered":6,"skipped":0,"pct":54.55},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":6,"skipped":0,"pct":54.55},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Entity/index.tsx": {"lines":{"total":59,"covered":56,"skipped":0,"pct":94.92},"functions":{"total":16,"covered":15,"skipped":0,"pct":93.75},"statements":{"total":62,"covered":59,"skipped":0,"pct":95.16},"branches":{"total":46,"covered":37,"skipped":0,"pct":80.43}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Onboarding/DBQueryGroup.tsx": {"lines":{"total":37,"covered":18,"skipped":0,"pct":48.65},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":38,"covered":18,"skipped":0,"pct":47.37},"branches":{"total":16,"covered":6,"skipped":0,"pct":37.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Onboarding/Loading.tsx": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Onboarding/index.tsx": {"lines":{"total":24,"covered":12,"skipped":0,"pct":50},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":26,"covered":12,"skipped":0,"pct":46.15},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Pages/PageContextMenu.tsx": {"lines":{"total":34,"covered":25,"skipped":0,"pct":73.53},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":35,"covered":25,"skipped":0,"pct":71.43},"branches":{"total":10,"covered":6,"skipped":0,"pct":60}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Pages/PageEntity.tsx": {"lines":{"total":30,"covered":26,"skipped":0,"pct":86.67},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":30,"covered":26,"skipped":0,"pct":86.67},"branches":{"total":8,"covered":3,"skipped":0,"pct":37.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Pages/PageGroup.tsx": {"lines":{"total":33,"covered":28,"skipped":0,"pct":84.85},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":34,"covered":28,"skipped":0,"pct":82.35},"branches":{"total":17,"covered":10,"skipped":0,"pct":58.82}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/PluginGroup/PluginGroup.tsx": {"lines":{"total":25,"covered":22,"skipped":0,"pct":88},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":26,"covered":23,"skipped":0,"pct":88.46},"branches":{"total":57,"covered":35,"skipped":0,"pct":61.4}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Widgets/WidgetContextMenu.tsx": {"lines":{"total":37,"covered":12,"skipped":0,"pct":32.43},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":38,"covered":12,"skipped":0,"pct":31.58},"branches":{"total":12,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Widgets/WidgetEntity.tsx": {"lines":{"total":50,"covered":50,"skipped":0,"pct":100},"functions":{"total":8,"covered":8,"skipped":0,"pct":100},"statements":{"total":52,"covered":51,"skipped":0,"pct":98.08},"branches":{"total":49,"covered":39,"skipped":0,"pct":79.59}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Widgets/WidgetGroup.tsx": {"lines":{"total":24,"covered":22,"skipped":0,"pct":91.67},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":25,"covered":23,"skipped":0,"pct":92},"branches":{"total":43,"covered":28,"skipped":0,"pct":65.12}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Widgets/useNavigateToWidget.ts": {"lines":{"total":39,"covered":36,"skipped":0,"pct":92.31},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":41,"covered":37,"skipped":0,"pct":90.24},"branches":{"total":16,"covered":12,"skipped":0,"pct":75}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/Explorer/Widgets/utils.ts": {"lines":{"total":6,"covered":6,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/IntegrationEditor/ActiveDataSources.tsx": {"lines":{"total":41,"covered":21,"skipped":0,"pct":51.22},"functions":{"total":11,"covered":1,"skipped":0,"pct":9.09},"statements":{"total":50,"covered":22,"skipped":0,"pct":44},"branches":{"total":35,"covered":6,"skipped":0,"pct":17.14}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/IntegrationEditor/AddDatasourceSecurely.tsx": {"lines":{"total":11,"covered":10,"skipped":0,"pct":90.91},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":10,"skipped":0,"pct":90.91},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/IntegrationEditor/DatasourceCard.tsx": {"lines":{"total":52,"covered":26,"skipped":0,"pct":50},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":55,"covered":26,"skipped":0,"pct":47.27},"branches":{"total":42,"covered":20,"skipped":0,"pct":47.62}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/IntegrationEditor/DatasourceHome.tsx": {"lines":{"total":33,"covered":20,"skipped":0,"pct":60.61},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":38,"covered":21,"skipped":0,"pct":55.26},"branches":{"total":15,"covered":8,"skipped":0,"pct":53.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/IntegrationEditor/IntegrationsHomeScreen.tsx": {"lines":{"total":120,"covered":37,"skipped":0,"pct":30.83},"functions":{"total":19,"covered":1,"skipped":0,"pct":5.26},"statements":{"total":134,"covered":38,"skipped":0,"pct":28.36},"branches":{"total":78,"covered":10,"skipped":0,"pct":12.82}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/IntegrationEditor/MockDataSources.tsx": {"lines":{"total":33,"covered":15,"skipped":0,"pct":45.45},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":15,"skipped":0,"pct":45.45},"branches":{"total":16,"covered":14,"skipped":0,"pct":87.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/IntegrationEditor/NewApi.tsx": {"lines":{"total":31,"covered":20,"skipped":0,"pct":64.52},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":32,"covered":20,"skipped":0,"pct":62.5},"branches":{"total":12,"covered":8,"skipped":0,"pct":66.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/IntegrationEditor/NewQuery.tsx": {"lines":{"total":16,"covered":11,"skipped":0,"pct":68.75},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":22,"covered":12,"skipped":0,"pct":54.55},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/IntegrationEditor/index.tsx": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/PropertyPane/ConnectDataCTA.tsx": {"lines":{"total":33,"covered":29,"skipped":0,"pct":87.88},"functions":{"total":14,"covered":12,"skipped":0,"pct":85.71},"statements":{"total":34,"covered":30,"skipped":0,"pct":88.24},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/PropertyPane/Generator.tsx": {"lines":{"total":17,"covered":16,"skipped":0,"pct":94.12},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":19,"covered":17,"skipped":0,"pct":89.47},"branches":{"total":10,"covered":7,"skipped":0,"pct":70}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/PropertyPane/PanelPropertiesEditor.tsx": {"lines":{"total":74,"covered":14,"skipped":0,"pct":18.92},"functions":{"total":14,"covered":0,"skipped":0,"pct":0},"statements":{"total":76,"covered":14,"skipped":0,"pct":18.42},"branches":{"total":40,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/PropertyPane/PropertyControl.tsx": {"lines":{"total":107,"covered":64,"skipped":0,"pct":59.81},"functions":{"total":12,"covered":3,"skipped":0,"pct":25},"statements":{"total":113,"covered":65,"skipped":0,"pct":57.52},"branches":{"total":48,"covered":20,"skipped":0,"pct":41.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/PropertyPane/PropertyHelpLabel.tsx": {"lines":{"total":8,"covered":7,"skipped":0,"pct":87.5},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":8,"covered":7,"skipped":0,"pct":87.5},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/PropertyPane/PropertyPaneConnections.tsx": {"lines":{"total":70,"covered":40,"skipped":0,"pct":57.14},"functions":{"total":28,"covered":9,"skipped":0,"pct":32.14},"statements":{"total":72,"covered":41,"skipped":0,"pct":56.94},"branches":{"total":68,"covered":26,"skipped":0,"pct":38.24}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/PropertyPane/PropertySection.tsx": {"lines":{"total":26,"covered":22,"skipped":0,"pct":84.62},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":28,"covered":24,"skipped":0,"pct":85.71},"branches":{"total":14,"covered":8,"skipped":0,"pct":57.14}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/PropertyPane/index.tsx": {"lines":{"total":99,"covered":84,"skipped":0,"pct":84.85},"functions":{"total":25,"covered":17,"skipped":0,"pct":68},"statements":{"total":107,"covered":89,"skipped":0,"pct":83.18},"branches":{"total":103,"covered":75,"skipped":0,"pct":72.82}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/QueryEditor/EditorJSONtoForm.tsx": {"lines":{"total":140,"covered":67,"skipped":0,"pct":47.86},"functions":{"total":31,"covered":0,"skipped":0,"pct":0},"statements":{"total":147,"covered":67,"skipped":0,"pct":45.58},"branches":{"total":105,"covered":48,"skipped":0,"pct":45.71}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/QueryEditor/Form.tsx": {"lines":{"total":16,"covered":9,"skipped":0,"pct":56.25},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":9,"skipped":0,"pct":56.25},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/QueryEditor/JSONViewer.tsx": {"lines":{"total":19,"covered":11,"skipped":0,"pct":57.89},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":20,"covered":12,"skipped":0,"pct":60},"branches":{"total":10,"covered":6,"skipped":0,"pct":60}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/QueryEditor/Table.tsx": {"lines":{"total":54,"covered":14,"skipped":0,"pct":25.93},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":57,"covered":14,"skipped":0,"pct":24.56},"branches":{"total":24,"covered":2,"skipped":0,"pct":8.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/QueryEditor/TemplateMenu.tsx": {"lines":{"total":32,"covered":28,"skipped":0,"pct":87.5},"functions":{"total":9,"covered":7,"skipped":0,"pct":77.78},"statements":{"total":40,"covered":36,"skipped":0,"pct":90},"branches":{"total":15,"covered":12,"skipped":0,"pct":80}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/QueryEditor/index.tsx": {"lines":{"total":79,"covered":27,"skipped":0,"pct":34.18},"functions":{"total":13,"covered":1,"skipped":0,"pct":7.69},"statements":{"total":87,"covered":28,"skipped":0,"pct":32.18},"branches":{"total":33,"covered":4,"skipped":0,"pct":12.12}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/SaaSEditor/ActionForm.tsx": {"lines":{"total":48,"covered":13,"skipped":0,"pct":27.08},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":51,"covered":13,"skipped":0,"pct":25.49},"branches":{"total":26,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/SaaSEditor/DatasourceCard.tsx": {"lines":{"total":36,"covered":22,"skipped":0,"pct":61.11},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":36,"covered":22,"skipped":0,"pct":61.11},"branches":{"total":34,"covered":18,"skipped":0,"pct":52.94}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/SaaSEditor/DatasourceForm.tsx": {"lines":{"total":91,"covered":33,"skipped":0,"pct":36.26},"functions":{"total":16,"covered":1,"skipped":0,"pct":6.25},"statements":{"total":99,"covered":34,"skipped":0,"pct":34.34},"branches":{"total":35,"covered":6,"skipped":0,"pct":17.14}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/SaaSEditor/ListView.tsx": {"lines":{"total":69,"covered":26,"skipped":0,"pct":37.68},"functions":{"total":17,"covered":1,"skipped":0,"pct":5.88},"statements":{"total":79,"covered":27,"skipped":0,"pct":34.18},"branches":{"total":25,"covered":8,"skipped":0,"pct":32}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/SaaSEditor/constants.ts": {"lines":{"total":27,"covered":27,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":31,"covered":31,"skipped":0,"pct":100},"branches":{"total":30,"covered":19,"skipped":0,"pct":63.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/Editor/SaaSEditor/routes.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/common/ArtBoard.tsx": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/common/CanvasSelectionArena.tsx": {"lines":{"total":101,"covered":91,"skipped":0,"pct":90.1},"functions":{"total":17,"covered":14,"skipped":0,"pct":82.35},"statements":{"total":104,"covered":94,"skipped":0,"pct":90.38},"branches":{"total":33,"covered":19,"skipped":0,"pct":57.58}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/common/NotFound.tsx": {"lines":{"total":10,"covered":6,"skipped":0,"pct":60},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":6,"skipped":0,"pct":60},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/common/ProfileDropdown.tsx": {"lines":{"total":26,"covered":18,"skipped":0,"pct":69.23},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":26,"covered":18,"skipped":0,"pct":69.23},"branches":{"total":10,"covered":6,"skipped":0,"pct":60}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/common/ProfileImage.tsx": {"lines":{"total":18,"covered":16,"skipped":0,"pct":88.89},"functions":{"total":7,"covered":5,"skipped":0,"pct":71.43},"statements":{"total":20,"covered":18,"skipped":0,"pct":90},"branches":{"total":16,"covered":10,"skipped":0,"pct":62.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/common/ThemeSwitcher.tsx": {"lines":{"total":13,"covered":7,"skipped":0,"pct":53.85},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":7,"skipped":0,"pct":46.67},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/common/CustomizedDropdown/dropdownHelpers.tsx": {"lines":{"total":28,"covered":9,"skipped":0,"pct":32.14},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":29,"covered":10,"skipped":0,"pct":34.48},"branches":{"total":15,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/organization/AppInviteUsersForm.tsx": {"lines":{"total":35,"covered":17,"skipped":0,"pct":48.57},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":35,"covered":17,"skipped":0,"pct":48.57},"branches":{"total":38,"covered":6,"skipped":0,"pct":15.79}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/organization/General.tsx": {"lines":{"total":47,"covered":35,"skipped":0,"pct":74.47},"functions":{"total":10,"covered":2,"skipped":0,"pct":20},"statements":{"total":47,"covered":35,"skipped":0,"pct":74.47},"branches":{"total":44,"covered":32,"skipped":0,"pct":72.73}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/organization/ManageUsers.tsx": {"lines":{"total":19,"covered":9,"skipped":0,"pct":47.37},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":19,"covered":9,"skipped":0,"pct":47.37},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/organization/OrgInviteUsersForm.tsx": {"lines":{"total":103,"covered":43,"skipped":0,"pct":41.75},"functions":{"total":27,"covered":0,"skipped":0,"pct":0},"statements":{"total":107,"covered":43,"skipped":0,"pct":40.19},"branches":{"total":100,"covered":24,"skipped":0,"pct":24}} -,"/Users/hetunandu/code/appsmith/app/client/src/pages/organization/helpers.ts": {"lines":{"total":16,"covered":5,"skipped":0,"pct":31.25},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":20,"covered":8,"skipped":0,"pct":40},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/index.tsx": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/entityReducers/actionsReducer.tsx": {"lines":{"total":104,"covered":7,"skipped":0,"pct":6.73},"functions":{"total":51,"covered":0,"skipped":0,"pct":0},"statements":{"total":106,"covered":7,"skipped":0,"pct":6.6},"branches":{"total":48,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/entityReducers/appReducer.ts": {"lines":{"total":13,"covered":10,"skipped":0,"pct":76.92},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":13,"covered":10,"skipped":0,"pct":76.92},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/entityReducers/canvasWidgetsReducer.tsx": {"lines":{"total":11,"covered":8,"skipped":0,"pct":72.73},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":11,"covered":8,"skipped":0,"pct":72.73},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/entityReducers/datasourceReducer.ts": {"lines":{"total":52,"covered":5,"skipped":0,"pct":9.62},"functions":{"total":34,"covered":0,"skipped":0,"pct":0},"statements":{"total":54,"covered":5,"skipped":0,"pct":9.26},"branches":{"total":12,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/entityReducers/index.ts": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":12,"covered":12,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/entityReducers/jsExecutionsReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/entityReducers/metaReducer.ts": {"lines":{"total":21,"covered":9,"skipped":0,"pct":42.86},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":21,"covered":9,"skipped":0,"pct":42.86},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/entityReducers/pageListReducer.tsx": {"lines":{"total":32,"covered":8,"skipped":0,"pct":25},"functions":{"total":13,"covered":3,"skipped":0,"pct":23.08},"statements":{"total":36,"covered":8,"skipped":0,"pct":22.22},"branches":{"total":18,"covered":5,"skipped":0,"pct":27.78}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/entityReducers/pluginsReducer.ts": {"lines":{"total":10,"covered":5,"skipped":0,"pct":50},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":5,"skipped":0,"pct":50},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/entityReducers/widgetConfigReducer.tsx": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":6,"skipped":0,"pct":85.71},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/evaluationReducers/dependencyReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/evaluationReducers/index.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/evaluationReducers/loadingEntitiesReducer.ts": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":7,"covered":6,"skipped":0,"pct":85.71},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/evaluationReducers/treeReducer.ts": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":7,"covered":6,"skipped":0,"pct":85.71},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/apiNameReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/apiPaneReducer.ts": {"lines":{"total":25,"covered":5,"skipped":0,"pct":20},"functions":{"total":18,"covered":0,"skipped":0,"pct":0},"statements":{"total":27,"covered":5,"skipped":0,"pct":18.52},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/appViewReducer.tsx": {"lines":{"total":10,"covered":5,"skipped":0,"pct":50},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":5,"skipped":0,"pct":50},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/applicationsReducer.tsx": {"lines":{"total":79,"covered":9,"skipped":0,"pct":11.39},"functions":{"total":39,"covered":3,"skipped":0,"pct":7.69},"statements":{"total":82,"covered":9,"skipped":0,"pct":10.98},"branches":{"total":12,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/authReducer.ts": {"lines":{"total":11,"covered":5,"skipped":0,"pct":45.45},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":5,"skipped":0,"pct":45.45},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/canvasSelectionReducer.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/confirmRunActionReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/datasourceNameReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/datasourcePaneReducer.ts": {"lines":{"total":15,"covered":6,"skipped":0,"pct":40},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":6,"skipped":0,"pct":40},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/debuggerReducer.ts": {"lines":{"total":26,"covered":10,"skipped":0,"pct":38.46},"functions":{"total":7,"covered":1,"skipped":0,"pct":14.29},"statements":{"total":28,"covered":10,"skipped":0,"pct":35.71},"branches":{"total":18,"covered":1,"skipped":0,"pct":5.56}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/dragResizeReducer.ts": {"lines":{"total":39,"covered":34,"skipped":0,"pct":87.18},"functions":{"total":11,"covered":7,"skipped":0,"pct":63.64},"statements":{"total":40,"covered":34,"skipped":0,"pct":85},"branches":{"total":26,"covered":16,"skipped":0,"pct":61.54}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/editorReducer.tsx": {"lines":{"total":68,"covered":15,"skipped":0,"pct":22.06},"functions":{"total":23,"covered":5,"skipped":0,"pct":21.74},"statements":{"total":68,"covered":15,"skipped":0,"pct":22.06},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/errorReducer.tsx": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":9,"covered":7,"skipped":0,"pct":77.78},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/explorerReducer.ts": {"lines":{"total":19,"covered":10,"skipped":0,"pct":52.63},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":19,"covered":10,"skipped":0,"pct":52.63},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/globalSearchReducer.ts": {"lines":{"total":10,"covered":6,"skipped":0,"pct":60},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":10,"covered":6,"skipped":0,"pct":60},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/helpReducer.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/importReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/importedCollectionsReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/index.tsx": {"lines":{"total":36,"covered":36,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":36,"covered":36,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/notificationsReducer.ts": {"lines":{"total":21,"covered":6,"skipped":0,"pct":28.57},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":6,"skipped":0,"pct":28.57},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/onBoardingReducer.ts": {"lines":{"total":21,"covered":6,"skipped":0,"pct":28.57},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":6,"skipped":0,"pct":28.57},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/orgReducer.ts": {"lines":{"total":37,"covered":6,"skipped":0,"pct":16.22},"functions":{"total":24,"covered":1,"skipped":0,"pct":4.17},"statements":{"total":37,"covered":6,"skipped":0,"pct":16.22},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/pageCanvasStructureReducer.ts": {"lines":{"total":12,"covered":10,"skipped":0,"pct":83.33},"functions":{"total":4,"covered":3,"skipped":0,"pct":75},"statements":{"total":12,"covered":10,"skipped":0,"pct":83.33},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/pageWidgetsReducer.ts": {"lines":{"total":12,"covered":11,"skipped":0,"pct":91.67},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":12,"covered":11,"skipped":0,"pct":91.67},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/propertyPaneReducer.tsx": {"lines":{"total":25,"covered":15,"skipped":0,"pct":60},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":27,"covered":17,"skipped":0,"pct":62.96},"branches":{"total":21,"covered":9,"skipped":0,"pct":42.86}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/providerReducer.ts": {"lines":{"total":43,"covered":5,"skipped":0,"pct":11.63},"functions":{"total":23,"covered":0,"skipped":0,"pct":0},"statements":{"total":44,"covered":5,"skipped":0,"pct":11.36},"branches":{"total":8,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/queryPaneReducer.ts": {"lines":{"total":21,"covered":6,"skipped":0,"pct":28.57},"functions":{"total":13,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":6,"skipped":0,"pct":26.09},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/releasesReducer.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/themeReducer.ts": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":7,"skipped":0,"pct":46.67},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/tourReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/usersReducer.ts": {"lines":{"total":31,"covered":7,"skipped":0,"pct":22.58},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":31,"covered":7,"skipped":0,"pct":22.58},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/websocketReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/widgetSidebarReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/commentsReducer/commentsReducer.ts": {"lines":{"total":65,"covered":33,"skipped":0,"pct":50.77},"functions":{"total":27,"covered":14,"skipped":0,"pct":51.85},"statements":{"total":74,"covered":33,"skipped":0,"pct":44.59},"branches":{"total":12,"covered":3,"skipped":0,"pct":25}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleAddCommentToThreadSuccess.ts": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":10,"covered":10,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleCreateNewCommentThreadSuccess.ts": {"lines":{"total":10,"covered":9,"skipped":0,"pct":90},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":13,"covered":12,"skipped":0,"pct":92.31},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleFetchApplicationCommentsSuccess.ts": {"lines":{"total":13,"covered":13,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":15,"covered":14,"skipped":0,"pct":93.33},"branches":{"total":4,"covered":3,"skipped":0,"pct":75}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleNewCommentThreadEvent.ts": {"lines":{"total":13,"covered":12,"skipped":0,"pct":92.31},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":13,"covered":12,"skipped":0,"pct":92.31},"branches":{"total":6,"covered":5,"skipped":0,"pct":83.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleUpdateCommentEvent.ts": {"lines":{"total":10,"covered":2,"skipped":0,"pct":20},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":2,"skipped":0,"pct":15.38},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleUpdateCommentThreadEvent.ts": {"lines":{"total":15,"covered":14,"skipped":0,"pct":93.33},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":15,"covered":14,"skipped":0,"pct":93.33},"branches":{"total":46,"covered":28,"skipped":0,"pct":60.87}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleUpdateCommentThreadSuccess.ts": {"lines":{"total":14,"covered":13,"skipped":0,"pct":92.86},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":15,"covered":13,"skipped":0,"pct":86.67},"branches":{"total":40,"covered":23,"skipped":0,"pct":57.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/reducers/uiReducers/commentsReducer/testFixtures.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/resizable/index.tsx": {"lines":{"total":68,"covered":42,"skipped":0,"pct":61.76},"functions":{"total":20,"covered":7,"skipped":0,"pct":35},"statements":{"total":79,"covered":47,"skipped":0,"pct":59.49},"branches":{"total":38,"covered":16,"skipped":0,"pct":42.11}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/ActionExecutionSagas.ts": {"lines":{"total":344,"covered":48,"skipped":0,"pct":13.95},"functions":{"total":28,"covered":2,"skipped":0,"pct":7.14},"statements":{"total":403,"covered":49,"skipped":0,"pct":12.16},"branches":{"total":232,"covered":3,"skipped":0,"pct":1.29}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/ActionSagas.ts": {"lines":{"total":263,"covered":37,"skipped":0,"pct":14.07},"functions":{"total":24,"covered":1,"skipped":0,"pct":4.17},"statements":{"total":319,"covered":37,"skipped":0,"pct":11.6},"branches":{"total":100,"covered":1,"skipped":0,"pct":1}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/ApiPaneSagas.ts": {"lines":{"total":184,"covered":32,"skipped":0,"pct":17.39},"functions":{"total":28,"covered":2,"skipped":0,"pct":7.14},"statements":{"total":213,"covered":33,"skipped":0,"pct":15.49},"branches":{"total":107,"covered":2,"skipped":0,"pct":1.87}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/ApplicationSagas.tsx": {"lines":{"total":164,"covered":37,"skipped":0,"pct":22.56},"functions":{"total":22,"covered":2,"skipped":0,"pct":9.09},"statements":{"total":193,"covered":37,"skipped":0,"pct":19.17},"branches":{"total":59,"covered":2,"skipped":0,"pct":3.39}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/BatchSagas.tsx": {"lines":{"total":25,"covered":8,"skipped":0,"pct":32},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":31,"covered":8,"skipped":0,"pct":25.81},"branches":{"total":12,"covered":1,"skipped":0,"pct":8.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/CollectionSagas.ts": {"lines":{"total":12,"covered":7,"skipped":0,"pct":58.33},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":14,"covered":7,"skipped":0,"pct":50},"branches":{"total":3,"covered":1,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/CurlImportSagas.ts": {"lines":{"total":31,"covered":17,"skipped":0,"pct":54.84},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":35,"covered":17,"skipped":0,"pct":48.57},"branches":{"total":3,"covered":1,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/DatasourcesSagas.ts": {"lines":{"total":237,"covered":37,"skipped":0,"pct":15.61},"functions":{"total":23,"covered":2,"skipped":0,"pct":8.7},"statements":{"total":288,"covered":38,"skipped":0,"pct":13.19},"branches":{"total":102,"covered":2,"skipped":0,"pct":1.96}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/DebuggerSagas.ts": {"lines":{"total":114,"covered":27,"skipped":0,"pct":23.68},"functions":{"total":9,"covered":3,"skipped":0,"pct":33.33},"statements":{"total":126,"covered":28,"skipped":0,"pct":22.22},"branches":{"total":126,"covered":6,"skipped":0,"pct":4.76}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/ErrorSagas.tsx": {"lines":{"total":102,"covered":58,"skipped":0,"pct":56.86},"functions":{"total":18,"covered":7,"skipped":0,"pct":38.89},"statements":{"total":113,"covered":65,"skipped":0,"pct":57.52},"branches":{"total":63,"covered":24,"skipped":0,"pct":38.1}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/EvaluationsSaga.ts": {"lines":{"total":93,"covered":21,"skipped":0,"pct":22.58},"functions":{"total":15,"covered":1,"skipped":0,"pct":6.67},"statements":{"total":106,"covered":21,"skipped":0,"pct":19.81},"branches":{"total":33,"covered":1,"skipped":0,"pct":3.03}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/GlobalSearchSagas.ts": {"lines":{"total":35,"covered":19,"skipped":0,"pct":54.29},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":40,"covered":21,"skipped":0,"pct":52.5},"branches":{"total":23,"covered":3,"skipped":0,"pct":13.04}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/InitSagas.ts": {"lines":{"total":93,"covered":45,"skipped":0,"pct":48.39},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":110,"covered":49,"skipped":0,"pct":44.55},"branches":{"total":35,"covered":5,"skipped":0,"pct":14.29}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/ModalSagas.ts": {"lines":{"total":56,"covered":26,"skipped":0,"pct":46.43},"functions":{"total":10,"covered":2,"skipped":0,"pct":20},"statements":{"total":61,"covered":28,"skipped":0,"pct":45.9},"branches":{"total":24,"covered":5,"skipped":0,"pct":20.83}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/NotificationsSagas.ts": {"lines":{"total":34,"covered":8,"skipped":0,"pct":23.53},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":44,"covered":8,"skipped":0,"pct":18.18},"branches":{"total":12,"covered":1,"skipped":0,"pct":8.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/OnboardingSagas.ts": {"lines":{"total":315,"covered":53,"skipped":0,"pct":16.83},"functions":{"total":49,"covered":5,"skipped":0,"pct":10.2},"statements":{"total":371,"covered":62,"skipped":0,"pct":16.71},"branches":{"total":137,"covered":2,"skipped":0,"pct":1.46}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/OrgSagas.ts": {"lines":{"total":106,"covered":26,"skipped":0,"pct":24.53},"functions":{"total":14,"covered":2,"skipped":0,"pct":14.29},"statements":{"total":133,"covered":26,"skipped":0,"pct":19.55},"branches":{"total":33,"covered":1,"skipped":0,"pct":3.03}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/PageSagas.tsx": {"lines":{"total":243,"covered":62,"skipped":0,"pct":25.51},"functions":{"total":32,"covered":5,"skipped":0,"pct":15.63},"statements":{"total":283,"covered":67,"skipped":0,"pct":23.67},"branches":{"total":65,"covered":4,"skipped":0,"pct":6.15}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/PluginSagas.ts": {"lines":{"total":69,"covered":14,"skipped":0,"pct":20.29},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":84,"covered":14,"skipped":0,"pct":16.67},"branches":{"total":27,"covered":1,"skipped":0,"pct":3.7}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/PostEvaluationSagas.ts": {"lines":{"total":110,"covered":26,"skipped":0,"pct":23.64},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":129,"covered":26,"skipped":0,"pct":20.16},"branches":{"total":64,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/ProvidersSaga.ts": {"lines":{"total":63,"covered":19,"skipped":0,"pct":30.16},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":78,"covered":19,"skipped":0,"pct":24.36},"branches":{"total":19,"covered":1,"skipped":0,"pct":5.26}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/QueryPaneSagas.ts": {"lines":{"total":89,"covered":25,"skipped":0,"pct":28.09},"functions":{"total":8,"covered":2,"skipped":0,"pct":25},"statements":{"total":109,"covered":26,"skipped":0,"pct":23.85},"branches":{"total":39,"covered":5,"skipped":0,"pct":12.82}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/RecentEntitiesSagas.ts": {"lines":{"total":29,"covered":13,"skipped":0,"pct":44.83},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":29,"covered":13,"skipped":0,"pct":44.83},"branches":{"total":66,"covered":8,"skipped":0,"pct":12.12}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/SaaSPaneSagas.ts": {"lines":{"total":34,"covered":16,"skipped":0,"pct":47.06},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":46,"covered":17,"skipped":0,"pct":36.96},"branches":{"total":15,"covered":5,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/SelectionCanvasSagas.ts": {"lines":{"total":39,"covered":37,"skipped":0,"pct":94.87},"functions":{"total":7,"covered":5,"skipped":0,"pct":71.43},"statements":{"total":44,"covered":42,"skipped":0,"pct":95.45},"branches":{"total":16,"covered":9,"skipped":0,"pct":56.25}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/ThemeSaga.tsx": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":7,"covered":6,"skipped":0,"pct":85.71},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/TourSagas.ts": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":18,"covered":7,"skipped":0,"pct":38.89},"branches":{"total":7,"covered":1,"skipped":0,"pct":14.29}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/UtilSagas.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/WidgetBlueprintSagas.ts": {"lines":{"total":50,"covered":17,"skipped":0,"pct":34},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":56,"covered":17,"skipped":0,"pct":30.36},"branches":{"total":32,"covered":1,"skipped":0,"pct":3.13}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/WidgetBlueprintSagasEnums.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/WidgetEnhancementHelpers.ts": {"lines":{"total":65,"covered":36,"skipped":0,"pct":55.38},"functions":{"total":14,"covered":6,"skipped":0,"pct":42.86},"statements":{"total":73,"covered":38,"skipped":0,"pct":52.05},"branches":{"total":47,"covered":17,"skipped":0,"pct":36.17}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/WidgetLoadingSaga.ts": {"lines":{"total":50,"covered":15,"skipped":0,"pct":30},"functions":{"total":13,"covered":2,"skipped":0,"pct":15.38},"statements":{"total":57,"covered":15,"skipped":0,"pct":26.32},"branches":{"total":14,"covered":3,"skipped":0,"pct":21.43}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/WidgetOperationSagas.tsx": {"lines":{"total":606,"covered":270,"skipped":0,"pct":44.55},"functions":{"total":85,"covered":43,"skipped":0,"pct":50.59},"statements":{"total":694,"covered":307,"skipped":0,"pct":44.24},"branches":{"total":319,"covered":98,"skipped":0,"pct":30.72}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/WidgetOperationUtils.ts": {"lines":{"total":107,"covered":56,"skipped":0,"pct":52.34},"functions":{"total":13,"covered":9,"skipped":0,"pct":69.23},"statements":{"total":117,"covered":62,"skipped":0,"pct":52.99},"branches":{"total":89,"covered":29,"skipped":0,"pct":32.58}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/WidgetSelectionSagas.ts": {"lines":{"total":71,"covered":68,"skipped":0,"pct":95.77},"functions":{"total":11,"covered":11,"skipped":0,"pct":100},"statements":{"total":79,"covered":76,"skipped":0,"pct":96.2},"branches":{"total":46,"covered":43,"skipped":0,"pct":93.48}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/WidgetSidebarSagas.tsx": {"lines":{"total":10,"covered":7,"skipped":0,"pct":70},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":11,"covered":7,"skipped":0,"pct":63.64},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/index.tsx": {"lines":{"total":45,"covered":42,"skipped":0,"pct":93.33},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":47,"covered":43,"skipped":0,"pct":91.49},"branches":{"total":5,"covered":3,"skipped":0,"pct":60}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/selectors.tsx": {"lines":{"total":75,"covered":50,"skipped":0,"pct":66.67},"functions":{"total":28,"covered":14,"skipped":0,"pct":50},"statements":{"total":99,"covered":72,"skipped":0,"pct":72.73},"branches":{"total":24,"covered":13,"skipped":0,"pct":54.17}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/userSagas.tsx": {"lines":{"total":161,"covered":37,"skipped":0,"pct":22.98},"functions":{"total":16,"covered":2,"skipped":0,"pct":12.5},"statements":{"total":192,"covered":38,"skipped":0,"pct":19.79},"branches":{"total":52,"covered":3,"skipped":0,"pct":5.77}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/CommentSagas/index.ts": {"lines":{"total":102,"covered":43,"skipped":0,"pct":42.16},"functions":{"total":18,"covered":9,"skipped":0,"pct":50},"statements":{"total":132,"covered":56,"skipped":0,"pct":42.42},"branches":{"total":28,"covered":5,"skipped":0,"pct":17.86}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/WebsocketSagas/WebsocketSagas.ts": {"lines":{"total":54,"covered":12,"skipped":0,"pct":22.22},"functions":{"total":15,"covered":2,"skipped":0,"pct":13.33},"statements":{"total":64,"covered":12,"skipped":0,"pct":18.75},"branches":{"total":19,"covered":2,"skipped":0,"pct":10.53}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/WebsocketSagas/constants.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/sagas/WebsocketSagas/handleSocketEvent.ts": {"lines":{"total":30,"covered":7,"skipped":0,"pct":23.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":32,"covered":7,"skipped":0,"pct":21.88},"branches":{"total":24,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/appViewSelectors.tsx": {"lines":{"total":15,"covered":10,"skipped":0,"pct":66.67},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":16,"covered":11,"skipped":0,"pct":68.75},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/applicationSelectors.tsx": {"lines":{"total":61,"covered":37,"skipped":0,"pct":60.66},"functions":{"total":24,"covered":11,"skipped":0,"pct":45.83},"statements":{"total":79,"covered":54,"skipped":0,"pct":68.35},"branches":{"total":22,"covered":6,"skipped":0,"pct":27.27}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/commentsSelectors.ts": {"lines":{"total":69,"covered":24,"skipped":0,"pct":34.78},"functions":{"total":25,"covered":10,"skipped":0,"pct":40},"statements":{"total":99,"covered":42,"skipped":0,"pct":42.42},"branches":{"total":60,"covered":7,"skipped":0,"pct":11.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/dataTreeSelectors.ts": {"lines":{"total":23,"covered":14,"skipped":0,"pct":60.87},"functions":{"total":6,"covered":2,"skipped":0,"pct":33.33},"statements":{"total":27,"covered":18,"skipped":0,"pct":66.67},"branches":{"total":10,"covered":3,"skipped":0,"pct":30}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/debuggerSelectors.tsx": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/editorSelectors.tsx": {"lines":{"total":107,"covered":63,"skipped":0,"pct":58.88},"functions":{"total":42,"covered":19,"skipped":0,"pct":45.24},"statements":{"total":130,"covered":81,"skipped":0,"pct":62.31},"branches":{"total":37,"covered":17,"skipped":0,"pct":45.95}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/entitiesSelector.ts": {"lines":{"total":165,"covered":75,"skipped":0,"pct":45.45},"functions":{"total":83,"covered":16,"skipped":0,"pct":19.28},"statements":{"total":224,"covered":107,"skipped":0,"pct":47.77},"branches":{"total":72,"covered":4,"skipped":0,"pct":5.56}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/errorSelectors.tsx": {"lines":{"total":4,"covered":2,"skipped":0,"pct":50},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":4,"skipped":0,"pct":66.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/formSelectors.ts": {"lines":{"total":9,"covered":3,"skipped":0,"pct":33.33},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":5,"skipped":0,"pct":45.45},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/helpSelectors.tsx": {"lines":{"total":4,"covered":2,"skipped":0,"pct":50},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":4,"skipped":0,"pct":66.67},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/organizationSelectors.tsx": {"lines":{"total":27,"covered":17,"skipped":0,"pct":62.96},"functions":{"total":19,"covered":5,"skipped":0,"pct":26.32},"statements":{"total":43,"covered":29,"skipped":0,"pct":67.44},"branches":{"total":14,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/propertyPaneSelectors.tsx": {"lines":{"total":25,"covered":24,"skipped":0,"pct":96},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":26,"covered":25,"skipped":0,"pct":96.15},"branches":{"total":17,"covered":16,"skipped":0,"pct":94.12}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/themeSelectors.tsx": {"lines":{"total":13,"covered":12,"skipped":0,"pct":92.31},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":18,"covered":17,"skipped":0,"pct":94.44},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/tourSelectors.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":6,"covered":6,"skipped":0,"pct":100},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/ui.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":6,"covered":6,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/usersSelectors.tsx": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":12,"covered":10,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/selectors/widgetSelectors.ts": {"lines":{"total":14,"covered":13,"skipped":0,"pct":92.86},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":17,"covered":15,"skipped":0,"pct":88.24},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/templates/default.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/transformers/CurlImportTransformer.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/transformers/RestAPIDatasourceFormTransformer.ts": {"lines":{"total":66,"covered":9,"skipped":0,"pct":13.64},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":74,"covered":11,"skipped":0,"pct":14.86},"branches":{"total":85,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/transformers/RestActionTransformer.ts": {"lines":{"total":15,"covered":15,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":17,"covered":16,"skipped":0,"pct":94.12},"branches":{"total":16,"covered":13,"skipped":0,"pct":81.25}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/AnalyticsUtil.tsx": {"lines":{"total":96,"covered":28,"skipped":0,"pct":29.17},"functions":{"total":14,"covered":4,"skipped":0,"pct":28.57},"statements":{"total":100,"covered":29,"skipped":0,"pct":29},"branches":{"total":43,"covered":3,"skipped":0,"pct":6.98}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/ApiPaneUtils.tsx": {"lines":{"total":19,"covered":19,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":20,"covered":20,"skipped":0,"pct":100},"branches":{"total":19,"covered":15,"skipped":0,"pct":78.95}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/AppsmithConsole.ts": {"lines":{"total":10,"covered":8,"skipped":0,"pct":80},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":10,"covered":8,"skipped":0,"pct":80},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/AppsmithUtils.tsx": {"lines":{"total":155,"covered":77,"skipped":0,"pct":49.68},"functions":{"total":37,"covered":14,"skipped":0,"pct":37.84},"statements":{"total":179,"covered":97,"skipped":0,"pct":54.19},"branches":{"total":86,"covered":23,"skipped":0,"pct":26.74}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/DynamicBindingUtils.ts": {"lines":{"total":114,"covered":101,"skipped":0,"pct":88.6},"functions":{"total":21,"covered":16,"skipped":0,"pct":76.19},"statements":{"total":131,"covered":118,"skipped":0,"pct":90.08},"branches":{"total":71,"covered":57,"skipped":0,"pct":80.28}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/EditorUtils.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/FormControlFactory.tsx": {"lines":{"total":16,"covered":7,"skipped":0,"pct":43.75},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":16,"covered":7,"skipped":0,"pct":43.75},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/FormControlRegistry.tsx": {"lines":{"total":42,"covered":18,"skipped":0,"pct":42.86},"functions":{"total":14,"covered":1,"skipped":0,"pct":7.14},"statements":{"total":42,"covered":18,"skipped":0,"pct":42.86},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/PerformanceTracker.ts": {"lines":{"total":114,"covered":71,"skipped":0,"pct":62.28},"functions":{"total":11,"covered":8,"skipped":0,"pct":72.73},"statements":{"total":117,"covered":72,"skipped":0,"pct":61.54},"branches":{"total":79,"covered":20,"skipped":0,"pct":25.32}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/PropertyControlFactory.tsx": {"lines":{"total":19,"covered":14,"skipped":0,"pct":73.68},"functions":{"total":4,"covered":3,"skipped":0,"pct":75},"statements":{"total":20,"covered":14,"skipped":0,"pct":70},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/PropertyControlRegistry.tsx": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/TypeHelpers.ts": {"lines":{"total":21,"covered":20,"skipped":0,"pct":95.24},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":30,"covered":27,"skipped":0,"pct":90},"branches":{"total":18,"covered":15,"skipped":0,"pct":83.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/WidgetFactory.tsx": {"lines":{"total":66,"covered":43,"skipped":0,"pct":65.15},"functions":{"total":12,"covered":6,"skipped":0,"pct":50},"statements":{"total":66,"covered":43,"skipped":0,"pct":65.15},"branches":{"total":19,"covered":12,"skipped":0,"pct":63.16}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/WidgetPropsUtils.tsx": {"lines":{"total":498,"covered":319,"skipped":0,"pct":64.06},"functions":{"total":81,"covered":44,"skipped":0,"pct":54.32},"statements":{"total":522,"covered":338,"skipped":0,"pct":64.75},"branches":{"total":447,"covered":262,"skipped":0,"pct":58.61}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/WidgetRegistry.tsx": {"lines":{"total":96,"covered":72,"skipped":0,"pct":75},"functions":{"total":32,"covered":8,"skipped":0,"pct":25},"statements":{"total":96,"covered":72,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/WorkerUtil.ts": {"lines":{"total":65,"covered":60,"skipped":0,"pct":92.31},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":79,"covered":71,"skipped":0,"pct":89.87},"branches":{"total":34,"covered":24,"skipped":0,"pct":70.59}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/canvasStructureHelpers.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":18,"covered":18,"skipped":0,"pct":100},"branches":{"total":20,"covered":19,"skipped":0,"pct":95}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/featureFlags.ts": {"lines":{"total":31,"covered":11,"skipped":0,"pct":35.48},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":31,"covered":11,"skipped":0,"pct":35.48},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/formhelpers.ts": {"lines":{"total":12,"covered":8,"skipped":0,"pct":66.67},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":17,"covered":13,"skipped":0,"pct":76.47},"branches":{"total":5,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/generators.tsx": {"lines":{"total":13,"covered":13,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":21,"covered":20,"skipped":0,"pct":95.24},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/helpers.tsx": {"lines":{"total":120,"covered":57,"skipped":0,"pct":47.5},"functions":{"total":26,"covered":6,"skipped":0,"pct":23.08},"statements":{"total":153,"covered":82,"skipped":0,"pct":53.59},"branches":{"total":71,"covered":19,"skipped":0,"pct":26.76}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/history.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/localStorage.tsx": {"lines":{"total":55,"covered":44,"skipped":0,"pct":80},"functions":{"total":9,"covered":9,"skipped":0,"pct":100},"statements":{"total":57,"covered":46,"skipped":0,"pct":80.7},"branches":{"total":18,"covered":9,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/storage.ts": {"lines":{"total":100,"covered":32,"skipped":0,"pct":32},"functions":{"total":30,"covered":6,"skipped":0,"pct":20},"statements":{"total":137,"covered":54,"skipped":0,"pct":39.42},"branches":{"total":22,"covered":3,"skipped":0,"pct":13.64}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/autocomplete/EntityDefinitions.ts": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":15,"covered":7,"skipped":0,"pct":46.67},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/autocomplete/TernServer.ts": {"lines":{"total":366,"covered":167,"skipped":0,"pct":45.63},"functions":{"total":58,"covered":17,"skipped":0,"pct":29.31},"statements":{"total":418,"covered":174,"skipped":0,"pct":41.63},"branches":{"total":234,"covered":60,"skipped":0,"pct":25.64}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/autocomplete/customTreeTypeDefCreator.ts": {"lines":{"total":10,"covered":3,"skipped":0,"pct":30},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":4,"skipped":0,"pct":36.36},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/autocomplete/dataTreeTypeDefCreator.ts": {"lines":{"total":52,"covered":41,"skipped":0,"pct":78.85},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":60,"covered":49,"skipped":0,"pct":81.67},"branches":{"total":28,"covered":16,"skipped":0,"pct":57.14}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/autocomplete/dataTypeSortRules.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/hooks/dragResizeHooks.tsx": {"lines":{"total":37,"covered":29,"skipped":0,"pct":78.38},"functions":{"total":13,"covered":8,"skipped":0,"pct":61.54},"statements":{"total":45,"covered":36,"skipped":0,"pct":80},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/hooks/localstorage.tsx": {"lines":{"total":17,"covered":4,"skipped":0,"pct":23.53},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":19,"covered":4,"skipped":0,"pct":21.05},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/hooks/useCanvasMinHeightUpdateHook.ts": {"lines":{"total":14,"covered":14,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":7,"covered":6,"skipped":0,"pct":85.71}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/hooks/useClick.tsx": {"lines":{"total":20,"covered":16,"skipped":0,"pct":80},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":20,"covered":16,"skipped":0,"pct":80},"branches":{"total":14,"covered":9,"skipped":0,"pct":64.29}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/hooks/useClickOpenPropPane.tsx": {"lines":{"total":50,"covered":40,"skipped":0,"pct":80},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":53,"covered":43,"skipped":0,"pct":81.13},"branches":{"total":42,"covered":22,"skipped":0,"pct":52.38}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/hooks/useClipboard.tsx": {"lines":{"total":21,"covered":5,"skipped":0,"pct":23.81},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":21,"covered":5,"skipped":0,"pct":23.81},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/hooks/useDynamicAppLayout.tsx": {"lines":{"total":46,"covered":43,"skipped":0,"pct":93.48},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":52,"covered":49,"skipped":0,"pct":94.23},"branches":{"total":23,"covered":12,"skipped":0,"pct":52.17}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/hooks/useIsScrolledToBottom.tsx": {"lines":{"total":15,"covered":15,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":21,"covered":20,"skipped":0,"pct":95.24},"branches":{"total":24,"covered":17,"skipped":0,"pct":70.83}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/hooks/useProceedToNextTourStep.tsx": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":13,"covered":13,"skipped":0,"pct":100},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/hooks/useScript.tsx": {"lines":{"total":38,"covered":10,"skipped":0,"pct":26.32},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":41,"covered":10,"skipped":0,"pct":24.39},"branches":{"total":20,"covered":4,"skipped":0,"pct":20}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/hooks/useWidgetSelection.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":12,"covered":12,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/migrations/IncorrectDynamicBindingPathLists.ts": {"lines":{"total":18,"covered":17,"skipped":0,"pct":94.44},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":19,"covered":18,"skipped":0,"pct":94.74},"branches":{"total":8,"covered":7,"skipped":0,"pct":87.5}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/migrations/TableWidget.ts": {"lines":{"total":100,"covered":81,"skipped":0,"pct":81},"functions":{"total":14,"covered":11,"skipped":0,"pct":78.57},"statements":{"total":108,"covered":85,"skipped":0,"pct":78.7},"branches":{"total":104,"covered":66,"skipped":0,"pct":63.46}} -,"/Users/hetunandu/code/appsmith/app/client/src/utils/migrations/TextWidgetReplaceTextStyle.ts": {"lines":{"total":23,"covered":22,"skipped":0,"pct":95.65},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":24,"covered":23,"skipped":0,"pct":95.83},"branches":{"total":14,"covered":12,"skipped":0,"pct":85.71}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/BaseWidget.tsx": {"lines":{"total":113,"covered":88,"skipped":0,"pct":77.88},"functions":{"total":31,"covered":24,"skipped":0,"pct":77.42},"statements":{"total":118,"covered":93,"skipped":0,"pct":78.81},"branches":{"total":43,"covered":19,"skipped":0,"pct":44.19}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/ButtonWidget.tsx": {"lines":{"total":34,"covered":25,"skipped":0,"pct":73.53},"functions":{"total":9,"covered":5,"skipped":0,"pct":55.56},"statements":{"total":35,"covered":26,"skipped":0,"pct":74.29},"branches":{"total":12,"covered":6,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/CanvasWidget.tsx": {"lines":{"total":40,"covered":33,"skipped":0,"pct":82.5},"functions":{"total":8,"covered":6,"skipped":0,"pct":75},"statements":{"total":45,"covered":35,"skipped":0,"pct":77.78},"branches":{"total":15,"covered":8,"skipped":0,"pct":53.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/CheckboxWidget.tsx": {"lines":{"total":25,"covered":23,"skipped":0,"pct":92},"functions":{"total":8,"covered":6,"skipped":0,"pct":75},"statements":{"total":27,"covered":25,"skipped":0,"pct":92.59},"branches":{"total":3,"covered":2,"skipped":0,"pct":66.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/ContainerWidget.tsx": {"lines":{"total":50,"covered":36,"skipped":0,"pct":72},"functions":{"total":10,"covered":7,"skipped":0,"pct":70},"statements":{"total":53,"covered":37,"skipped":0,"pct":69.81},"branches":{"total":18,"covered":9,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/DatePickerWidget.tsx": {"lines":{"total":40,"covered":23,"skipped":0,"pct":57.5},"functions":{"total":9,"covered":5,"skipped":0,"pct":55.56},"statements":{"total":42,"covered":24,"skipped":0,"pct":57.14},"branches":{"total":21,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/DatePickerWidget2.tsx": {"lines":{"total":26,"covered":22,"skipped":0,"pct":84.62},"functions":{"total":8,"covered":5,"skipped":0,"pct":62.5},"statements":{"total":28,"covered":23,"skipped":0,"pct":82.14},"branches":{"total":3,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/DividerWidget.tsx": {"lines":{"total":16,"covered":14,"skipped":0,"pct":87.5},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":17,"covered":15,"skipped":0,"pct":88.24},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/DropdownWidget.tsx": {"lines":{"total":55,"covered":24,"skipped":0,"pct":43.64},"functions":{"total":13,"covered":5,"skipped":0,"pct":38.46},"statements":{"total":59,"covered":25,"skipped":0,"pct":42.37},"branches":{"total":27,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/FileDataTypes.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/FilepickerWidget.tsx": {"lines":{"total":90,"covered":34,"skipped":0,"pct":37.78},"functions":{"total":28,"covered":5,"skipped":0,"pct":17.86},"statements":{"total":91,"covered":35,"skipped":0,"pct":38.46},"branches":{"total":44,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/FormButtonWidget.tsx": {"lines":{"total":39,"covered":19,"skipped":0,"pct":48.72},"functions":{"total":9,"covered":3,"skipped":0,"pct":33.33},"statements":{"total":40,"covered":20,"skipped":0,"pct":50},"branches":{"total":25,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/FormWidget.tsx": {"lines":{"total":47,"covered":17,"skipped":0,"pct":36.17},"functions":{"total":13,"covered":2,"skipped":0,"pct":15.38},"statements":{"total":51,"covered":18,"skipped":0,"pct":35.29},"branches":{"total":19,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/IconWidget.tsx": {"lines":{"total":23,"covered":17,"skipped":0,"pct":73.91},"functions":{"total":6,"covered":2,"skipped":0,"pct":33.33},"statements":{"total":25,"covered":18,"skipped":0,"pct":72},"branches":{"total":7,"covered":2,"skipped":0,"pct":28.57}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/IframeWidget.tsx": {"lines":{"total":32,"covered":15,"skipped":0,"pct":46.88},"functions":{"total":6,"covered":2,"skipped":0,"pct":33.33},"statements":{"total":34,"covered":16,"skipped":0,"pct":47.06},"branches":{"total":15,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/ImageWidget.tsx": {"lines":{"total":24,"covered":16,"skipped":0,"pct":66.67},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":28,"covered":17,"skipped":0,"pct":60.71},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/InputWidget.tsx": {"lines":{"total":51,"covered":39,"skipped":0,"pct":76.47},"functions":{"total":12,"covered":7,"skipped":0,"pct":58.33},"statements":{"total":57,"covered":40,"skipped":0,"pct":70.18},"branches":{"total":32,"covered":11,"skipped":0,"pct":34.38}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/MapWidget.tsx": {"lines":{"total":60,"covered":29,"skipped":0,"pct":48.33},"functions":{"total":17,"covered":4,"skipped":0,"pct":23.53},"statements":{"total":63,"covered":30,"skipped":0,"pct":47.62},"branches":{"total":22,"covered":2,"skipped":0,"pct":9.09}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/MetaHOC.tsx": {"lines":{"total":59,"covered":44,"skipped":0,"pct":74.58},"functions":{"total":13,"covered":12,"skipped":0,"pct":92.31},"statements":{"total":68,"covered":51,"skipped":0,"pct":75},"branches":{"total":19,"covered":9,"skipped":0,"pct":47.37}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/ModalWidget.tsx": {"lines":{"total":63,"covered":28,"skipped":0,"pct":44.44},"functions":{"total":14,"covered":2,"skipped":0,"pct":14.29},"statements":{"total":67,"covered":30,"skipped":0,"pct":44.78},"branches":{"total":21,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/RadioGroupWidget.tsx": {"lines":{"total":26,"covered":22,"skipped":0,"pct":84.62},"functions":{"total":8,"covered":5,"skipped":0,"pct":62.5},"statements":{"total":28,"covered":23,"skipped":0,"pct":82.14},"branches":{"total":3,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/RichTextEditorWidget.tsx": {"lines":{"total":37,"covered":27,"skipped":0,"pct":72.97},"functions":{"total":12,"covered":6,"skipped":0,"pct":50},"statements":{"total":39,"covered":28,"skipped":0,"pct":71.79},"branches":{"total":9,"covered":2,"skipped":0,"pct":22.22}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/SkeletonWidget.tsx": {"lines":{"total":15,"covered":13,"skipped":0,"pct":86.67},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":16,"covered":14,"skipped":0,"pct":87.5},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/SwitchWidget.tsx": {"lines":{"total":25,"covered":23,"skipped":0,"pct":92},"functions":{"total":8,"covered":6,"skipped":0,"pct":75},"statements":{"total":27,"covered":25,"skipped":0,"pct":92.59},"branches":{"total":5,"covered":3,"skipped":0,"pct":60}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/TextWidget.tsx": {"lines":{"total":17,"covered":15,"skipped":0,"pct":88.24},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":18,"covered":16,"skipped":0,"pct":88.89},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/VideoWidget.tsx": {"lines":{"total":37,"covered":27,"skipped":0,"pct":72.97},"functions":{"total":14,"covered":5,"skipped":0,"pct":35.71},"statements":{"total":45,"covered":28,"skipped":0,"pct":62.22},"branches":{"total":5,"covered":2,"skipped":0,"pct":40}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/ChartWidget/index.tsx": {"lines":{"total":25,"covered":19,"skipped":0,"pct":76},"functions":{"total":9,"covered":3,"skipped":0,"pct":33.33},"statements":{"total":27,"covered":20,"skipped":0,"pct":74.07},"branches":{"total":3,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/ChartWidget/propertyConfig.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/ListWidget/ListComponent.tsx": {"lines":{"total":15,"covered":10,"skipped":0,"pct":66.67},"functions":{"total":6,"covered":2,"skipped":0,"pct":33.33},"statements":{"total":15,"covered":10,"skipped":0,"pct":66.67},"branches":{"total":18,"covered":11,"skipped":0,"pct":61.11}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/ListWidget/ListPagination.tsx": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":6,"skipped":0,"pct":66.67},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/ListWidget/ListPropertyPaneConfig.ts": {"lines":{"total":12,"covered":6,"skipped":0,"pct":50},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":12,"covered":6,"skipped":0,"pct":50},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/ListWidget/ListWidget.tsx": {"lines":{"total":228,"covered":87,"skipped":0,"pct":38.16},"functions":{"total":43,"covered":12,"skipped":0,"pct":27.91},"statements":{"total":242,"covered":94,"skipped":0,"pct":38.84},"branches":{"total":105,"covered":24,"skipped":0,"pct":22.86}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/ListWidget/derived.js": {"lines":{"total":44,"covered":27,"skipped":0,"pct":61.36},"functions":{"total":10,"covered":7,"skipped":0,"pct":70},"statements":{"total":45,"covered":28,"skipped":0,"pct":62.22},"branches":{"total":24,"covered":10,"skipped":0,"pct":41.67}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/ListWidget/parseDerivedProperties.ts": {"lines":{"total":13,"covered":5,"skipped":0,"pct":38.46},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":5,"skipped":0,"pct":38.46},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/RateWidget/index.tsx": {"lines":{"total":25,"covered":21,"skipped":0,"pct":84},"functions":{"total":8,"covered":5,"skipped":0,"pct":62.5},"statements":{"total":27,"covered":22,"skipped":0,"pct":81.48},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/TableWidget/TablePropertyPaneConfig.ts": {"lines":{"total":71,"covered":29,"skipped":0,"pct":40.85},"functions":{"total":13,"covered":7,"skipped":0,"pct":53.85},"statements":{"total":75,"covered":29,"skipped":0,"pct":38.67},"branches":{"total":51,"covered":7,"skipped":0,"pct":13.73}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/TableWidget/derived.js": {"lines":{"total":171,"covered":92,"skipped":0,"pct":53.8},"functions":{"total":37,"covered":14,"skipped":0,"pct":37.84},"statements":{"total":188,"covered":102,"skipped":0,"pct":54.26},"branches":{"total":144,"covered":81,"skipped":0,"pct":56.25}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/TableWidget/index.tsx": {"lines":{"total":345,"covered":34,"skipped":0,"pct":9.86},"functions":{"total":49,"covered":5,"skipped":0,"pct":10.2},"statements":{"total":380,"covered":35,"skipped":0,"pct":9.21},"branches":{"total":253,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/TableWidget/parseDerivedProperties.ts": {"lines":{"total":13,"covered":5,"skipped":0,"pct":38.46},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":5,"skipped":0,"pct":38.46},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/Tabs/TabsMigrator.tsx": {"lines":{"total":23,"covered":17,"skipped":0,"pct":73.91},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":24,"covered":18,"skipped":0,"pct":75},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/hetunandu/code/appsmith/app/client/src/widgets/Tabs/TabsWidget.tsx": {"lines":{"total":127,"covered":87,"skipped":0,"pct":68.5},"functions":{"total":28,"covered":17,"skipped":0,"pct":60.71},"statements":{"total":134,"covered":93,"skipped":0,"pct":69.4},"branches":{"total":93,"covered":43,"skipped":0,"pct":46.24}} -,"/Users/hetunandu/code/appsmith/app/client/src/workers/DataTreeEvaluator.ts": {"lines":{"total":450,"covered":399,"skipped":0,"pct":88.67},"functions":{"total":71,"covered":62,"skipped":0,"pct":87.32},"statements":{"total":487,"covered":431,"skipped":0,"pct":88.5},"branches":{"total":197,"covered":154,"skipped":0,"pct":78.17}} -,"/Users/hetunandu/code/appsmith/app/client/src/workers/evaluate.ts": {"lines":{"total":66,"covered":64,"skipped":0,"pct":96.97},"functions":{"total":17,"covered":16,"skipped":0,"pct":94.12},"statements":{"total":68,"covered":66,"skipped":0,"pct":97.06},"branches":{"total":16,"covered":11,"skipped":0,"pct":68.75}} -,"/Users/hetunandu/code/appsmith/app/client/src/workers/evaluationSubstitution.ts": {"lines":{"total":59,"covered":59,"skipped":0,"pct":100},"functions":{"total":10,"covered":10,"skipped":0,"pct":100},"statements":{"total":63,"covered":63,"skipped":0,"pct":100},"branches":{"total":22,"covered":21,"skipped":0,"pct":95.45}} -,"/Users/hetunandu/code/appsmith/app/client/src/workers/evaluationUtils.ts": {"lines":{"total":220,"covered":189,"skipped":0,"pct":85.91},"functions":{"total":48,"covered":41,"skipped":0,"pct":85.42},"statements":{"total":255,"covered":221,"skipped":0,"pct":86.67},"branches":{"total":127,"covered":89,"skipped":0,"pct":70.08}} -,"/Users/hetunandu/code/appsmith/app/client/src/workers/validations.ts": {"lines":{"total":367,"covered":159,"skipped":0,"pct":43.32},"functions":{"total":49,"covered":23,"skipped":0,"pct":46.94},"statements":{"total":405,"covered":176,"skipped":0,"pct":43.46},"branches":{"total":313,"covered":117,"skipped":0,"pct":37.38}} -,"/Users/hetunandu/code/appsmith/app/client/test/customQueries.js": {"lines":{"total":19,"covered":18,"skipped":0,"pct":94.74},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":20,"covered":19,"skipped":0,"pct":95},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/sagas.ts": {"lines":{"total":30,"covered":30,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":30,"covered":30,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/testCommon.ts": {"lines":{"total":49,"covered":49,"skipped":0,"pct":100},"functions":{"total":10,"covered":10,"skipped":0,"pct":100},"statements":{"total":60,"covered":60,"skipped":0,"pct":100},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/test/testMockedWidgets.tsx": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":8,"covered":8,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/testUtils.tsx": {"lines":{"total":37,"covered":36,"skipped":0,"pct":97.3},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":40,"covered":38,"skipped":0,"pct":95},"branches":{"total":21,"covered":18,"skipped":0,"pct":85.71}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/WidgetFactoryUtils.ts": {"lines":{"total":16,"covered":15,"skipped":0,"pct":93.75},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":18,"covered":17,"skipped":0,"pct":94.44},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/ButtonFactory.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/CanvasFactory.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/ChartFactory.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/CheckboxFactory.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/ContainerFactory.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/DatepickerFactory.ts": {"lines":{"total":6,"covered":4,"skipped":0,"pct":66.67},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":4,"skipped":0,"pct":66.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/DividerFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/DropdownFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/FilepickerFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/FormButtonFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/FormFactory.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/IconFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/ImageFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/InputFactory.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/ListFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/MapFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/ModalFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/RadiogroupFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/RichTextFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/SkeletonFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/SwitchFactory.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/TableFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/TabsFactory.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/TextFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/VideoFactory.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/hetunandu/code/appsmith/app/client/test/factories/Widgets/WidgetTypeFactories.ts": {"lines":{"total":26,"covered":26,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":26,"covered":26,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +{"total": {"lines":{"total":18841,"covered":6184,"skipped":0,"pct":32.82},"statements":{"total":21646,"covered":7211,"skipped":0,"pct":33.31},"functions":{"total":4485,"covered":228,"skipped":0,"pct":5.08},"branches":{"total":10588,"covered":997,"skipped":0,"pct":9.42}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/store.ts": {"lines":{"total":19,"covered":15,"skipped":0,"pct":78.95},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":20,"covered":16,"skipped":0,"pct":80},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/actionActions.ts": {"lines":{"total":63,"covered":34,"skipped":0,"pct":53.97},"functions":{"total":31,"covered":0,"skipped":0,"pct":0},"statements":{"total":97,"covered":65,"skipped":0,"pct":67.01},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/apiPaneActions.ts": {"lines":{"total":19,"covered":10,"skipped":0,"pct":52.63},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":28,"covered":19,"skipped":0,"pct":67.86},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/appCollabActions.ts": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":11,"skipped":0,"pct":73.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/applicationActions.ts": {"lines":{"total":20,"covered":11,"skipped":0,"pct":55},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":31,"covered":21,"skipped":0,"pct":67.74},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/batchActions.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/commentActions.ts": {"lines":{"total":65,"covered":44,"skipped":0,"pct":67.69},"functions":{"total":42,"covered":0,"skipped":0,"pct":0},"statements":{"total":131,"covered":86,"skipped":0,"pct":65.65},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/controlActions.tsx": {"lines":{"total":9,"covered":5,"skipped":0,"pct":55.56},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":9,"skipped":0,"pct":69.23},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/crudInfoModalActions.ts": {"lines":{"total":3,"covered":2,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/datasourceActions.ts": {"lines":{"total":46,"covered":22,"skipped":0,"pct":47.83},"functions":{"total":20,"covered":0,"skipped":0,"pct":0},"statements":{"total":67,"covered":42,"skipped":0,"pct":62.69},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/debuggerActions.ts": {"lines":{"total":12,"covered":10,"skipped":0,"pct":83.33},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":28,"covered":19,"skipped":0,"pct":67.86},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/errorActions.ts": {"lines":{"total":5,"covered":3,"skipped":0,"pct":60},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/evaluationActions.ts": {"lines":{"total":14,"covered":7,"skipped":0,"pct":50},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":10,"skipped":0,"pct":58.82},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/explorerActions.ts": {"lines":{"total":3,"covered":2,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/globalSearchActions.ts": {"lines":{"total":14,"covered":12,"skipped":0,"pct":85.71},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":22,"skipped":0,"pct":66.67},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/initActions.ts": {"lines":{"total":5,"covered":4,"skipped":0,"pct":80},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":7,"skipped":0,"pct":70},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/metaActions.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":8,"skipped":0,"pct":72.73},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/notificationActions.ts": {"lines":{"total":14,"covered":12,"skipped":0,"pct":85.71},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":34,"covered":23,"skipped":0,"pct":67.65},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/onboardingActions.ts": {"lines":{"total":23,"covered":12,"skipped":0,"pct":52.17},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":34,"covered":23,"skipped":0,"pct":67.65},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/orgActions.ts": {"lines":{"total":17,"covered":9,"skipped":0,"pct":52.94},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":17,"skipped":0,"pct":68},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/pageActions.tsx": {"lines":{"total":69,"covered":31,"skipped":0,"pct":44.93},"functions":{"total":28,"covered":0,"skipped":0,"pct":0},"statements":{"total":101,"covered":59,"skipped":0,"pct":58.42},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/pluginActions.ts": {"lines":{"total":12,"covered":7,"skipped":0,"pct":58.33},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":20,"covered":13,"skipped":0,"pct":65},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/propertyPaneActions.ts": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":11,"skipped":0,"pct":68.75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/tourActions.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":9,"skipped":0,"pct":69.23},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/userActions.ts": {"lines":{"total":22,"covered":19,"skipped":0,"pct":86.36},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":53,"covered":36,"skipped":0,"pct":67.92},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/websocketActions.ts": {"lines":{"total":8,"covered":6,"skipped":0,"pct":75},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":10,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/widgetActions.tsx": {"lines":{"total":36,"covered":19,"skipped":0,"pct":52.78},"functions":{"total":16,"covered":0,"skipped":0,"pct":0},"statements":{"total":53,"covered":35,"skipped":0,"pct":66.04},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/widgetSelectionActions.ts": {"lines":{"total":21,"covered":11,"skipped":0,"pct":52.38},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":30,"covered":20,"skipped":0,"pct":66.67},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/widgetSidebarActions.tsx": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":10,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/ActionAPI.tsx": {"lines":{"total":32,"covered":17,"skipped":0,"pct":53.13},"functions":{"total":11,"covered":1,"skipped":0,"pct":9.09},"statements":{"total":33,"covered":18,"skipped":0,"pct":54.55},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/Api.ts": {"lines":{"total":27,"covered":17,"skipped":0,"pct":62.96},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":27,"covered":17,"skipped":0,"pct":62.96},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/ApiUtils.ts": {"lines":{"total":49,"covered":15,"skipped":0,"pct":30.61},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":53,"covered":18,"skipped":0,"pct":33.96},"branches":{"total":35,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/ApplicationApi.tsx": {"lines":{"total":41,"covered":22,"skipped":0,"pct":53.66},"functions":{"total":18,"covered":1,"skipped":0,"pct":5.56},"statements":{"total":45,"covered":23,"skipped":0,"pct":51.11},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/CloudServicesApi.ts": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":5,"covered":4,"skipped":0,"pct":80},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/CollectionApi.ts": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":8,"covered":7,"skipped":0,"pct":87.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/CommentsAPI.tsx": {"lines":{"total":29,"covered":18,"skipped":0,"pct":62.07},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":30,"covered":19,"skipped":0,"pct":63.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/DatasourcesApi.ts": {"lines":{"total":27,"covered":15,"skipped":0,"pct":55.56},"functions":{"total":10,"covered":1,"skipped":0,"pct":10},"statements":{"total":28,"covered":16,"skipped":0,"pct":57.14},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/ImportApi.ts": {"lines":{"total":8,"covered":6,"skipped":0,"pct":75},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":9,"covered":7,"skipped":0,"pct":77.78},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/NotificationsAPI.tsx": {"lines":{"total":16,"covered":12,"skipped":0,"pct":75},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":17,"covered":13,"skipped":0,"pct":76.47},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/OrgApi.ts": {"lines":{"total":31,"covered":17,"skipped":0,"pct":54.84},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":32,"covered":18,"skipped":0,"pct":56.25},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/PageApi.tsx": {"lines":{"total":48,"covered":25,"skipped":0,"pct":52.08},"functions":{"total":18,"covered":1,"skipped":0,"pct":5.56},"statements":{"total":50,"covered":26,"skipped":0,"pct":52},"branches":{"total":8,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/PluginApi.ts": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":10,"covered":8,"skipped":0,"pct":80},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/ProvidersApi.ts": {"lines":{"total":33,"covered":18,"skipped":0,"pct":54.55},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":35,"covered":20,"skipped":0,"pct":57.14},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/SaasApi.ts": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":10,"covered":8,"skipped":0,"pct":80},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/UserApi.tsx": {"lines":{"total":50,"covered":32,"skipped":0,"pct":64},"functions":{"total":16,"covered":1,"skipped":0,"pct":6.25},"statements":{"total":51,"covered":33,"skipped":0,"pct":64.71},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/WidgetSidebarApi.tsx": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":8,"covered":7,"skipped":0,"pct":87.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/utils.ts": {"lines":{"total":41,"covered":10,"skipped":0,"pct":24.39},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":50,"covered":17,"skipped":0,"pct":34},"branches":{"total":30,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/AppComments/AppCommentsFilterPopover.tsx": {"lines":{"total":36,"covered":17,"skipped":0,"pct":47.22},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":38,"covered":17,"skipped":0,"pct":44.74},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/CommentCard/CommentCard.tsx": {"lines":{"total":168,"covered":58,"skipped":0,"pct":34.52},"functions":{"total":42,"covered":3,"skipped":0,"pct":7.14},"statements":{"total":180,"covered":59,"skipped":0,"pct":32.78},"branches":{"total":125,"covered":28,"skipped":0,"pct":22.4}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/CommentCard/CommentContextMenu.tsx": {"lines":{"total":46,"covered":12,"skipped":0,"pct":26.09},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":49,"covered":12,"skipped":0,"pct":24.49},"branches":{"total":22,"covered":10,"skipped":0,"pct":45.45}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/CommentCard/ResolveCommentButton.tsx": {"lines":{"total":24,"covered":7,"skipped":0,"pct":29.17},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":26,"covered":7,"skipped":0,"pct":26.92},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/CommentThread/CommentThread.tsx": {"lines":{"total":50,"covered":15,"skipped":0,"pct":30},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":54,"covered":15,"skipped":0,"pct":27.78},"branches":{"total":93,"covered":6,"skipped":0,"pct":6.45}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/CommentThread/ScrollToLatest.tsx": {"lines":{"total":13,"covered":8,"skipped":0,"pct":61.54},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":8,"skipped":0,"pct":57.14},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/AddCommentInput.tsx": {"lines":{"total":139,"covered":36,"skipped":0,"pct":25.9},"functions":{"total":23,"covered":0,"skipped":0,"pct":0},"statements":{"total":161,"covered":36,"skipped":0,"pct":22.36},"branches":{"total":113,"covered":8,"skipped":0,"pct":7.08}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/Comments.tsx": {"lines":{"total":32,"covered":10,"skipped":0,"pct":31.25},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":35,"covered":10,"skipped":0,"pct":28.57},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/InlineCommentPin.tsx": {"lines":{"total":66,"covered":21,"skipped":0,"pct":31.82},"functions":{"total":14,"covered":0,"skipped":0,"pct":0},"statements":{"total":73,"covered":21,"skipped":0,"pct":28.77},"branches":{"total":46,"covered":4,"skipped":0,"pct":8.7}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/OverlayCommentsWrapper.tsx": {"lines":{"total":28,"covered":13,"skipped":0,"pct":46.43},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":31,"covered":13,"skipped":0,"pct":41.94},"branches":{"total":12,"covered":2,"skipped":0,"pct":16.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/StyledComponents.tsx": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":6,"skipped":0,"pct":66.67},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/UnpublishedCommentThread.tsx": {"lines":{"total":27,"covered":13,"skipped":0,"pct":48.15},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":31,"covered":13,"skipped":0,"pct":41.94},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/useOrgUsers.tsx": {"lines":{"total":18,"covered":8,"skipped":0,"pct":44.44},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":18,"covered":8,"skipped":0,"pct":44.44},"branches":{"total":13,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/tour/commentsTourSteps.ts": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":12,"covered":12,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/AppIcon.tsx": {"lines":{"total":276,"covered":88,"skipped":0,"pct":31.88},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":277,"covered":88,"skipped":0,"pct":31.77},"branches":{"total":91,"covered":2,"skipped":0,"pct":2.2}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Button.tsx": {"lines":{"total":126,"covered":37,"skipped":0,"pct":29.37},"functions":{"total":43,"covered":2,"skipped":0,"pct":4.65},"statements":{"total":128,"covered":37,"skipped":0,"pct":28.91},"branches":{"total":93,"covered":12,"skipped":0,"pct":12.9}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Callout.tsx": {"lines":{"total":23,"covered":10,"skipped":0,"pct":43.48},"functions":{"total":13,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":10,"skipped":0,"pct":43.48},"branches":{"total":20,"covered":4,"skipped":0,"pct":20}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Checkbox.tsx": {"lines":{"total":33,"covered":10,"skipped":0,"pct":30.3},"functions":{"total":16,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":10,"skipped":0,"pct":27.03},"branches":{"total":32,"covered":6,"skipped":0,"pct":18.75}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Dropdown.tsx": {"lines":{"total":112,"covered":27,"skipped":0,"pct":24.11},"functions":{"total":49,"covered":0,"skipped":0,"pct":0},"statements":{"total":124,"covered":27,"skipped":0,"pct":21.77},"branches":{"total":168,"covered":30,"skipped":0,"pct":17.86}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/EmojiPicker.tsx": {"lines":{"total":19,"covered":9,"skipped":0,"pct":47.37},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":9,"skipped":0,"pct":42.86},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/EmojiReactions.tsx": {"lines":{"total":50,"covered":14,"skipped":0,"pct":28},"functions":{"total":17,"covered":1,"skipped":0,"pct":5.88},"statements":{"total":58,"covered":14,"skipped":0,"pct":24.14},"branches":{"total":54,"covered":10,"skipped":0,"pct":18.52}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Icon.tsx": {"lines":{"total":293,"covered":99,"skipped":0,"pct":33.79},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":294,"covered":100,"skipped":0,"pct":34.01},"branches":{"total":124,"covered":4,"skipped":0,"pct":3.23}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/MentionsInput.tsx": {"lines":{"total":76,"covered":25,"skipped":0,"pct":32.89},"functions":{"total":23,"covered":1,"skipped":0,"pct":4.35},"statements":{"total":83,"covered":25,"skipped":0,"pct":30.12},"branches":{"total":54,"covered":16,"skipped":0,"pct":29.63}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/MultiselectDropdown.tsx": {"lines":{"total":78,"covered":15,"skipped":0,"pct":19.23},"functions":{"total":40,"covered":0,"skipped":0,"pct":0},"statements":{"total":83,"covered":15,"skipped":0,"pct":18.07},"branches":{"total":84,"covered":14,"skipped":0,"pct":16.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Radio.tsx": {"lines":{"total":38,"covered":5,"skipped":0,"pct":13.16},"functions":{"total":27,"covered":0,"skipped":0,"pct":0},"statements":{"total":40,"covered":5,"skipped":0,"pct":12.5},"branches":{"total":40,"covered":4,"skipped":0,"pct":10}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/ScrollIndicator.tsx": {"lines":{"total":42,"covered":8,"skipped":0,"pct":19.05},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":46,"covered":8,"skipped":0,"pct":17.39},"branches":{"total":36,"covered":4,"skipped":0,"pct":11.11}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Spinner.tsx": {"lines":{"total":15,"covered":10,"skipped":0,"pct":66.67},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":10,"skipped":0,"pct":66.67},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Tabs.tsx": {"lines":{"total":43,"covered":12,"skipped":0,"pct":27.91},"functions":{"total":25,"covered":0,"skipped":0,"pct":0},"statements":{"total":45,"covered":12,"skipped":0,"pct":26.67},"branches":{"total":48,"covered":8,"skipped":0,"pct":16.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Text.tsx": {"lines":{"total":42,"covered":22,"skipped":0,"pct":52.38},"functions":{"total":14,"covered":3,"skipped":0,"pct":21.43},"statements":{"total":43,"covered":22,"skipped":0,"pct":51.16},"branches":{"total":28,"covered":8,"skipped":0,"pct":28.57}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/TextInput.tsx": {"lines":{"total":75,"covered":17,"skipped":0,"pct":22.67},"functions":{"total":21,"covered":0,"skipped":0,"pct":0},"statements":{"total":81,"covered":17,"skipped":0,"pct":20.99},"branches":{"total":51,"covered":8,"skipped":0,"pct":15.69}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Toast.tsx": {"lines":{"total":46,"covered":16,"skipped":0,"pct":34.78},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":46,"covered":16,"skipped":0,"pct":34.78},"branches":{"total":54,"covered":8,"skipped":0,"pct":14.81}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Tooltip.tsx": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":6,"skipped":0,"pct":85.71},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/common.tsx": {"lines":{"total":41,"covered":23,"skipped":0,"pct":56.1},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":46,"covered":28,"skipped":0,"pct":60.87},"branches":{"total":13,"covered":6,"skipped":0,"pct":46.15}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/tour/TourTooltipWrapper.tsx": {"lines":{"total":32,"covered":16,"skipped":0,"pct":50},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":16,"skipped":0,"pct":48.48},"branches":{"total":38,"covered":6,"skipped":0,"pct":15.79}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/Dropdown.tsx": {"lines":{"total":22,"covered":7,"skipped":0,"pct":31.82},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":7,"skipped":0,"pct":31.82},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/IconButtonComponent.tsx": {"lines":{"total":43,"covered":29,"skipped":0,"pct":67.44},"functions":{"total":11,"covered":4,"skipped":0,"pct":36.36},"statements":{"total":50,"covered":29,"skipped":0,"pct":58},"branches":{"total":100,"covered":12,"skipped":0,"pct":12}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/PositionedContainer.tsx": {"lines":{"total":28,"covered":12,"skipped":0,"pct":42.86},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":30,"covered":12,"skipped":0,"pct":40},"branches":{"total":12,"covered":2,"skipped":0,"pct":16.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/SearchComponent.tsx": {"lines":{"total":21,"covered":11,"skipped":0,"pct":52.38},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":22,"covered":12,"skipped":0,"pct":54.55},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TextInputComponent.tsx": {"lines":{"total":35,"covered":10,"skipped":0,"pct":28.57},"functions":{"total":11,"covered":1,"skipped":0,"pct":9.09},"statements":{"total":40,"covered":12,"skipped":0,"pct":30},"branches":{"total":27,"covered":4,"skipped":0,"pct":14.81}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/Constants.ts": {"lines":{"total":59,"covered":26,"skipped":0,"pct":44.07},"functions":{"total":22,"covered":5,"skipped":0,"pct":22.73},"statements":{"total":59,"covered":26,"skipped":0,"pct":44.07},"branches":{"total":32,"covered":10,"skipped":0,"pct":31.25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableHelpers.ts": {"lines":{"total":24,"covered":4,"skipped":0,"pct":16.67},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":29,"covered":6,"skipped":0,"pct":20.69},"branches":{"total":12,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/ButtonComponent.tsx": {"lines":{"total":107,"covered":27,"skipped":0,"pct":25.23},"functions":{"total":27,"covered":1,"skipped":0,"pct":3.7},"statements":{"total":117,"covered":27,"skipped":0,"pct":23.08},"branches":{"total":101,"covered":12,"skipped":0,"pct":11.88}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/TextComponent.tsx": {"lines":{"total":31,"covered":13,"skipped":0,"pct":41.94},"functions":{"total":11,"covered":1,"skipped":0,"pct":9.09},"statements":{"total":32,"covered":14,"skipped":0,"pct":43.75},"branches":{"total":60,"covered":6,"skipped":0,"pct":10}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ApiResponseView.tsx": {"lines":{"total":79,"covered":41,"skipped":0,"pct":51.9},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":81,"covered":41,"skipped":0,"pct":50.62},"branches":{"total":72,"covered":26,"skipped":0,"pct":36.11}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/DragLayerComponent.tsx": {"lines":{"total":14,"covered":6,"skipped":0,"pct":42.86},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":6,"skipped":0,"pct":42.86},"branches":{"total":10,"covered":2,"skipped":0,"pct":20}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/DraggableComponent.tsx": {"lines":{"total":61,"covered":14,"skipped":0,"pct":22.95},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":66,"covered":15,"skipped":0,"pct":22.73},"branches":{"total":46,"covered":4,"skipped":0,"pct":8.7}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/DropTargetComponent.tsx": {"lines":{"total":74,"covered":17,"skipped":0,"pct":22.97},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":76,"covered":17,"skipped":0,"pct":22.37},"branches":{"total":49,"covered":2,"skipped":0,"pct":4.08}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/DropTargetUtils.ts": {"lines":{"total":9,"covered":2,"skipped":0,"pct":22.22},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":3,"skipped":0,"pct":30},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/EditableText.tsx": {"lines":{"total":58,"covered":17,"skipped":0,"pct":29.31},"functions":{"total":16,"covered":1,"skipped":0,"pct":6.25},"statements":{"total":63,"covered":17,"skipped":0,"pct":26.98},"branches":{"total":47,"covered":8,"skipped":0,"pct":17.02}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/EditorContextProvider.tsx": {"lines":{"total":15,"covered":10,"skipped":0,"pct":66.67},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":10,"skipped":0,"pct":66.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ErrorBoundry.tsx": {"lines":{"total":19,"covered":11,"skipped":0,"pct":57.89},"functions":{"total":7,"covered":1,"skipped":0,"pct":14.29},"statements":{"total":21,"covered":12,"skipped":0,"pct":57.14},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ErrorTooltip.tsx": {"lines":{"total":8,"covered":7,"skipped":0,"pct":87.5},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":7,"skipped":0,"pct":87.5},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/FormLabel.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/HelperTooltip.tsx": {"lines":{"total":8,"covered":7,"skipped":0,"pct":87.5},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":7,"skipped":0,"pct":87.5},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/LoadingOverlayScreen.tsx": {"lines":{"total":5,"covered":3,"skipped":0,"pct":60},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":5,"covered":3,"skipped":0,"pct":60},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/PreventInteractionsOverlay.tsx": {"lines":{"total":13,"covered":8,"skipped":0,"pct":61.54},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":8,"skipped":0,"pct":57.14},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ReadOnlyEditor.tsx": {"lines":{"total":6,"covered":4,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":4,"skipped":0,"pct":66.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ResizableComponent.tsx": {"lines":{"total":107,"covered":24,"skipped":0,"pct":22.43},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":110,"covered":24,"skipped":0,"pct":21.82},"branches":{"total":88,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ResizableUtils.tsx": {"lines":{"total":11,"covered":6,"skipped":0,"pct":54.55},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":10,"skipped":0,"pct":66.67},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ResizeStyledComponents.tsx": {"lines":{"total":28,"covered":19,"skipped":0,"pct":67.86},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":28,"covered":19,"skipped":0,"pct":67.86},"branches":{"total":46,"covered":28,"skipped":0,"pct":60.87}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/SnipeableComponent.tsx": {"lines":{"total":27,"covered":11,"skipped":0,"pct":40.74},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":27,"covered":11,"skipped":0,"pct":40.74},"branches":{"total":11,"covered":2,"skipped":0,"pct":18.18}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/BindingPrompt.tsx": {"lines":{"total":14,"covered":5,"skipped":0,"pct":35.71},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":5,"skipped":0,"pct":35.71},"branches":{"total":16,"covered":4,"skipped":0,"pct":25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/BindingPromptHelper.ts": {"lines":{"total":3,"covered":2,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":14,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/EditorConfig.ts": {"lines":{"total":22,"covered":22,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":22,"covered":22,"skipped":0,"pct":100},"branches":{"total":10,"covered":10,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/EvaluatedValuePopup.tsx": {"lines":{"total":101,"covered":33,"skipped":0,"pct":32.67},"functions":{"total":33,"covered":0,"skipped":0,"pct":0},"statements":{"total":116,"covered":33,"skipped":0,"pct":28.45},"branches":{"total":74,"covered":22,"skipped":0,"pct":29.73}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/codeEditorUtils.ts": {"lines":{"total":40,"covered":8,"skipped":0,"pct":20},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":46,"covered":13,"skipped":0,"pct":28.26},"branches":{"total":18,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/commandsHelper.ts": {"lines":{"total":56,"covered":8,"skipped":0,"pct":14.29},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":61,"covered":9,"skipped":0,"pct":14.75},"branches":{"total":21,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/generateQuickCommands.tsx": {"lines":{"total":67,"covered":18,"skipped":0,"pct":26.87},"functions":{"total":15,"covered":1,"skipped":0,"pct":6.67},"statements":{"total":68,"covered":19,"skipped":0,"pct":27.94},"branches":{"total":28,"covered":2,"skipped":0,"pct":7.14}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/hintHelpers.ts": {"lines":{"total":22,"covered":6,"skipped":0,"pct":27.27},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":7,"skipped":0,"pct":30.43},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/index.tsx": {"lines":{"total":217,"covered":53,"skipped":0,"pct":24.42},"functions":{"total":37,"covered":1,"skipped":0,"pct":2.7},"statements":{"total":239,"covered":54,"skipped":0,"pct":22.59},"branches":{"total":138,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/markHelpers.ts": {"lines":{"total":10,"covered":2,"skipped":0,"pct":20},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":3,"skipped":0,"pct":27.27},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/modes.ts": {"lines":{"total":12,"covered":9,"skipped":0,"pct":75},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":12,"covered":9,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/styledComponents.ts": {"lines":{"total":50,"covered":9,"skipped":0,"pct":18},"functions":{"total":28,"covered":0,"skipped":0,"pct":0},"statements":{"total":52,"covered":9,"skipped":0,"pct":17.31},"branches":{"total":86,"covered":6,"skipped":0,"pct":6.98}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/DebugCTA.tsx": {"lines":{"total":21,"covered":12,"skipped":0,"pct":57.14},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":12,"skipped":0,"pct":54.55},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/DebuggerLogs.tsx": {"lines":{"total":45,"covered":18,"skipped":0,"pct":40},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":54,"covered":18,"skipped":0,"pct":33.33},"branches":{"total":20,"covered":4,"skipped":0,"pct":20}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/EntityDependecies.tsx": {"lines":{"total":72,"covered":26,"skipped":0,"pct":36.11},"functions":{"total":33,"covered":0,"skipped":0,"pct":0},"statements":{"total":74,"covered":26,"skipped":0,"pct":35.14},"branches":{"total":74,"covered":16,"skipped":0,"pct":21.62}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/EntityLink.tsx": {"lines":{"total":57,"covered":18,"skipped":0,"pct":31.58},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":59,"covered":18,"skipped":0,"pct":30.51},"branches":{"total":21,"covered":2,"skipped":0,"pct":9.52}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/Errors.tsx": {"lines":{"total":21,"covered":12,"skipped":0,"pct":57.14},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":12,"skipped":0,"pct":54.55},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/FilterHeader.tsx": {"lines":{"total":17,"covered":10,"skipped":0,"pct":58.82},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":10,"skipped":0,"pct":58.82},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/LogItem.tsx": {"lines":{"total":74,"covered":26,"skipped":0,"pct":35.14},"functions":{"total":31,"covered":0,"skipped":0,"pct":0},"statements":{"total":77,"covered":27,"skipped":0,"pct":35.06},"branches":{"total":60,"covered":10,"skipped":0,"pct":16.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/helpers.tsx": {"lines":{"total":51,"covered":18,"skipped":0,"pct":35.29},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":61,"covered":22,"skipped":0,"pct":36.07},"branches":{"total":22,"covered":2,"skipped":0,"pct":9.09}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/hooks.ts": {"lines":{"total":96,"covered":23,"skipped":0,"pct":23.96},"functions":{"total":21,"covered":0,"skipped":0,"pct":0},"statements":{"total":110,"covered":28,"skipped":0,"pct":25.45},"branches":{"total":108,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/Resizer/index.tsx": {"lines":{"total":36,"covered":6,"skipped":0,"pct":16.67},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":40,"covered":6,"skipped":0,"pct":15},"branches":{"total":14,"covered":4,"skipped":0,"pct":28.57}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/githubHelper.ts": {"lines":{"total":13,"covered":3,"skipped":0,"pct":23.08},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":4,"skipped":0,"pct":23.53},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/utils.tsx": {"lines":{"total":73,"covered":27,"skipped":0,"pct":36.99},"functions":{"total":14,"covered":2,"skipped":0,"pct":14.29},"statements":{"total":92,"covered":35,"skipped":0,"pct":38.04},"branches":{"total":90,"covered":4,"skipped":0,"pct":4.44}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/HighlightedCode/index.tsx": {"lines":{"total":19,"covered":12,"skipped":0,"pct":63.16},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":19,"covered":12,"skipped":0,"pct":63.16},"branches":{"total":12,"covered":4,"skipped":0,"pct":33.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/HighlightedCode/themes.ts": {"lines":{"total":6,"covered":4,"skipped":0,"pct":66.67},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":4,"skipped":0,"pct":66.67},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Onboarding/Boxed.tsx": {"lines":{"total":12,"covered":5,"skipped":0,"pct":41.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":12,"covered":5,"skipped":0,"pct":41.67},"branches":{"total":7,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/WidgetNameComponent/SettingsControl.tsx": {"lines":{"total":40,"covered":22,"skipped":0,"pct":55},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":40,"covered":22,"skipped":0,"pct":55},"branches":{"total":32,"covered":10,"skipped":0,"pct":31.25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/WidgetNameComponent/index.tsx": {"lines":{"total":61,"covered":16,"skipped":0,"pct":26.23},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":63,"covered":16,"skipped":0,"pct":25.4},"branches":{"total":54,"covered":4,"skipped":0,"pct":7.41}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/form/fields/CheckboxField.tsx": {"lines":{"total":9,"covered":5,"skipped":0,"pct":55.56},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":5,"skipped":0,"pct":55.56},"branches":{"total":11,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/form/fields/DropdownField.tsx": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/form/fields/DynamicTextField.tsx": {"lines":{"total":10,"covered":8,"skipped":0,"pct":80},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":11,"covered":9,"skipped":0,"pct":81.82},"branches":{"total":8,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/form/fields/NumberField.tsx": {"lines":{"total":12,"covered":7,"skipped":0,"pct":58.33},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":13,"covered":8,"skipped":0,"pct":61.54},"branches":{"total":11,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/form/fields/TextField.tsx": {"lines":{"total":8,"covered":7,"skipped":0,"pct":87.5},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":9,"covered":8,"skipped":0,"pct":88.89},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/BaseControl.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/CheckboxControl.tsx": {"lines":{"total":13,"covered":10,"skipped":0,"pct":76.92},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":17,"covered":11,"skipped":0,"pct":64.71},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/DropDownControl.tsx": {"lines":{"total":28,"covered":16,"skipped":0,"pct":57.14},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":37,"covered":17,"skipped":0,"pct":45.95},"branches":{"total":23,"covered":4,"skipped":0,"pct":17.39}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/DynamicInputTextControl.tsx": {"lines":{"total":24,"covered":15,"skipped":0,"pct":62.5},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":29,"covered":16,"skipped":0,"pct":55.17},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/DynamicTextFieldControl.tsx": {"lines":{"total":50,"covered":23,"skipped":0,"pct":46},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":53,"covered":24,"skipped":0,"pct":45.28},"branches":{"total":17,"covered":2,"skipped":0,"pct":11.76}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/FieldArrayControl.tsx": {"lines":{"total":26,"covered":13,"skipped":0,"pct":50},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":26,"covered":13,"skipped":0,"pct":50},"branches":{"total":13,"covered":8,"skipped":0,"pct":61.54}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/FilePickerControl.tsx": {"lines":{"total":46,"covered":21,"skipped":0,"pct":45.65},"functions":{"total":12,"covered":2,"skipped":0,"pct":16.67},"statements":{"total":52,"covered":23,"skipped":0,"pct":44.23},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/FixedKeyInputControl.tsx": {"lines":{"total":29,"covered":12,"skipped":0,"pct":41.38},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":30,"covered":13,"skipped":0,"pct":43.33},"branches":{"total":9,"covered":2,"skipped":0,"pct":22.22}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/InputNumberControl.tsx": {"lines":{"total":25,"covered":13,"skipped":0,"pct":52},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":26,"covered":14,"skipped":0,"pct":53.85},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/InputTextControl.tsx": {"lines":{"total":38,"covered":16,"skipped":0,"pct":42.11},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":39,"covered":17,"skipped":0,"pct":43.59},"branches":{"total":18,"covered":2,"skipped":0,"pct":11.11}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/KeyValueArrayControl.tsx": {"lines":{"total":57,"covered":20,"skipped":0,"pct":35.09},"functions":{"total":13,"covered":1,"skipped":0,"pct":7.69},"statements":{"total":60,"covered":21,"skipped":0,"pct":35},"branches":{"total":56,"covered":4,"skipped":0,"pct":7.14}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/KeyValueInputControl.tsx": {"lines":{"total":25,"covered":15,"skipped":0,"pct":60},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":27,"covered":16,"skipped":0,"pct":59.26},"branches":{"total":12,"covered":2,"skipped":0,"pct":16.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/StyledControls.tsx": {"lines":{"total":57,"covered":22,"skipped":0,"pct":38.6},"functions":{"total":35,"covered":0,"skipped":0,"pct":0},"statements":{"total":57,"covered":22,"skipped":0,"pct":38.6},"branches":{"total":34,"covered":28,"skipped":0,"pct":82.35}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/SwitchControl.tsx": {"lines":{"total":28,"covered":18,"skipped":0,"pct":64.29},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":41,"covered":21,"skipped":0,"pct":51.22},"branches":{"total":14,"covered":6,"skipped":0,"pct":42.86}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/formControls/utils.ts": {"lines":{"total":71,"covered":7,"skipped":0,"pct":9.86},"functions":{"total":13,"covered":0,"skipped":0,"pct":0},"statements":{"total":80,"covered":13,"skipped":0,"pct":16.25},"branches":{"total":59,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/propertyControls/StyledControls.tsx": {"lines":{"total":77,"covered":29,"skipped":0,"pct":37.66},"functions":{"total":48,"covered":0,"skipped":0,"pct":0},"statements":{"total":77,"covered":29,"skipped":0,"pct":37.66},"branches":{"total":64,"covered":40,"skipped":0,"pct":62.5}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/configs/index.ts": {"lines":{"total":41,"covered":40,"skipped":0,"pct":97.56},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":45,"covered":43,"skipped":0,"pct":95.56},"branches":{"total":100,"covered":84,"skipped":0,"pct":84}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/ApiConstants.tsx": {"lines":{"total":23,"covered":23,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":23,"covered":23,"skipped":0,"pct":100},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/ApiEditorConstants.ts": {"lines":{"total":26,"covered":26,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":27,"covered":27,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppCollabConstants.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppConstants.ts": {"lines":{"total":18,"covered":8,"skipped":0,"pct":44.44},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":10,"skipped":0,"pct":47.62},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/BindingsConstants.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/Colors.tsx": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/CommentConstants.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/DatasourceEditorConstants.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/DefaultTheme.tsx": {"lines":{"total":95,"covered":70,"skipped":0,"pct":73.68},"functions":{"total":28,"covered":6,"skipped":0,"pct":21.43},"statements":{"total":111,"covered":80,"skipped":0,"pct":72.07},"branches":{"total":38,"covered":31,"skipped":0,"pct":81.58}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/Fonts.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/IconConstants.tsx": {"lines":{"total":9,"covered":2,"skipped":0,"pct":22.22},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":2,"skipped":0,"pct":22.22},"branches":{"total":24,"covered":2,"skipped":0,"pct":8.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/KeyboardShortcuts.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/Layers.tsx": {"lines":{"total":17,"covered":17,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":17,"covered":17,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/OnboardingConstants.tsx": {"lines":{"total":32,"covered":18,"skipped":0,"pct":56.25},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":32,"covered":18,"skipped":0,"pct":56.25},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/QueryEditorConstants.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/ReduxActionConstants.tsx": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/TourSteps.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/WebsocketConstants.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":7,"skipped":0,"pct":70},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/WidgetConstants.tsx": {"lines":{"total":68,"covered":68,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":68,"covered":68,"skipped":0,"pct":100},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/WidgetValidation.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/forms.ts": {"lines":{"total":19,"covered":19,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":19,"covered":19,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/messages.ts": {"lines":{"total":347,"covered":256,"skipped":0,"pct":73.78},"functions":{"total":251,"covered":0,"skipped":0,"pct":0},"statements":{"total":758,"covered":506,"skipped":0,"pct":66.75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/routes.ts": {"lines":{"total":134,"covered":95,"skipped":0,"pct":70.9},"functions":{"total":21,"covered":10,"skipped":0,"pct":47.62},"statements":{"total":155,"covered":115,"skipped":0,"pct":74.19},"branches":{"total":108,"covered":27,"skipped":0,"pct":25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/userConstants.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppsmithActionConstants/ActionConstants.tsx": {"lines":{"total":55,"covered":55,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":55,"covered":55,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/ApiDependencyConfigs.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/ApiEditorConfigs.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/ApiSettingsConfig.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/GoogleSheetsSettingsConfig.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/QuerySettingsConfig.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/App.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/Action/actionProperties.ts": {"lines":{"total":34,"covered":7,"skipped":0,"pct":20.59},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":38,"covered":9,"skipped":0,"pct":23.68},"branches":{"total":22,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/Action/index.ts": {"lines":{"total":13,"covered":10,"skipped":0,"pct":76.92},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":16,"covered":11,"skipped":0,"pct":68.75},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/AppsmithConsole/index.ts": {"lines":{"total":10,"covered":10,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":10,"covered":10,"skipped":0,"pct":100},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/AppsmithConsole/logtype.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/DataTree/dataTreeAction.ts": {"lines":{"total":11,"covered":3,"skipped":0,"pct":27.27},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":4,"skipped":0,"pct":25},"branches":{"total":22,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/DataTree/dataTreeFactory.ts": {"lines":{"total":31,"covered":13,"skipped":0,"pct":41.94},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":32,"covered":14,"skipped":0,"pct":43.75},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/DataTree/dataTreeWidget.ts": {"lines":{"total":32,"covered":6,"skipped":0,"pct":18.75},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":7,"skipped":0,"pct":21.21},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/Tour/index.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/Widget/utils.ts": {"lines":{"total":62,"covered":4,"skipped":0,"pct":6.45},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":64,"covered":6,"skipped":0,"pct":9.38},"branches":{"total":68,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/globalStyles/tooltip.ts": {"lines":{"total":10,"covered":5,"skipped":0,"pct":50},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":5,"skipped":0,"pct":50},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/AlertIcons.tsx": {"lines":{"total":11,"covered":7,"skipped":0,"pct":63.64},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":7,"skipped":0,"pct":63.64},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/ControlIcons.tsx": {"lines":{"total":123,"covered":63,"skipped":0,"pct":51.22},"functions":{"total":60,"covered":0,"skipped":0,"pct":0},"statements":{"total":123,"covered":63,"skipped":0,"pct":51.22},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/FormIcons.tsx": {"lines":{"total":17,"covered":9,"skipped":0,"pct":52.94},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":9,"skipped":0,"pct":52.94},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/MenuIcons.tsx": {"lines":{"total":39,"covered":21,"skipped":0,"pct":53.85},"functions":{"total":18,"covered":0,"skipped":0,"pct":0},"statements":{"total":39,"covered":21,"skipped":0,"pct":53.85},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/WidgetIcons.tsx": {"lines":{"total":62,"covered":32,"skipped":0,"pct":51.61},"functions":{"total":30,"covered":0,"skipped":0,"pct":0},"statements":{"total":62,"covered":32,"skipped":0,"pct":51.61},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/mockResponses/CommentApiMockResponse.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/mockResponses/WidgetConfigResponse.tsx": {"lines":{"total":98,"covered":13,"skipped":0,"pct":13.27},"functions":{"total":19,"covered":0,"skipped":0,"pct":0},"statements":{"total":105,"covered":13,"skipped":0,"pct":12.38},"branches":{"total":40,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/mockResponses/WidgetSidebarResponse.tsx": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/normalizers/CanvasWidgetsNormalizer.tsx": {"lines":{"total":10,"covered":8,"skipped":0,"pct":80},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":10,"covered":8,"skipped":0,"pct":80},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Applications/permissionHelpers.tsx": {"lines":{"total":12,"covered":11,"skipped":0,"pct":91.67},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":13,"covered":12,"skipped":0,"pct":92.31},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FormControl.tsx": {"lines":{"total":11,"covered":6,"skipped":0,"pct":54.55},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":12,"covered":6,"skipped":0,"pct":50},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Popper.tsx": {"lines":{"total":40,"covered":12,"skipped":0,"pct":30},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":40,"covered":12,"skipped":0,"pct":30},"branches":{"total":40,"covered":4,"skipped":0,"pct":10}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/utils.ts": {"lines":{"total":98,"covered":12,"skipped":0,"pct":12.24},"functions":{"total":18,"covered":1,"skipped":0,"pct":5.56},"statements":{"total":106,"covered":14,"skipped":0,"pct":13.21},"branches":{"total":71,"covered":1,"skipped":0,"pct":1.41}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/ContextMenuTrigger.tsx": {"lines":{"total":11,"covered":8,"skipped":0,"pct":72.73},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":8,"skipped":0,"pct":72.73},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/ExplorerIcons.tsx": {"lines":{"total":54,"covered":44,"skipped":0,"pct":81.48},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":56,"covered":46,"skipped":0,"pct":82.14},"branches":{"total":12,"covered":6,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/ExplorerStyledComponents.tsx": {"lines":{"total":4,"covered":3,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/TreeDropdown.tsx": {"lines":{"total":35,"covered":6,"skipped":0,"pct":17.14},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":6,"skipped":0,"pct":16.22},"branches":{"total":26,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/helpers.tsx": {"lines":{"total":25,"covered":7,"skipped":0,"pct":28},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":28,"covered":10,"skipped":0,"pct":35.71},"branches":{"total":60,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/hooks.ts": {"lines":{"total":125,"covered":16,"skipped":0,"pct":12.8},"functions":{"total":37,"covered":0,"skipped":0,"pct":0},"statements":{"total":159,"covered":23,"skipped":0,"pct":14.47},"branches":{"total":65,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Actions/ActionEntity.tsx": {"lines":{"total":25,"covered":15,"skipped":0,"pct":60},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":15,"skipped":0,"pct":60},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Actions/ActionEntityContextMenu.tsx": {"lines":{"total":35,"covered":15,"skipped":0,"pct":42.86},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":35,"covered":15,"skipped":0,"pct":42.86},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Actions/ActionsGroup.tsx": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":7,"skipped":0,"pct":46.67},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Actions/helpers.tsx": {"lines":{"total":53,"covered":14,"skipped":0,"pct":26.42},"functions":{"total":20,"covered":0,"skipped":0,"pct":0},"statements":{"total":62,"covered":17,"skipped":0,"pct":27.42},"branches":{"total":53,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Datasources/DataSourceContextMenu.tsx": {"lines":{"total":18,"covered":10,"skipped":0,"pct":55.56},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":18,"covered":10,"skipped":0,"pct":55.56},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Datasources/DatasourceEntity.tsx": {"lines":{"total":46,"covered":17,"skipped":0,"pct":36.96},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":46,"covered":17,"skipped":0,"pct":36.96},"branches":{"total":18,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Datasources/DatasourceField.tsx": {"lines":{"total":21,"covered":14,"skipped":0,"pct":66.67},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":14,"skipped":0,"pct":66.67},"branches":{"total":16,"covered":14,"skipped":0,"pct":87.5}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Datasources/DatasourceStructure.tsx": {"lines":{"total":28,"covered":14,"skipped":0,"pct":50},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":31,"covered":14,"skipped":0,"pct":45.16},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Datasources/DatasourceStructureContainer.tsx": {"lines":{"total":17,"covered":9,"skipped":0,"pct":52.94},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":9,"skipped":0,"pct":52.94},"branches":{"total":17,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Datasources/QueryTemplates.tsx": {"lines":{"total":33,"covered":16,"skipped":0,"pct":48.48},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":34,"covered":16,"skipped":0,"pct":47.06},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/AddButton.tsx": {"lines":{"total":14,"covered":8,"skipped":0,"pct":57.14},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":9,"skipped":0,"pct":56.25},"branches":{"total":8,"covered":2,"skipped":0,"pct":25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/Collapse.tsx": {"lines":{"total":14,"covered":8,"skipped":0,"pct":57.14},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":8,"skipped":0,"pct":53.33},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/CollapseToggle.tsx": {"lines":{"total":12,"covered":6,"skipped":0,"pct":50},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":6,"skipped":0,"pct":46.15},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/EntityProperties.tsx": {"lines":{"total":54,"covered":13,"skipped":0,"pct":24.07},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":55,"covered":13,"skipped":0,"pct":23.64},"branches":{"total":26,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/EntityProperty.tsx": {"lines":{"total":39,"covered":21,"skipped":0,"pct":53.85},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":39,"covered":21,"skipped":0,"pct":53.85},"branches":{"total":26,"covered":6,"skipped":0,"pct":23.08}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/Loader.tsx": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":5,"skipped":0,"pct":55.56},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/Name.tsx": {"lines":{"total":69,"covered":15,"skipped":0,"pct":21.74},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":73,"covered":16,"skipped":0,"pct":21.92},"branches":{"total":40,"covered":2,"skipped":0,"pct":5}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/Placeholder.tsx": {"lines":{"total":11,"covered":6,"skipped":0,"pct":54.55},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":6,"skipped":0,"pct":54.55},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/index.tsx": {"lines":{"total":68,"covered":28,"skipped":0,"pct":41.18},"functions":{"total":20,"covered":1,"skipped":0,"pct":5},"statements":{"total":71,"covered":28,"skipped":0,"pct":39.44},"branches":{"total":54,"covered":8,"skipped":0,"pct":14.81}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/PluginGroup/PluginGroup.tsx": {"lines":{"total":25,"covered":13,"skipped":0,"pct":52},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":26,"covered":13,"skipped":0,"pct":50},"branches":{"total":57,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Widgets/useNavigateToWidget.ts": {"lines":{"total":40,"covered":10,"skipped":0,"pct":25},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":42,"covered":11,"skipped":0,"pct":26.19},"branches":{"total":16,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Widgets/utils.ts": {"lines":{"total":6,"covered":3,"skipped":0,"pct":50},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":4,"skipped":0,"pct":57.14},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx": {"lines":{"total":79,"covered":57,"skipped":0,"pct":72.15},"functions":{"total":11,"covered":9,"skipped":0,"pct":81.82},"statements":{"total":81,"covered":59,"skipped":0,"pct":72.84},"branches":{"total":56,"covered":31,"skipped":0,"pct":55.36}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/constants.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/QueryEditor/TemplateMenu.tsx": {"lines":{"total":32,"covered":13,"skipped":0,"pct":40.63},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":40,"covered":14,"skipped":0,"pct":35},"branches":{"total":15,"covered":8,"skipped":0,"pct":53.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/SaaSEditor/constants.ts": {"lines":{"total":27,"covered":6,"skipped":0,"pct":22.22},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":31,"covered":10,"skipped":0,"pct":32.26},"branches":{"total":30,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/ProfileImage.tsx": {"lines":{"total":18,"covered":6,"skipped":0,"pct":33.33},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":20,"covered":6,"skipped":0,"pct":30},"branches":{"total":16,"covered":2,"skipped":0,"pct":12.5}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/index.tsx": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/actionsReducer.tsx": {"lines":{"total":104,"covered":7,"skipped":0,"pct":6.73},"functions":{"total":51,"covered":0,"skipped":0,"pct":0},"statements":{"total":106,"covered":7,"skipped":0,"pct":6.6},"branches":{"total":48,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/appReducer.ts": {"lines":{"total":10,"covered":5,"skipped":0,"pct":50},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":5,"skipped":0,"pct":50},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/canvasWidgetsReducer.tsx": {"lines":{"total":11,"covered":7,"skipped":0,"pct":63.64},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":7,"skipped":0,"pct":63.64},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/datasourceReducer.ts": {"lines":{"total":51,"covered":5,"skipped":0,"pct":9.8},"functions":{"total":33,"covered":0,"skipped":0,"pct":0},"statements":{"total":53,"covered":5,"skipped":0,"pct":9.43},"branches":{"total":12,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/index.ts": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":12,"covered":12,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/jsExecutionsReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/metaReducer.ts": {"lines":{"total":28,"covered":6,"skipped":0,"pct":21.43},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":28,"covered":6,"skipped":0,"pct":21.43},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/pageListReducer.tsx": {"lines":{"total":45,"covered":6,"skipped":0,"pct":13.33},"functions":{"total":20,"covered":0,"skipped":0,"pct":0},"statements":{"total":51,"covered":6,"skipped":0,"pct":11.76},"branches":{"total":20,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/pluginsReducer.ts": {"lines":{"total":12,"covered":5,"skipped":0,"pct":41.67},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":12,"covered":5,"skipped":0,"pct":41.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/widgetConfigReducer.tsx": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":6,"skipped":0,"pct":85.71},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/evaluationReducers/dependencyReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/evaluationReducers/index.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/evaluationReducers/loadingEntitiesReducer.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/evaluationReducers/treeReducer.ts": {"lines":{"total":17,"covered":7,"skipped":0,"pct":41.18},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":7,"skipped":0,"pct":31.82},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/actionTabsReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/apiNameReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/apiPaneReducer.ts": {"lines":{"total":25,"covered":5,"skipped":0,"pct":20},"functions":{"total":18,"covered":0,"skipped":0,"pct":0},"statements":{"total":27,"covered":5,"skipped":0,"pct":18.52},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/appCollabReducer.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/appViewReducer.tsx": {"lines":{"total":10,"covered":5,"skipped":0,"pct":50},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":5,"skipped":0,"pct":50},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/applicationsReducer.tsx": {"lines":{"total":79,"covered":6,"skipped":0,"pct":7.59},"functions":{"total":39,"covered":0,"skipped":0,"pct":0},"statements":{"total":82,"covered":6,"skipped":0,"pct":7.32},"branches":{"total":12,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/authReducer.ts": {"lines":{"total":11,"covered":5,"skipped":0,"pct":45.45},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":5,"skipped":0,"pct":45.45},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/canvasSelectionReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/confirmRunActionReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/crudInfoModalReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/datasourceNameReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/datasourcePaneReducer.ts": {"lines":{"total":15,"covered":6,"skipped":0,"pct":40},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":6,"skipped":0,"pct":40},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/debuggerReducer.ts": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":7,"skipped":0,"pct":43.75},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/dragResizeReducer.ts": {"lines":{"total":43,"covered":6,"skipped":0,"pct":13.95},"functions":{"total":13,"covered":0,"skipped":0,"pct":0},"statements":{"total":44,"covered":6,"skipped":0,"pct":13.64},"branches":{"total":26,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/editorReducer.tsx": {"lines":{"total":69,"covered":6,"skipped":0,"pct":8.7},"functions":{"total":24,"covered":0,"skipped":0,"pct":0},"statements":{"total":69,"covered":6,"skipped":0,"pct":8.7},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/errorReducer.tsx": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":6,"skipped":0,"pct":66.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/explorerReducer.ts": {"lines":{"total":19,"covered":9,"skipped":0,"pct":47.37},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":19,"covered":9,"skipped":0,"pct":47.37},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/globalSearchReducer.ts": {"lines":{"total":13,"covered":6,"skipped":0,"pct":46.15},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":6,"skipped":0,"pct":46.15},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/helpReducer.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/importReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/importedCollectionsReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/index.tsx": {"lines":{"total":40,"covered":40,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":40,"covered":40,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/notificationsReducer.ts": {"lines":{"total":21,"covered":6,"skipped":0,"pct":28.57},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":6,"skipped":0,"pct":28.57},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/onBoardingReducer.ts": {"lines":{"total":25,"covered":6,"skipped":0,"pct":24},"functions":{"total":19,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":6,"skipped":0,"pct":24},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/orgReducer.ts": {"lines":{"total":37,"covered":5,"skipped":0,"pct":13.51},"functions":{"total":24,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":5,"skipped":0,"pct":13.51},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/pageCanvasStructureReducer.ts": {"lines":{"total":12,"covered":6,"skipped":0,"pct":50},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":12,"covered":6,"skipped":0,"pct":50},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/pageWidgetsReducer.ts": {"lines":{"total":12,"covered":6,"skipped":0,"pct":50},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":12,"covered":6,"skipped":0,"pct":50},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/propertyPaneReducer.tsx": {"lines":{"total":22,"covered":5,"skipped":0,"pct":22.73},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":24,"covered":5,"skipped":0,"pct":20.83},"branches":{"total":19,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/providerReducer.ts": {"lines":{"total":43,"covered":5,"skipped":0,"pct":11.63},"functions":{"total":23,"covered":0,"skipped":0,"pct":0},"statements":{"total":44,"covered":5,"skipped":0,"pct":11.36},"branches":{"total":8,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/queryPaneReducer.ts": {"lines":{"total":21,"covered":6,"skipped":0,"pct":28.57},"functions":{"total":13,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":6,"skipped":0,"pct":26.09},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/releasesReducer.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/tableFilterPaneReducer.tsx": {"lines":{"total":19,"covered":5,"skipped":0,"pct":26.32},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":5,"skipped":0,"pct":23.81},"branches":{"total":17,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/themeReducer.ts": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":7,"skipped":0,"pct":46.67},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/tourReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/usersReducer.ts": {"lines":{"total":33,"covered":7,"skipped":0,"pct":21.21},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":7,"skipped":0,"pct":21.21},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/websocketReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/widgetSidebarReducer.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/commentsReducer.ts": {"lines":{"total":60,"covered":17,"skipped":0,"pct":28.33},"functions":{"total":27,"covered":0,"skipped":0,"pct":0},"statements":{"total":68,"covered":17,"skipped":0,"pct":25},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/common.ts": {"lines":{"total":18,"covered":2,"skipped":0,"pct":11.11},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":4,"skipped":0,"pct":17.39},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleAddCommentToThreadSuccess.ts": {"lines":{"total":8,"covered":3,"skipped":0,"pct":37.5},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":3,"skipped":0,"pct":30},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleCreateNewCommentThreadSuccess.ts": {"lines":{"total":10,"covered":3,"skipped":0,"pct":30},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":3,"skipped":0,"pct":23.08},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleDeleteCommentEvent.ts": {"lines":{"total":6,"covered":3,"skipped":0,"pct":50},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":3,"skipped":0,"pct":37.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleDeleteCommentThreadEvent.ts": {"lines":{"total":6,"covered":3,"skipped":0,"pct":50},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":3,"skipped":0,"pct":37.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleFetchApplicationCommentsSuccess.ts": {"lines":{"total":13,"covered":3,"skipped":0,"pct":23.08},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":3,"skipped":0,"pct":20},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleNewCommentThreadEvent.ts": {"lines":{"total":15,"covered":3,"skipped":0,"pct":20},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":3,"skipped":0,"pct":20},"branches":{"total":8,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleUpdateCommentEvent.ts": {"lines":{"total":10,"covered":2,"skipped":0,"pct":20},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":2,"skipped":0,"pct":15.38},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleUpdateCommentThreadEvent.ts": {"lines":{"total":15,"covered":3,"skipped":0,"pct":20},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":3,"skipped":0,"pct":20},"branches":{"total":38,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleUpdateCommentThreadSuccess.ts": {"lines":{"total":14,"covered":3,"skipped":0,"pct":21.43},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":3,"skipped":0,"pct":20},"branches":{"total":40,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/resizable/index.tsx": {"lines":{"total":71,"covered":9,"skipped":0,"pct":12.68},"functions":{"total":20,"covered":0,"skipped":0,"pct":0},"statements":{"total":82,"covered":9,"skipped":0,"pct":10.98},"branches":{"total":40,"covered":2,"skipped":0,"pct":5}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecutionSagas.ts": {"lines":{"total":363,"covered":53,"skipped":0,"pct":14.6},"functions":{"total":31,"covered":3,"skipped":0,"pct":9.68},"statements":{"total":423,"covered":54,"skipped":0,"pct":12.77},"branches":{"total":250,"covered":5,"skipped":0,"pct":2}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionSagas.ts": {"lines":{"total":290,"covered":40,"skipped":0,"pct":13.79},"functions":{"total":26,"covered":1,"skipped":0,"pct":3.85},"statements":{"total":353,"covered":40,"skipped":0,"pct":11.33},"branches":{"total":112,"covered":1,"skipped":0,"pct":0.89}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ApiPaneSagas.ts": {"lines":{"total":184,"covered":30,"skipped":0,"pct":16.3},"functions":{"total":28,"covered":1,"skipped":0,"pct":3.57},"statements":{"total":213,"covered":30,"skipped":0,"pct":14.08},"branches":{"total":107,"covered":1,"skipped":0,"pct":0.93}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ApplicationSagas.tsx": {"lines":{"total":172,"covered":35,"skipped":0,"pct":20.35},"functions":{"total":22,"covered":1,"skipped":0,"pct":4.55},"statements":{"total":203,"covered":35,"skipped":0,"pct":17.24},"branches":{"total":63,"covered":1,"skipped":0,"pct":1.59}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/BatchSagas.tsx": {"lines":{"total":25,"covered":8,"skipped":0,"pct":32},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":31,"covered":8,"skipped":0,"pct":25.81},"branches":{"total":12,"covered":1,"skipped":0,"pct":8.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/CollectionSagas.ts": {"lines":{"total":12,"covered":7,"skipped":0,"pct":58.33},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":14,"covered":7,"skipped":0,"pct":50},"branches":{"total":3,"covered":1,"skipped":0,"pct":33.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/CurlImportSagas.ts": {"lines":{"total":31,"covered":17,"skipped":0,"pct":54.84},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":35,"covered":17,"skipped":0,"pct":48.57},"branches":{"total":3,"covered":1,"skipped":0,"pct":33.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/DatasourcesSagas.ts": {"lines":{"total":261,"covered":38,"skipped":0,"pct":14.56},"functions":{"total":24,"covered":1,"skipped":0,"pct":4.17},"statements":{"total":317,"covered":38,"skipped":0,"pct":11.99},"branches":{"total":117,"covered":1,"skipped":0,"pct":0.85}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/DebuggerSagas.ts": {"lines":{"total":145,"covered":19,"skipped":0,"pct":13.1},"functions":{"total":17,"covered":1,"skipped":0,"pct":5.88},"statements":{"total":160,"covered":19,"skipped":0,"pct":11.88},"branches":{"total":135,"covered":1,"skipped":0,"pct":0.74}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/DraggingCanvasSagas.ts": {"lines":{"total":39,"covered":10,"skipped":0,"pct":25.64},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":41,"covered":10,"skipped":0,"pct":24.39},"branches":{"total":17,"covered":1,"skipped":0,"pct":5.88}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ErrorSagas.tsx": {"lines":{"total":102,"covered":34,"skipped":0,"pct":33.33},"functions":{"total":18,"covered":3,"skipped":0,"pct":16.67},"statements":{"total":113,"covered":38,"skipped":0,"pct":33.63},"branches":{"total":63,"covered":3,"skipped":0,"pct":4.76}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/EvaluationsSaga.ts": {"lines":{"total":94,"covered":23,"skipped":0,"pct":24.47},"functions":{"total":15,"covered":1,"skipped":0,"pct":6.67},"statements":{"total":109,"covered":23,"skipped":0,"pct":21.1},"branches":{"total":32,"covered":1,"skipped":0,"pct":3.13}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/GlobalSearchSagas.ts": {"lines":{"total":35,"covered":10,"skipped":0,"pct":28.57},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":40,"covered":10,"skipped":0,"pct":25},"branches":{"total":23,"covered":1,"skipped":0,"pct":4.35}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/InitSagas.ts": {"lines":{"total":93,"covered":27,"skipped":0,"pct":29.03},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":110,"covered":27,"skipped":0,"pct":24.55},"branches":{"total":35,"covered":1,"skipped":0,"pct":2.86}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ModalSagas.ts": {"lines":{"total":56,"covered":17,"skipped":0,"pct":30.36},"functions":{"total":10,"covered":1,"skipped":0,"pct":10},"statements":{"total":61,"covered":17,"skipped":0,"pct":27.87},"branches":{"total":24,"covered":1,"skipped":0,"pct":4.17}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/NotificationsSagas.ts": {"lines":{"total":34,"covered":8,"skipped":0,"pct":23.53},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":44,"covered":8,"skipped":0,"pct":18.18},"branches":{"total":12,"covered":1,"skipped":0,"pct":8.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/OnboardingSagas.ts": {"lines":{"total":332,"covered":53,"skipped":0,"pct":15.96},"functions":{"total":53,"covered":2,"skipped":0,"pct":3.77},"statements":{"total":390,"covered":62,"skipped":0,"pct":15.9},"branches":{"total":145,"covered":2,"skipped":0,"pct":1.38}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/OrgSagas.ts": {"lines":{"total":106,"covered":24,"skipped":0,"pct":22.64},"functions":{"total":14,"covered":1,"skipped":0,"pct":7.14},"statements":{"total":133,"covered":24,"skipped":0,"pct":18.05},"branches":{"total":37,"covered":1,"skipped":0,"pct":2.7}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/PageSagas.tsx": {"lines":{"total":278,"covered":53,"skipped":0,"pct":19.06},"functions":{"total":35,"covered":1,"skipped":0,"pct":2.86},"statements":{"total":324,"covered":54,"skipped":0,"pct":16.67},"branches":{"total":80,"covered":1,"skipped":0,"pct":1.25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/PluginSagas.ts": {"lines":{"total":72,"covered":14,"skipped":0,"pct":19.44},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":87,"covered":14,"skipped":0,"pct":16.09},"branches":{"total":28,"covered":1,"skipped":0,"pct":3.57}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/PostEvaluationSagas.ts": {"lines":{"total":101,"covered":22,"skipped":0,"pct":21.78},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":118,"covered":22,"skipped":0,"pct":18.64},"branches":{"total":54,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ProvidersSaga.ts": {"lines":{"total":63,"covered":19,"skipped":0,"pct":30.16},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":78,"covered":19,"skipped":0,"pct":24.36},"branches":{"total":19,"covered":1,"skipped":0,"pct":5.26}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/QueryPaneSagas.ts": {"lines":{"total":89,"covered":22,"skipped":0,"pct":24.72},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":109,"covered":22,"skipped":0,"pct":20.18},"branches":{"total":39,"covered":1,"skipped":0,"pct":2.56}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/RecentEntitiesSagas.ts": {"lines":{"total":29,"covered":8,"skipped":0,"pct":27.59},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":29,"covered":8,"skipped":0,"pct":27.59},"branches":{"total":66,"covered":1,"skipped":0,"pct":1.52}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/SaaSPaneSagas.ts": {"lines":{"total":34,"covered":13,"skipped":0,"pct":38.24},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":46,"covered":13,"skipped":0,"pct":28.26},"branches":{"total":15,"covered":1,"skipped":0,"pct":6.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/SelectionCanvasSagas.ts": {"lines":{"total":39,"covered":11,"skipped":0,"pct":28.21},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":44,"covered":11,"skipped":0,"pct":25},"branches":{"total":16,"covered":1,"skipped":0,"pct":6.25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/SnipingModeSagas.ts": {"lines":{"total":106,"covered":14,"skipped":0,"pct":13.21},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":110,"covered":14,"skipped":0,"pct":12.73},"branches":{"total":25,"covered":1,"skipped":0,"pct":4}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ThemeSaga.tsx": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":7,"covered":6,"skipped":0,"pct":85.71},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/TourSagas.ts": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":18,"covered":7,"skipped":0,"pct":38.89},"branches":{"total":7,"covered":1,"skipped":0,"pct":14.29}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/UtilSagas.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WidgetBlueprintSagas.ts": {"lines":{"total":50,"covered":13,"skipped":0,"pct":26},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":56,"covered":13,"skipped":0,"pct":23.21},"branches":{"total":32,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WidgetBlueprintSagasEnums.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WidgetEnhancementHelpers.ts": {"lines":{"total":65,"covered":20,"skipped":0,"pct":30.77},"functions":{"total":14,"covered":1,"skipped":0,"pct":7.14},"statements":{"total":73,"covered":21,"skipped":0,"pct":28.77},"branches":{"total":47,"covered":2,"skipped":0,"pct":4.26}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WidgetLoadingSaga.ts": {"lines":{"total":50,"covered":11,"skipped":0,"pct":22},"functions":{"total":13,"covered":1,"skipped":0,"pct":7.69},"statements":{"total":57,"covered":11,"skipped":0,"pct":19.3},"branches":{"total":14,"covered":1,"skipped":0,"pct":7.14}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WidgetOperationSagas.tsx": {"lines":{"total":587,"covered":58,"skipped":0,"pct":9.88},"functions":{"total":86,"covered":2,"skipped":0,"pct":2.33},"statements":{"total":673,"covered":58,"skipped":0,"pct":8.62},"branches":{"total":309,"covered":3,"skipped":0,"pct":0.97}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WidgetOperationUtils.ts": {"lines":{"total":110,"covered":12,"skipped":0,"pct":10.91},"functions":{"total":13,"covered":0,"skipped":0,"pct":0},"statements":{"total":123,"covered":18,"skipped":0,"pct":14.63},"branches":{"total":99,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WidgetSelectionSagas.ts": {"lines":{"total":76,"covered":12,"skipped":0,"pct":15.79},"functions":{"total":14,"covered":1,"skipped":0,"pct":7.14},"statements":{"total":85,"covered":12,"skipped":0,"pct":14.12},"branches":{"total":50,"covered":1,"skipped":0,"pct":2}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WidgetSidebarSagas.tsx": {"lines":{"total":10,"covered":7,"skipped":0,"pct":70},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":11,"covered":7,"skipped":0,"pct":63.64},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/index.tsx": {"lines":{"total":47,"covered":44,"skipped":0,"pct":93.62},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":49,"covered":45,"skipped":0,"pct":91.84},"branches":{"total":5,"covered":3,"skipped":0,"pct":60}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/selectors.tsx": {"lines":{"total":84,"covered":26,"skipped":0,"pct":30.95},"functions":{"total":33,"covered":0,"skipped":0,"pct":0},"statements":{"total":110,"covered":44,"skipped":0,"pct":40},"branches":{"total":26,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/userSagas.tsx": {"lines":{"total":177,"covered":35,"skipped":0,"pct":19.77},"functions":{"total":18,"covered":1,"skipped":0,"pct":5.56},"statements":{"total":212,"covered":35,"skipped":0,"pct":16.51},"branches":{"total":62,"covered":1,"skipped":0,"pct":1.61}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/CommentSagas/index.ts": {"lines":{"total":103,"covered":13,"skipped":0,"pct":12.62},"functions":{"total":19,"covered":1,"skipped":0,"pct":5.26},"statements":{"total":133,"covered":13,"skipped":0,"pct":9.77},"branches":{"total":31,"covered":1,"skipped":0,"pct":3.23}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WebsocketSagas/WebsocketSagas.ts": {"lines":{"total":51,"covered":14,"skipped":0,"pct":27.45},"functions":{"total":15,"covered":4,"skipped":0,"pct":26.67},"statements":{"total":60,"covered":14,"skipped":0,"pct":23.33},"branches":{"total":17,"covered":2,"skipped":0,"pct":11.76}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WebsocketSagas/constants.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WebsocketSagas/handleSocketEvent.ts": {"lines":{"total":53,"covered":10,"skipped":0,"pct":18.87},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":56,"covered":10,"skipped":0,"pct":17.86},"branches":{"total":88,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/appViewSelectors.tsx": {"lines":{"total":15,"covered":9,"skipped":0,"pct":60},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":9,"skipped":0,"pct":56.25},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/applicationSelectors.tsx": {"lines":{"total":61,"covered":26,"skipped":0,"pct":42.62},"functions":{"total":24,"covered":0,"skipped":0,"pct":0},"statements":{"total":79,"covered":41,"skipped":0,"pct":51.9},"branches":{"total":22,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/commentsSelectors.ts": {"lines":{"total":76,"covered":21,"skipped":0,"pct":27.63},"functions":{"total":26,"covered":0,"skipped":0,"pct":0},"statements":{"total":108,"covered":36,"skipped":0,"pct":33.33},"branches":{"total":69,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/dataTreeSelectors.ts": {"lines":{"total":23,"covered":12,"skipped":0,"pct":52.17},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":27,"covered":15,"skipped":0,"pct":55.56},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/debuggerSelectors.tsx": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":3,"covered":2,"skipped":0,"pct":66.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/editorSelectors.tsx": {"lines":{"total":121,"covered":43,"skipped":0,"pct":35.54},"functions":{"total":49,"covered":3,"skipped":0,"pct":6.12},"statements":{"total":151,"covered":62,"skipped":0,"pct":41.06},"branches":{"total":56,"covered":3,"skipped":0,"pct":5.36}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/entitiesSelector.ts": {"lines":{"total":209,"covered":74,"skipped":0,"pct":35.41},"functions":{"total":108,"covered":3,"skipped":0,"pct":2.78},"statements":{"total":282,"covered":110,"skipped":0,"pct":39.01},"branches":{"total":82,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/errorSelectors.tsx": {"lines":{"total":4,"covered":2,"skipped":0,"pct":50},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":4,"skipped":0,"pct":66.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/formSelectors.ts": {"lines":{"total":9,"covered":3,"skipped":0,"pct":33.33},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":5,"skipped":0,"pct":45.45},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/globalSearchSelectors.tsx": {"lines":{"total":5,"covered":3,"skipped":0,"pct":60},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":4,"skipped":0,"pct":57.14},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/onboardingSelectors.tsx": {"lines":{"total":16,"covered":8,"skipped":0,"pct":50},"functions":{"total":7,"covered":1,"skipped":0,"pct":14.29},"statements":{"total":21,"covered":13,"skipped":0,"pct":61.9},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/organizationSelectors.tsx": {"lines":{"total":25,"covered":13,"skipped":0,"pct":52},"functions":{"total":18,"covered":0,"skipped":0,"pct":0},"statements":{"total":40,"covered":22,"skipped":0,"pct":55},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/propertyPaneSelectors.tsx": {"lines":{"total":57,"covered":16,"skipped":0,"pct":28.07},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":67,"covered":18,"skipped":0,"pct":26.87},"branches":{"total":49,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/tableFilterSelectors.tsx": {"lines":{"total":10,"covered":5,"skipped":0,"pct":50},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":6,"skipped":0,"pct":54.55},"branches":{"total":17,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/themeSelectors.tsx": {"lines":{"total":13,"covered":11,"skipped":0,"pct":84.62},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":18,"covered":15,"skipped":0,"pct":83.33},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/tourSelectors.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":4,"skipped":0,"pct":66.67},"branches":{"total":8,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/ui.tsx": {"lines":{"total":4,"covered":2,"skipped":0,"pct":50},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":4,"skipped":0,"pct":66.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/usersSelectors.tsx": {"lines":{"total":9,"covered":5,"skipped":0,"pct":55.56},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":10,"skipped":0,"pct":66.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/templates/default.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/transformers/CurlImportTransformer.ts": {"lines":{"total":2,"covered":1,"skipped":0,"pct":50},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":2,"covered":1,"skipped":0,"pct":50},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/transformers/RestActionTransformer.ts": {"lines":{"total":15,"covered":3,"skipped":0,"pct":20},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":4,"skipped":0,"pct":23.53},"branches":{"total":16,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/AnalyticsUtil.tsx": {"lines":{"total":92,"covered":15,"skipped":0,"pct":16.3},"functions":{"total":13,"covered":1,"skipped":0,"pct":7.69},"statements":{"total":96,"covered":15,"skipped":0,"pct":15.63},"branches":{"total":39,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/ApiPaneUtils.tsx": {"lines":{"total":19,"covered":3,"skipped":0,"pct":15.79},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":20,"covered":4,"skipped":0,"pct":20},"branches":{"total":19,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/AppsmithConsole.ts": {"lines":{"total":13,"covered":5,"skipped":0,"pct":38.46},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":5,"skipped":0,"pct":38.46},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/AppsmithUtils.tsx": {"lines":{"total":153,"covered":37,"skipped":0,"pct":24.18},"functions":{"total":37,"covered":4,"skipped":0,"pct":10.81},"statements":{"total":177,"covered":55,"skipped":0,"pct":31.07},"branches":{"total":86,"covered":4,"skipped":0,"pct":4.65}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/DynamicBindingUtils.ts": {"lines":{"total":119,"covered":46,"skipped":0,"pct":38.66},"functions":{"total":23,"covered":3,"skipped":0,"pct":13.04},"statements":{"total":137,"covered":59,"skipped":0,"pct":43.07},"branches":{"total":75,"covered":6,"skipped":0,"pct":8}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/FormControlFactory.tsx": {"lines":{"total":16,"covered":7,"skipped":0,"pct":43.75},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":16,"covered":7,"skipped":0,"pct":43.75},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/FormControlRegistry.tsx": {"lines":{"total":42,"covered":18,"skipped":0,"pct":42.86},"functions":{"total":14,"covered":1,"skipped":0,"pct":7.14},"statements":{"total":42,"covered":18,"skipped":0,"pct":42.86},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/GenerateCrudUtil.ts": {"lines":{"total":9,"covered":1,"skipped":0,"pct":11.11},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":2,"skipped":0,"pct":20},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/PerformanceTracker.ts": {"lines":{"total":114,"covered":47,"skipped":0,"pct":41.23},"functions":{"total":11,"covered":2,"skipped":0,"pct":18.18},"statements":{"total":117,"covered":47,"skipped":0,"pct":40.17},"branches":{"total":79,"covered":2,"skipped":0,"pct":2.53}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/TypeHelpers.ts": {"lines":{"total":25,"covered":14,"skipped":0,"pct":56},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":34,"covered":15,"skipped":0,"pct":44.12},"branches":{"total":18,"covered":2,"skipped":0,"pct":11.11}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/WidgetFactory.tsx": {"lines":{"total":85,"covered":20,"skipped":0,"pct":23.53},"functions":{"total":16,"covered":1,"skipped":0,"pct":6.25},"statements":{"total":85,"covered":20,"skipped":0,"pct":23.53},"branches":{"total":32,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/WidgetPropsUtils.tsx": {"lines":{"total":558,"covered":61,"skipped":0,"pct":10.93},"functions":{"total":91,"covered":0,"skipped":0,"pct":0},"statements":{"total":586,"covered":80,"skipped":0,"pct":13.65},"branches":{"total":496,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/WorkerUtil.ts": {"lines":{"total":65,"covered":19,"skipped":0,"pct":29.23},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":79,"covered":20,"skipped":0,"pct":25.32},"branches":{"total":34,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/canvasStructureHelpers.ts": {"lines":{"total":16,"covered":3,"skipped":0,"pct":18.75},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":18,"covered":4,"skipped":0,"pct":22.22},"branches":{"total":20,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/featureFlags.ts": {"lines":{"total":2,"covered":1,"skipped":0,"pct":50},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":2,"covered":1,"skipped":0,"pct":50},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/formhelpers.ts": {"lines":{"total":14,"covered":7,"skipped":0,"pct":50},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":19,"covered":12,"skipped":0,"pct":63.16},"branches":{"total":7,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/generators.tsx": {"lines":{"total":17,"covered":10,"skipped":0,"pct":58.82},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":27,"covered":17,"skipped":0,"pct":62.96},"branches":{"total":8,"covered":2,"skipped":0,"pct":25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/helpers.tsx": {"lines":{"total":138,"covered":38,"skipped":0,"pct":27.54},"functions":{"total":29,"covered":0,"skipped":0,"pct":0},"statements":{"total":173,"covered":62,"skipped":0,"pct":35.84},"branches":{"total":91,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/history.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/localStorage.tsx": {"lines":{"total":55,"covered":21,"skipped":0,"pct":38.18},"functions":{"total":9,"covered":3,"skipped":0,"pct":33.33},"statements":{"total":57,"covered":23,"skipped":0,"pct":40.35},"branches":{"total":18,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/storage.ts": {"lines":{"total":120,"covered":27,"skipped":0,"pct":22.5},"functions":{"total":36,"covered":0,"skipped":0,"pct":0},"statements":{"total":165,"covered":49,"skipped":0,"pct":29.7},"branches":{"total":22,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/EntityDefinitions.ts": {"lines":{"total":16,"covered":6,"skipped":0,"pct":37.5},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":6,"skipped":0,"pct":37.5},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/TernServer.ts": {"lines":{"total":374,"covered":63,"skipped":0,"pct":16.84},"functions":{"total":58,"covered":3,"skipped":0,"pct":5.17},"statements":{"total":424,"covered":64,"skipped":0,"pct":15.09},"branches":{"total":228,"covered":2,"skipped":0,"pct":0.88}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/customTreeTypeDefCreator.ts": {"lines":{"total":10,"covered":3,"skipped":0,"pct":30},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":4,"skipped":0,"pct":36.36},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/dataTreeTypeDefCreator.ts": {"lines":{"total":55,"covered":9,"skipped":0,"pct":16.36},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":66,"covered":11,"skipped":0,"pct":16.67},"branches":{"total":28,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/dataTypeSortRules.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/dragResizeHooks.tsx": {"lines":{"total":55,"covered":11,"skipped":0,"pct":20},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":67,"covered":17,"skipped":0,"pct":25.37},"branches":{"total":26,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useClick.tsx": {"lines":{"total":20,"covered":2,"skipped":0,"pct":10},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":20,"covered":2,"skipped":0,"pct":10},"branches":{"total":14,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useClickOpenPropPane.tsx": {"lines":{"total":70,"covered":15,"skipped":0,"pct":21.43},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":73,"covered":16,"skipped":0,"pct":21.92},"branches":{"total":49,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useClipboard.tsx": {"lines":{"total":21,"covered":3,"skipped":0,"pct":14.29},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":3,"skipped":0,"pct":14.29},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useIsScrolledToBottom.tsx": {"lines":{"total":15,"covered":3,"skipped":0,"pct":20},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":3,"skipped":0,"pct":14.29},"branches":{"total":24,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useOrg.tsx": {"lines":{"total":16,"covered":8,"skipped":0,"pct":50},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":8,"skipped":0,"pct":47.06},"branches":{"total":11,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/usePositionedContainerZIndex.ts": {"lines":{"total":21,"covered":6,"skipped":0,"pct":28.57},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":7,"skipped":0,"pct":31.82},"branches":{"total":14,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useProceedToNextTourStep.tsx": {"lines":{"total":14,"covered":6,"skipped":0,"pct":42.86},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":7,"skipped":0,"pct":43.75},"branches":{"total":5,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useScript.tsx": {"lines":{"total":38,"covered":10,"skipped":0,"pct":26.32},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":41,"covered":10,"skipped":0,"pct":24.39},"branches":{"total":20,"covered":4,"skipped":0,"pct":20}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useWidgetSelection.ts": {"lines":{"total":11,"covered":5,"skipped":0,"pct":45.45},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":12,"covered":6,"skipped":0,"pct":50},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/migrations/IncorrectDynamicBindingPathLists.ts": {"lines":{"total":18,"covered":5,"skipped":0,"pct":27.78},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":19,"covered":6,"skipped":0,"pct":31.58},"branches":{"total":8,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/migrations/TableWidget.ts": {"lines":{"total":119,"covered":11,"skipped":0,"pct":9.24},"functions":{"total":16,"covered":0,"skipped":0,"pct":0},"statements":{"total":132,"covered":16,"skipped":0,"pct":12.12},"branches":{"total":120,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/migrations/TextWidgetReplaceTextStyle.ts": {"lines":{"total":23,"covered":3,"skipped":0,"pct":13.04},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":24,"covered":4,"skipped":0,"pct":16.67},"branches":{"total":14,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/validation/common.ts": {"lines":{"total":57,"covered":7,"skipped":0,"pct":12.28},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":58,"covered":8,"skipped":0,"pct":13.79},"branches":{"total":158,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/validation/getIsSafeURL.ts": {"lines":{"total":5,"covered":4,"skipped":0,"pct":80},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":5,"covered":4,"skipped":0,"pct":80},"branches":{"total":3,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/BaseWidget.tsx": {"lines":{"total":117,"covered":52,"skipped":0,"pct":44.44},"functions":{"total":32,"covered":1,"skipped":0,"pct":3.13},"statements":{"total":122,"covered":52,"skipped":0,"pct":42.62},"branches":{"total":43,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/FileDataTypes.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/evaluate.ts": {"lines":{"total":72,"covered":15,"skipped":0,"pct":20.83},"functions":{"total":18,"covered":1,"skipped":0,"pct":5.56},"statements":{"total":73,"covered":15,"skipped":0,"pct":20.55},"branches":{"total":20,"covered":2,"skipped":0,"pct":10}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/evaluationUtils.ts": {"lines":{"total":225,"covered":32,"skipped":0,"pct":14.22},"functions":{"total":49,"covered":2,"skipped":0,"pct":4.08},"statements":{"total":266,"covered":48,"skipped":0,"pct":18.05},"branches":{"total":133,"covered":2,"skipped":0,"pct":1.5}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/validations.ts": {"lines":{"total":250,"covered":10,"skipped":0,"pct":4},"functions":{"total":26,"covered":0,"skipped":0,"pct":0},"statements":{"total":273,"covered":11,"skipped":0,"pct":4.03},"branches":{"total":541,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/test/customQueries.js": {"lines":{"total":19,"covered":17,"skipped":0,"pct":89.47},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":20,"covered":18,"skipped":0,"pct":90},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/test/sagas.ts": {"lines":{"total":32,"covered":32,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":32,"covered":32,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/test/testUtils.tsx": {"lines":{"total":37,"covered":28,"skipped":0,"pct":75.68},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":40,"covered":28,"skipped":0,"pct":70},"branches":{"total":21,"covered":11,"skipped":0,"pct":52.38}} } From 17dbe857e7b7b3f1b712700836e1d2b477026e5f Mon Sep 17 00:00:00 2001 From: sbalaji1192 Date: Tue, 31 Aug 2021 18:02:00 +0530 Subject: [PATCH 02/13] Test --- .../Checklist.test.tsx | 89 +- .../FirstTimeUserExperience/Tasks.test.tsx | 143 +++ .../Editor/FirstTimeUserExperience/Tasks.tsx | 20 +- .../FirstTimeUserExperience/testUtils.ts | 14 +- coverage-summary.json | 931 +++++++++++++----- 5 files changed, 926 insertions(+), 271 deletions(-) create mode 100644 app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.test.tsx diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.test.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.test.tsx index aa9dcabf07f2..15b31b031dc7 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.test.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.test.tsx @@ -1,8 +1,15 @@ +import { bindDataOnCanvas } from "actions/pluginActionActions"; +import { ReduxActionTypes } from "constants/ReduxActionConstants"; +import { + BUILDER_PAGE_URL, + INTEGRATION_EDITOR_URL, + INTEGRATION_TABS, +} from "constants/routes"; import React from "react"; import { Provider } from "react-redux"; -import { render, screen } from "test/testUtils"; +import { fireEvent, render, screen } from "test/testUtils"; import OnboardingChecklist from "./Checklist"; -import { getStore } from "./testUtils"; +import { getStore, initialState } from "./testUtils"; let container: any = null; @@ -11,6 +18,23 @@ jest.mock("pages/Editor/utils", () => ({ useIsWidgetActionConnectionPresent: () => useIsWidgetActionConnectionPresent, })); +const dispatch = jest.fn(); +jest.mock("react-redux", () => { + const originalModule = jest.requireActual("react-redux"); + return { + ...originalModule, + useDispatch: () => dispatch, + }; +}); + +let history: any; +jest.mock("utils/history", () => { + history = jest.fn(); + return { + push: history, + }; +}); + function renderComponent(store: any) { render( @@ -26,6 +50,10 @@ describe("Checklist", () => { document.body.appendChild(container); }); + afterEach(() => { + jest.clearAllMocks(); + }); + it("is rendered", () => { renderComponent(getStore(0)); const wrapper = screen.getAllByTestId("checklist-wrapper"); @@ -48,6 +76,14 @@ describe("Checklist", () => { expect(deployButton.length).toBe(1); const banner = screen.queryAllByTestId("checklist-completion-banner"); expect(banner.length).toBe(0); + fireEvent.click(datasourceButton[0]); + expect(history).toHaveBeenCalledWith( + INTEGRATION_EDITOR_URL( + initialState.entities.pageList.applicationId, + initialState.entities.pageList.currentPageId, + INTEGRATION_TABS.NEW, + ), + ); }); it("with `add a datasource` task checked off", () => { @@ -56,18 +92,55 @@ describe("Checklist", () => { "checklist-datasource-button", ); expect(datasourceButton.length).toBe(0); + const actionButton = screen.queryAllByTestId("checklist-action-button"); + fireEvent.click(actionButton[0]); + expect(history).toHaveBeenCalledWith( + INTEGRATION_EDITOR_URL( + initialState.entities.pageList.applicationId, + initialState.entities.pageList.currentPageId, + INTEGRATION_TABS.ACTIVE, + ), + ); }); it("with `add a query` task checked off", () => { renderComponent(getStore(2)); const actionButton = screen.queryAllByTestId("checklist-action-button"); expect(actionButton.length).toBe(0); + const widgetButton = screen.queryAllByTestId("checklist-widget-button"); + fireEvent.click(widgetButton[0]); + expect(history).toHaveBeenCalledWith( + BUILDER_PAGE_URL( + initialState.entities.pageList.applicationId, + initialState.entities.pageList.currentPageId, + ), + ); + expect(dispatch).toHaveBeenCalledWith({ + type: ReduxActionTypes.TOGGLE_ONBOARDING_WIDGET_SELECTION, + payload: true, + }); + expect(dispatch).toHaveBeenCalledWith({ + type: ReduxActionTypes.SET_FORCE_WIDGET_PANEL_OPEN, + payload: true, + }); }); it("with `add a widget` task checked off", () => { - renderComponent(getStore(3)); + const store: any = getStore(3); + renderComponent(store); const widgetButton = screen.queryAllByTestId("checklist-widget-button"); expect(widgetButton.length).toBe(0); + const connectionButton = screen.queryAllByTestId( + "checklist-connection-button", + ); + fireEvent.click(connectionButton[0]); + expect(dispatch).toHaveBeenCalledWith( + bindDataOnCanvas({ + queryId: store.getState().entities.actions[0].config.id, + applicationId: store.getState().entities.pageList.applicationId, + pageId: store.getState().entities.pageList.currentPageId, + }), + ); }); it("with `connect your data` task checked off", () => { @@ -77,11 +150,19 @@ describe("Checklist", () => { "checklist-connection-button", ); expect(connectionButton.length).toBe(0); + const deployButton = screen.queryAllByTestId("checklist-deploy-button"); + fireEvent.click(deployButton[0]); + expect(dispatch).toHaveBeenCalledWith({ + type: ReduxActionTypes.PUBLISH_APPLICATION_INIT, + payload: { + applicationId: initialState.entities.pageList.applicationId, + }, + }); }); it("with `Deploy your application` task checked off", () => { renderComponent(getStore(5)); - const deployButton = screen.queryAllByTestId("checklist-connection-button"); + const deployButton = screen.queryAllByTestId("checklist-deploy-button"); expect(deployButton.length).toBe(0); const banner = screen.queryAllByTestId("checklist-completion-banner"); expect(banner.length).toBe(1); diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.test.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.test.tsx new file mode 100644 index 000000000000..7736ff1bf9c4 --- /dev/null +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.test.tsx @@ -0,0 +1,143 @@ +import { ReduxActionTypes } from "constants/ReduxActionConstants"; +import { INTEGRATION_EDITOR_URL, INTEGRATION_TABS } from "constants/routes"; +import React from "react"; +import { Provider } from "react-redux"; +import { fireEvent, render, screen } from "test/testUtils"; +import OnboardingTasks from "./Tasks"; +import { getStore, initialState } from "./testUtils"; + +const dispatch = jest.fn(); +jest.mock("react-redux", () => { + const originalModule = jest.requireActual("react-redux"); + return { + ...originalModule, + useDispatch: () => dispatch, + }; +}); + +let history: any; +jest.mock("utils/history", () => { + history = jest.fn(); + return { + push: history, + }; +}); + +let container: any; + +function renderComponent(store: any) { + render( + + + , + container, + ); +} + +describe("Tasks", () => { + beforeEach(() => { + container = document.createElement("div"); + document.body.appendChild(container); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); + + it("is rendered", async () => { + renderComponent(getStore(0)); + const wrapper = await screen.findAllByTestId("onboarding-tasks-wrapper"); + expect(wrapper.length).not.toBe(0); + }); + + it("is showing `Add a datasource` task", async () => { + const store = getStore(0); + renderComponent(store); + const text = await screen.findAllByTestId( + "onboarding-tasks-datasource-text", + ); + expect(text.length).toBe(1); + const button = await screen.findAllByTestId( + "onboarding-tasks-datasource-button", + ); + expect(button.length).toBe(1); + fireEvent.click(button[0]); + expect(history).toHaveBeenCalledWith( + INTEGRATION_EDITOR_URL( + initialState.entities.pageList.applicationId, + initialState.entities.pageList.currentPageId, + INTEGRATION_TABS.NEW, + ), + ); + const alt = await screen.findAllByTestId("onboarding-tasks-datasource-alt"); + expect(alt.length).toBe(1); + fireEvent.click(alt[0]); + expect(dispatch).toHaveBeenCalledWith({ + type: ReduxActionTypes.TOGGLE_ONBOARDING_WIDGET_SELECTION, + payload: true, + }); + expect(dispatch).toHaveBeenCalledWith({ + type: ReduxActionTypes.SET_FORCE_WIDGET_PANEL_OPEN, + payload: true, + }); + }); + + it("is showing `Add a Query` task", async () => { + const store = getStore(1); + renderComponent(store); + const text = await screen.findAllByTestId("onboarding-tasks-action-text"); + expect(text.length).toBe(1); + const button = await screen.findAllByTestId( + "onboarding-tasks-action-button", + ); + expect(button.length).toBe(1); + fireEvent.click(button[0]); + expect(history).toHaveBeenCalledWith( + INTEGRATION_EDITOR_URL( + initialState.entities.pageList.applicationId, + initialState.entities.pageList.currentPageId, + INTEGRATION_TABS.ACTIVE, + ), + ); + const alt = await screen.findAllByTestId("onboarding-tasks-action-alt"); + expect(alt.length).toBe(1); + fireEvent.click(alt[0]); + expect(dispatch).toHaveBeenCalledWith({ + type: ReduxActionTypes.TOGGLE_ONBOARDING_WIDGET_SELECTION, + payload: true, + }); + expect(dispatch).toHaveBeenCalledWith({ + type: ReduxActionTypes.SET_FORCE_WIDGET_PANEL_OPEN, + payload: true, + }); + }); + + it("is showing `Add a widget` task", async () => { + const store = getStore(2); + renderComponent(store); + const text = await screen.findAllByTestId("onboarding-tasks-widget-text"); + expect(text.length).toBe(1); + const button = await screen.findAllByTestId( + "onboarding-tasks-widget-button", + ); + expect(button.length).toBe(1); + fireEvent.click(button[0]); + expect(dispatch).toHaveBeenCalledWith({ + type: ReduxActionTypes.TOGGLE_ONBOARDING_WIDGET_SELECTION, + payload: true, + }); + expect(dispatch).toHaveBeenCalledWith({ + type: ReduxActionTypes.SET_FORCE_WIDGET_PANEL_OPEN, + payload: true, + }); + const alt = await screen.findAllByTestId("onboarding-tasks-widget-alt"); + expect(alt.length).toBe(1); + fireEvent.click(alt[0]); + expect(dispatch).toHaveBeenCalledWith({ + type: ReduxActionTypes.PUBLISH_APPLICATION_INIT, + payload: { + applicationId: initialState.entities.pageList.applicationId, + }, + }); + }); +}); diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx index bb20045e4869..0852d86a5107 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx @@ -88,7 +88,9 @@ export default function OnboardingTasks() { - Start by adding your first Data source + + Start by adding your first Data source + Adding a data source makes creating applications more powerful. Don’t worry if you don’t have any data to hand, we have sample data you can @@ -96,6 +98,7 @@ export default function OnboardingTasks() { { AnalyticsUtil.logEvent("SIGNPOSTING_CREATE_DATASOURCE_CLICK", { from: "CANVAS", @@ -116,6 +119,7 @@ export default function OnboardingTasks() { Alternatively you can also  { AnalyticsUtil.logEvent("SIGNPOSTING_ADD_WIDGET_CLICK", { from: "CANVAS", @@ -136,13 +140,16 @@ export default function OnboardingTasks() { - Next, create a query + + Next, create a query + Great job adding a data source! The next thing you can do is create a query on your data. { AnalyticsUtil.logEvent("SIGNPOSTING_CREATE_QUERY_CLICK", { from: "CANVAS", @@ -163,6 +170,7 @@ export default function OnboardingTasks() { Alternatively you can also  { AnalyticsUtil.logEvent("SIGNPOSTING_ADD_WIDGET_CLICK", { from: "CANVAS", @@ -182,13 +190,16 @@ export default function OnboardingTasks() { - Next, add a widget to start displaying data + + Next, add a widget to start displaying data + Great job adding a data source! The next thing you can do is add widget to start start making your data visual. { AnalyticsUtil.logEvent("SIGNPOSTING_ADD_WIDGET_CLICK", { from: "CANVAS", @@ -204,6 +215,7 @@ export default function OnboardingTasks() { Alternatively you can also  { AnalyticsUtil.logEvent("SIGNPOSTING_PUBLISH_CLICK", { from: "CANVAS", @@ -224,7 +236,7 @@ export default function OnboardingTasks() { ); } return ( - + {content} {showModal && ( Date: Mon, 6 Sep 2021 14:05:34 +0530 Subject: [PATCH 03/13] wip --- app/client/.eslintrc.json | 5 +- .../FirstTimeUserExperience/Checklist.tsx | 47 +++++++++++++++++-- .../IntroductionModal.tsx | 6 +++ .../FirstTimeUserExperience/Statusbar.tsx | 9 +++- .../Editor/FirstTimeUserExperience/Tasks.tsx | 9 ++-- .../FirstTimeUserExperience/constants.ts | 6 +-- app/client/src/sagas/OnboardingSagas.ts | 11 +++++ app/client/src/sagas/PageSagas.tsx | 33 +++++++++++-- app/client/src/sagas/userSagas.tsx | 6 +++ app/client/src/selectors/entitiesSelector.ts | 9 ++++ app/client/src/utils/storage.ts | 33 +++++++++++++ 11 files changed, 151 insertions(+), 23 deletions(-) diff --git a/app/client/.eslintrc.json b/app/client/.eslintrc.json index 202f8aa179ce..7cf9b9c110c4 100644 --- a/app/client/.eslintrc.json +++ b/app/client/.eslintrc.json @@ -35,10 +35,7 @@ "react/jsx-sort-props": "error", "react/jsx-fragments": "error", "react/jsx-no-useless-fragment": "error", - "sort-destructure-keys/sort-destructure-keys": ["error", {"caseSensitive": false}], - "no-console": ["error", { - "allow": ["error"] - }] + "sort-destructure-keys/sort-destructure-keys": ["error", {"caseSensitive": false}] }, "settings": { "react": { diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx index 3d71d9a5a84a..63eaaabc94cc 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx @@ -9,6 +9,7 @@ import { getActions, getCanvasWidgets, getDatasources, + getPageActions, } from "selectors/entitiesSelector"; import { getCurrentThemeDetails } from "selectors/themeSelectors"; import { useIsWidgetActionConnectionPresent } from "pages/Editor/utils"; @@ -125,10 +126,23 @@ const BannerText = styled.p` margin: 8px 0px 16px; `; +const StyledImg = styled.img` + width: 20px; + transform: translate(0px, 5px); + margin-right: 5px; +`; + +const StyledFooter = styled.div` + position: absolute; + bottom: 10px; + cursor: pointer; +`; + export default function OnboardingChecklist() { const dispatch = useDispatch(); const datasources = useSelector(getDatasources); - const actions = useSelector(getActions); + const pageId = useSelector(getCurrentPageId); + const actions = useSelector(getPageActions(pageId)); const widgets = useSelector(getCanvasWidgets); const deps = useSelector(getEvaluationInverseDependencyMap); const isConnectionPresent = useIsWidgetActionConnectionPresent( @@ -138,7 +152,6 @@ export default function OnboardingChecklist() { ); const theme = useSelector(getCurrentThemeDetails); const applicationId = useSelector(getCurrentApplicationId); - const pageId = useSelector(getCurrentPageId); const isDeployed = !!useSelector(getApplicationLastDeployedAt); const isCompleted = useSelector(getFirstTimeUserExperienceComplete); const isFirstTimeUserExperienceEnabled = useSelector( @@ -227,7 +240,7 @@ export default function OnboardingChecklist() { {completedTasks} of 5 -  completed +  complete @@ -275,7 +288,7 @@ export default function OnboardingChecklist() { ), ); }} - text="CREATE A DATASOURCE" + text="CONNECT DATA SOURCE" type="button" /> )} @@ -425,12 +438,36 @@ export default function OnboardingChecklist() { }, }); }} - text="DEPLOY APPLICATIONS" + text="DEPLOY APPLICATION" type="button" /> )} + { + AnalyticsUtil.logEvent("SIGNPOSTING_WELCOME_TOUR_CLICK"); + history.push(APPLICATIONS_URL); + dispatch({ + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + payload: false, + }); + dispatch({ + type: + ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + payload: "", + }); + dispatch({ + type: ReduxActionTypes.ONBOARDING_CREATE_APPLICATION, + }); + }} + > + + + Not sure where to start? Take the welcome tour + + + ); } diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx index f5eb6840f4ab..a82f661a0935 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx @@ -3,6 +3,7 @@ import Button, { Category } from "components/ads/Button"; import { ReduxActionTypes } from "constants/ReduxActionConstants"; import { APPLICATIONS_URL } from "constants/routes"; import React from "react"; +import { useEffect } from "react"; import { useDispatch } from "react-redux"; import styled from "styled-components"; import AnalyticsUtil from "utils/AnalyticsUtil"; @@ -120,6 +121,11 @@ export default function IntroductionModal({ close }: IntroductionModalProps) { AnalyticsUtil.logEvent("SIGNPOSTING_BUILD_APP_CLICK"); close(); }; + useEffect(() => { + dispatch({ + type: ReduxActionTypes.GET_ALL_APPLICATION_INIT, + }); + }, []); return ( diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx index 74cd20d12c07..2bc6be29b908 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx @@ -15,6 +15,7 @@ import { getActions, getCanvasWidgets, getDatasources, + getPageActions, } from "selectors/entitiesSelector"; import { getFirstTimeUserExperienceComplete } from "selectors/onboardingSelectors"; import styled from "styled-components"; @@ -99,7 +100,8 @@ export function StatusProgressbar(props: StatusProgressbarType) { const useStatus = (): { percentage: number; content: string } => { const datasources = useSelector(getDatasources); - const actions = useSelector(getActions); + const pageId = useSelector(getCurrentPageId); + const actions = useSelector(getPageActions(pageId)); const widgets = useSelector(getCanvasWidgets); const deps = useSelector(getEvaluationInverseDependencyMap); const isConnectionPresent = useIsWidgetActionConnectionPresent( @@ -172,6 +174,9 @@ export function OnboardingStatusbar(props: RouteComponentProps) { const isChecklistPage = props.location.pathname.indexOf("/checklist") > -1; const isGenerateAppPage = props.location.pathname.indexOf("/generate-page/form") > -1; + const isFirstTimeUserExperienceComplete = useSelector( + getFirstTimeUserExperienceComplete, + ); if (isGenerateAppPage) { return null; } @@ -181,7 +186,7 @@ export function OnboardingStatusbar(props: RouteComponentProps) { type: ReduxActionTypes.END_FIRST_TIME_USER_EXPERIENCE, }); }; - if (percentage == 100) { + if (percentage == 100 && !isFirstTimeUserExperienceComplete) { dispatch({ type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, payload: false, diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx index 0852d86a5107..dc6e02fef8b3 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx @@ -13,6 +13,7 @@ import { getActions, getCanvasWidgets, getDatasources, + getPageActions, } from "selectors/entitiesSelector"; import { getFirstTimeUserExperienceModal } from "selectors/onboardingSelectors"; import { useSelector } from "store"; @@ -78,7 +79,7 @@ export default function OnboardingTasks() { const pageId = useSelector(getCurrentPageId); let content; const datasources = useSelector(getDatasources); - const actions = useSelector(getActions); + const actions = useSelector(getPageActions(pageId)); const widgets = useSelector(getCanvasWidgets); const dispatch = useDispatch(); const showModal = useSelector(getFirstTimeUserExperienceModal); @@ -128,7 +129,7 @@ export default function OnboardingTasks() { dispatch(forceOpenWidgetPanel(true)); }} > - Add widgets + add a widget  first. @@ -179,7 +180,7 @@ export default function OnboardingTasks() { dispatch(forceOpenWidgetPanel(true)); }} > - Add widgets + add a widget @@ -228,7 +229,7 @@ export default function OnboardingTasks() { }); }} > - Deploy your applications + deploy your application . diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts b/app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts index 8637fbf7866f..44258865ca7b 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts @@ -1,6 +1,6 @@ -export const ONBOARDING_STEPS_FIRST = "First: Add a Datasource"; -export const ONBOARDING_STEPS_FIRST_ALT = "Next: Add a Datasource"; -export const ONBOARDING_STEPS_SECOND = "Next: Add a Query"; +export const ONBOARDING_STEPS_FIRST = "First: Create a Datasource"; +export const ONBOARDING_STEPS_FIRST_ALT = "Next: Create a Datasource"; +export const ONBOARDING_STEPS_SECOND = "Next: Create a Query"; export const ONBOARDING_STEPS_THIRD = "Next: Add a Widget"; export const ONBOARDING_STEPS_FOURTH = "Next: Connect data to Widget"; export const ONBOARDING_STEPS_FIVETH = "Next: Deploy your application"; diff --git a/app/client/src/sagas/OnboardingSagas.ts b/app/client/src/sagas/OnboardingSagas.ts index 0d545b5ca7ba..b94966b8c8c0 100644 --- a/app/client/src/sagas/OnboardingSagas.ts +++ b/app/client/src/sagas/OnboardingSagas.ts @@ -31,6 +31,7 @@ import { getOnboardingState, setEnableFirstTimeUserExperience as storeEnableFirstTimerUserExperience, setFirstTimeUserExperienceApplicationId as storeFirstTimeUserExperienceApplicationId, + setFirstTimeUserExperienceIntroModalVisibility as storeFirstTimeUserExperienceIntroModalVisibility, setOnboardingState, setOnboardingWelcomeState, } from "utils/storage"; @@ -923,6 +924,12 @@ function* setFirstTimeUserExperienceApplicationId(action: ReduxAction) { yield storeFirstTimeUserExperienceApplicationId(action.payload); } +function* setFirstTimeUserExperienceIntroModalVisibility( + action: ReduxAction, +) { + yield storeFirstTimeUserExperienceIntroModalVisibility(action.payload); +} + function* endFirstTimeUserExperienceSaga() { const firstTimeUserExperienceAppId = yield select( getFirstTimeUserExperienceApplicationId, @@ -1010,6 +1017,10 @@ function* onboardingActionSagas() { ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, setFirstTimeUserExperienceApplicationId, ), + takeLatest( + ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL, + setFirstTimeUserExperienceIntroModalVisibility, + ), takeLatest( ReduxActionTypes.END_FIRST_TIME_USER_EXPERIENCE, endFirstTimeUserExperienceSaga, diff --git a/app/client/src/sagas/PageSagas.tsx b/app/client/src/sagas/PageSagas.tsx index 0075d6be239e..d725268dfb8e 100644 --- a/app/client/src/sagas/PageSagas.tsx +++ b/app/client/src/sagas/PageSagas.tsx @@ -100,6 +100,10 @@ import { import { getAppMode } from "selectors/applicationSelectors"; import { setCrudInfoModalData } from "actions/crudInfoModalActions"; import { selectMultipleWidgetsAction } from "actions/widgetSelectionActions"; +import { + getIsFirstTimeUserExperienceEnabled, + getFirstTimeUserExperienceApplicationId, +} from "selectors/onboardingSelectors"; import WidgetFactory from "utils/WidgetFactory"; const WidgetTypes = WidgetFactory.widgetTypes; @@ -509,12 +513,31 @@ export function* createPageSaga( }); // route to generate template for new page created if (!createPageAction.payload.blockNavigation) { - history.push( - getGenerateTemplateURL( - createPageAction.payload.applicationId, - response.data.id, - ), + const firstTimeUserExperienceApplicationId = yield select( + getFirstTimeUserExperienceApplicationId, + ); + const isFirstTimeUserExperienceEnabled = yield select( + getIsFirstTimeUserExperienceEnabled, ); + if ( + firstTimeUserExperienceApplicationId == + createPageAction.payload.applicationId && + isFirstTimeUserExperienceEnabled + ) { + history.push( + BUILDER_PAGE_URL( + createPageAction.payload.applicationId, + response.data.id, + ), + ); + } else { + history.push( + getGenerateTemplateURL( + createPageAction.payload.applicationId, + response.data.id, + ), + ); + } } } } catch (error) { diff --git a/app/client/src/sagas/userSagas.tsx b/app/client/src/sagas/userSagas.tsx index fd8e70545199..8a1f2aea9b66 100644 --- a/app/client/src/sagas/userSagas.tsx +++ b/app/client/src/sagas/userSagas.tsx @@ -57,6 +57,7 @@ import { initSocketConnection } from "actions/websocketActions"; import { getEnableFirstTimeUserExperience, getFirstTimeUserExperienceApplicationId, + getFirstTimeUserExperienceIntroModalVisibility, } from "utils/storage"; export function* createUserSaga( @@ -426,6 +427,7 @@ function* updateFirstTimeUserExperienceSage() { if (enable) { const applicationId = yield getFirstTimeUserExperienceApplicationId() || ""; + const introModalVisibility = yield getFirstTimeUserExperienceIntroModalVisibility(); yield put({ type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, payload: true, @@ -434,6 +436,10 @@ function* updateFirstTimeUserExperienceSage() { type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, payload: applicationId, }); + yield put({ + type: ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL, + payload: introModalVisibility, + }); } } diff --git a/app/client/src/selectors/entitiesSelector.ts b/app/client/src/selectors/entitiesSelector.ts index 217c60028076..449d9046b215 100644 --- a/app/client/src/selectors/entitiesSelector.ts +++ b/app/client/src/selectors/entitiesSelector.ts @@ -20,6 +20,7 @@ import { JSCollectionDataState } from "reducers/entityReducers/jsActionsReducer" import { JSCollection } from "entities/JSCollection"; import { GenerateCRUDEnabledPluginMap } from "../api/PluginApi"; import { APP_MODE } from "entities/App"; +import { stat } from "fs"; export const getEntities = (state: AppState): AppState["entities"] => state.entities; @@ -509,3 +510,11 @@ export const getIsOnboardingTasksView = createSelector( export const getIsOnboardingWidgetSelection = (state: AppState) => state.ui.onBoarding.inOnboardingWidgetSelection; + +export const getPageActions = (pageId = "") => { + return (state: AppState) => { + return state.entities.actions.filter((action) => { + return action.config.pageId == pageId; + }); + }; +}; diff --git a/app/client/src/utils/storage.ts b/app/client/src/utils/storage.ts index 770d2f74ef30..8d9cfe9ba118 100644 --- a/app/client/src/utils/storage.ts +++ b/app/client/src/utils/storage.ts @@ -16,6 +16,8 @@ const STORAGE_KEYS: { [id: string]: string } = { ENABLE_FIRST_TIME_USER_EXPERIENCE: "ENABLE_FIRST_TIME_USER_EXPERIENCE", FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID: "FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID", + FIRST_TIME_USER_EXPERIENCE_INTRO_MODAL_VISIBILITY: + "FIRST_TIME_USER_EXPERIENCE_INTRO_MODAL_VISIBILITY", }; const store = localforage.createInstance({ @@ -292,3 +294,34 @@ export const getFirstTimeUserExperienceApplicationId = async () => { log.error(error); } }; + +export const setFirstTimeUserExperienceIntroModalVisibility = async ( + flag: boolean, +) => { + try { + await store.setItem( + STORAGE_KEYS.FIRST_TIME_USER_EXPERIENCE_INTRO_MODAL_VISIBILITY, + flag, + ); + return true; + } catch (error) { + log.error( + "An error occurred while setting FIRST_TIME_USER_EXPERIENCE_INTRO_MODAL_VISIBILITY", + ); + log.error(error); + } +}; + +export const getFirstTimeUserExperienceIntroModalVisibility = async () => { + try { + const flag = await store.getItem( + STORAGE_KEYS.FIRST_TIME_USER_EXPERIENCE_INTRO_MODAL_VISIBILITY, + ); + return flag; + } catch (error) { + log.error( + "An error occurred while fetching FIRST_TIME_USER_EXPERIENCE_INTRO_MODAL_VISIBILITY", + ); + log.error(error); + } +}; From b5ae2af0406b8e24e32385dd3d9fda0fdcea49cd Mon Sep 17 00:00:00 2001 From: sbalaji1192 Date: Mon, 6 Sep 2021 15:09:46 +0530 Subject: [PATCH 04/13] wip --- .../pages/Editor/FirstTimeUserExperience/Checklist.tsx | 10 ++++++---- .../pages/Editor/FirstTimeUserExperience/Statusbar.tsx | 1 - .../src/pages/Editor/FirstTimeUserExperience/Tasks.tsx | 1 - app/client/src/selectors/entitiesSelector.ts | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx index 63eaaabc94cc..04dafebd7eb3 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx @@ -6,7 +6,6 @@ import styled from "styled-components"; import { useDispatch } from "react-redux"; import { useSelector } from "store"; import { - getActions, getCanvasWidgets, getDatasources, getPageActions, @@ -41,6 +40,7 @@ const Wrapper = styled.div` padding: 15px 55px; background: #fff; height: calc(100vh - 35px); + overflow: auto; `; const Pageheader = styled.h4` @@ -133,9 +133,9 @@ const StyledImg = styled.img` `; const StyledFooter = styled.div` - position: absolute; - bottom: 10px; cursor: pointer; + display: inline-block; + margin-top: 20px; `; export default function OnboardingChecklist() { @@ -328,6 +328,7 @@ export default function OnboardingChecklist() { ), ); }} + tag="button" text="CREATE A QUERY" type="button" /> @@ -398,8 +399,9 @@ export default function OnboardingChecklist() { : Category.tertiary } data-testid="checklist-connection-button" - disabled={Object.keys(widgets).length == 1} + disabled={Object.keys(widgets).length == 1 || !actions.length} onClick={onconnectYourWidget} + tag="button" text="CONNECT DATA TO WIDGETS" type="button" /> diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx index 2bc6be29b908..cffd11605637 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx @@ -12,7 +12,6 @@ import { getCurrentPageId, } from "selectors/editorSelectors"; import { - getActions, getCanvasWidgets, getDatasources, getPageActions, diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx index dc6e02fef8b3..e406d59e3efd 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx @@ -10,7 +10,6 @@ import { getCurrentPageId, } from "selectors/editorSelectors"; import { - getActions, getCanvasWidgets, getDatasources, getPageActions, diff --git a/app/client/src/selectors/entitiesSelector.ts b/app/client/src/selectors/entitiesSelector.ts index 449d9046b215..166d3b1b13f3 100644 --- a/app/client/src/selectors/entitiesSelector.ts +++ b/app/client/src/selectors/entitiesSelector.ts @@ -20,7 +20,6 @@ import { JSCollectionDataState } from "reducers/entityReducers/jsActionsReducer" import { JSCollection } from "entities/JSCollection"; import { GenerateCRUDEnabledPluginMap } from "../api/PluginApi"; import { APP_MODE } from "entities/App"; -import { stat } from "fs"; export const getEntities = (state: AppState): AppState["entities"] => state.entities; @@ -503,7 +502,8 @@ export const getIsOnboardingTasksView = createSelector( getCanvasWidgets, (datasources, actions, widgets) => { return ( - !datasources.length || !actions.length || Object.keys(widgets).length == 1 + (!datasources.length || !actions.length) && + Object.keys(widgets).length == 1 ); }, ); From 01a994afa6be094e3361ce73a32e973c37184445 Mon Sep 17 00:00:00 2001 From: sbalaji1192 Date: Mon, 6 Sep 2021 15:26:59 +0530 Subject: [PATCH 05/13] wip --- app/client/src/selectors/entitiesSelector.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/app/client/src/selectors/entitiesSelector.ts b/app/client/src/selectors/entitiesSelector.ts index 166d3b1b13f3..180bad80e36d 100644 --- a/app/client/src/selectors/entitiesSelector.ts +++ b/app/client/src/selectors/entitiesSelector.ts @@ -497,14 +497,9 @@ export const widgetsMapWithParentModalId = (state: AppState) => { }; export const getIsOnboardingTasksView = createSelector( - getDatasources, - getActions, getCanvasWidgets, - (datasources, actions, widgets) => { - return ( - (!datasources.length || !actions.length) && - Object.keys(widgets).length == 1 - ); + (widgets) => { + return Object.keys(widgets).length == 1; }, ); From 14b4b7691d4b2966816880e3f197cca19c55d4c1 Mon Sep 17 00:00:00 2001 From: sbalaji1192 Date: Mon, 6 Sep 2021 15:30:57 +0530 Subject: [PATCH 06/13] wip --- app/client/.eslintrc.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/client/.eslintrc.json b/app/client/.eslintrc.json index 7cf9b9c110c4..202f8aa179ce 100644 --- a/app/client/.eslintrc.json +++ b/app/client/.eslintrc.json @@ -35,7 +35,10 @@ "react/jsx-sort-props": "error", "react/jsx-fragments": "error", "react/jsx-no-useless-fragment": "error", - "sort-destructure-keys/sort-destructure-keys": ["error", {"caseSensitive": false}] + "sort-destructure-keys/sort-destructure-keys": ["error", {"caseSensitive": false}], + "no-console": ["error", { + "allow": ["error"] + }] }, "settings": { "react": { From 59a358b9141df6e00b8e7bf9dbc5838f63dd6eae Mon Sep 17 00:00:00 2001 From: sbalaji1192 Date: Wed, 8 Sep 2021 00:25:16 +0530 Subject: [PATCH 07/13] WIP --- .../Editor/FirstTimeUserExperience/Checklist.tsx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx index 04dafebd7eb3..6ef90f98f2ec 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx @@ -79,8 +79,9 @@ const StyledListItem = styled.li` } `; -const ChecklistText = styled.div` +const ChecklistText = styled.div<{ active: boolean }>` flex-basis: calc(100% - 268px); + color: ${(props) => (props.active ? props.theme.colors.text.normal : "")}; & span { font-weight: 700; } @@ -264,7 +265,7 @@ export default function OnboardingChecklist() { /> - + Connect your data source to start building an application. @@ -304,7 +305,7 @@ export default function OnboardingChecklist() { /> - + Create a query of your data source. {!actions.length && ( @@ -351,7 +352,7 @@ export default function OnboardingChecklist() { /> - + 1}> Start visualising your application using widgets. {Object.keys(widgets).length == 1 && ( @@ -388,7 +389,7 @@ export default function OnboardingChecklist() { /> - + Connect your data to the widgets using JavaScript. {!isConnectionPresent && ( @@ -418,7 +419,7 @@ export default function OnboardingChecklist() { /> - + Deploy your application, and see your creation live. {!isDeployed && ( From f2e08a1efc8d0869ef4b6b83298d005c8514e8e5 Mon Sep 17 00:00:00 2001 From: sbalaji1192 Date: Wed, 8 Sep 2021 12:04:29 +0530 Subject: [PATCH 08/13] wip --- .../FirstTimeUserExperience/IntroductionModal.tsx | 10 +++++----- .../src/pages/Editor/FirstTimeUserExperience/Tasks.tsx | 6 +++--- .../pages/Editor/FirstTimeUserExperience/testUtils.ts | 6 ++++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx index a82f661a0935..f742adad5881 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx @@ -141,27 +141,27 @@ export default function IntroductionModal({ close }: IntroductionModalProps) { diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx b/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx index e406d59e3efd..1bfa2748de99 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx @@ -86,7 +86,7 @@ export default function OnboardingTasks() { content = ( - + Start by adding your first Data source @@ -138,7 +138,7 @@ export default function OnboardingTasks() { content = ( - + Next, create a query @@ -188,7 +188,7 @@ export default function OnboardingTasks() { content = ( - + Next, add a widget to start displaying data diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/testUtils.ts b/app/client/src/pages/Editor/FirstTimeUserExperience/testUtils.ts index 868bfd54cebf..10f4b4b61980 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/testUtils.ts +++ b/app/client/src/pages/Editor/FirstTimeUserExperience/testUtils.ts @@ -1,10 +1,11 @@ import configureStore from "redux-mock-store"; +const PAGE_ID = 2; export const initialState: any = { entities: { pageList: { applicationId: 1, - currentPageId: 2, + currentPageId: PAGE_ID, }, datasources: { list: [], @@ -52,13 +53,14 @@ export function getStore(step: number) { state.entities.datasources.list.push({}); break; case 2: - state.entities.actions.push({}); + state.entities.actions.push({ config: { pageId: PAGE_ID } }); break; case 3: state.entities.actions = [ { config: { id: Math.random(), + pageId: PAGE_ID, }, }, ]; From ee1134af563daf1a8fc2f66ef407273e4b042071 Mon Sep 17 00:00:00 2001 From: sbalaji1192 Date: Thu, 9 Sep 2021 10:53:36 +0530 Subject: [PATCH 09/13] CR changes --- .../components/editorComponents/Sidebar.tsx | 16 +- app/client/src/constants/DefaultTheme.tsx | 6 + .../src/constants/ReduxActionConstants.tsx | 20 +- .../src/constants/ThirdPartyConstants.tsx | 1 + app/client/src/constants/messages.ts | 100 +++++++ app/client/src/constants/routes.ts | 13 + app/client/src/pages/Applications/index.tsx | 64 ++--- .../FirstTimeUserExperience/constants.ts | 7 - .../Checklist.test.tsx | 0 .../Checklist.tsx | 268 ++++++++++++------ .../IntroductionModal.tsx | 81 +++--- .../Statusbar.test.tsx | 0 .../Statusbar.tsx | 75 ++--- .../Tasks.test.tsx | 0 .../Tasks.tsx | 77 +++-- .../Editor/FirstTimeUserOnboarding/Utils.ts | 17 ++ .../testUtils.ts | 5 +- .../GeneratePageForm/GeneratePageForm.tsx | 4 +- app/client/src/pages/Editor/MainContainer.tsx | 2 +- app/client/src/pages/Editor/WidgetsEditor.tsx | 10 +- .../reducers/uiReducers/onBoardingReducer.ts | 26 +- app/client/src/sagas/ApplicationSagas.tsx | 18 +- app/client/src/sagas/OnboardingSagas.ts | 75 +++-- app/client/src/sagas/PageSagas.tsx | 12 +- app/client/src/sagas/userSagas.tsx | 22 +- .../src/selectors/onboardingSelectors.tsx | 18 +- app/client/src/utils/storage.ts | 51 ++-- 27 files changed, 593 insertions(+), 395 deletions(-) delete mode 100644 app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts rename app/client/src/pages/Editor/{FirstTimeUserExperience => FirstTimeUserOnboarding}/Checklist.test.tsx (100%) rename app/client/src/pages/Editor/{FirstTimeUserExperience => FirstTimeUserOnboarding}/Checklist.tsx (64%) rename app/client/src/pages/Editor/{FirstTimeUserExperience => FirstTimeUserOnboarding}/IntroductionModal.tsx (66%) rename app/client/src/pages/Editor/{FirstTimeUserExperience => FirstTimeUserOnboarding}/Statusbar.test.tsx (100%) rename app/client/src/pages/Editor/{FirstTimeUserExperience => FirstTimeUserOnboarding}/Statusbar.tsx (71%) rename app/client/src/pages/Editor/{FirstTimeUserExperience => FirstTimeUserOnboarding}/Tasks.test.tsx (100%) rename app/client/src/pages/Editor/{FirstTimeUserExperience => FirstTimeUserOnboarding}/Tasks.tsx (72%) create mode 100644 app/client/src/pages/Editor/FirstTimeUserOnboarding/Utils.ts rename app/client/src/pages/Editor/{FirstTimeUserExperience => FirstTimeUserOnboarding}/testUtils.ts (93%) diff --git a/app/client/src/components/editorComponents/Sidebar.tsx b/app/client/src/components/editorComponents/Sidebar.tsx index a89cc4722abd..10b448daf6e2 100644 --- a/app/client/src/components/editorComponents/Sidebar.tsx +++ b/app/client/src/components/editorComponents/Sidebar.tsx @@ -10,10 +10,10 @@ import PerformanceTracker, { import { Layers } from "constants/Layers"; import { useSelector } from "store"; import { - getFirstTimeUserExperienceComplete, - getIsFirstTimeUserExperienceEnabled, + getFirstTimeUserOnboardingComplete, + getIsFirstTimeUserOnboardingEnabled, } from "selectors/onboardingSelectors"; -import OnboardingStatusbar from "pages/Editor/FirstTimeUserExperience/Statusbar"; +import OnboardingStatusbar from "pages/Editor/FirstTimeUserOnboarding/Statusbar"; const SidebarWrapper = styled.div` background-color: ${Colors.MINE_SHAFT}; @@ -34,11 +34,11 @@ const SidebarWrapper = styled.div` const initialPanel = { component: ExplorerSidebar }; export const Sidebar = memo(() => { - const enableFirstTimeUserExperience = useSelector( - getIsFirstTimeUserExperienceEnabled, + const enableFirstTimeUserOnboarding = useSelector( + getIsFirstTimeUserOnboardingEnabled, ); - const isFirstTimeUserExperienceComplete = useSelector( - getFirstTimeUserExperienceComplete, + const isFirstTimeUserOnboardingComplete = useSelector( + getFirstTimeUserOnboardingComplete, ); PerformanceTracker.startTracking(PerformanceTransactionName.SIDE_BAR_MOUNT); useEffect(() => { @@ -46,7 +46,7 @@ export const Sidebar = memo(() => { }); return ( - {(enableFirstTimeUserExperience || isFirstTimeUserExperienceComplete) && ( + {(enableFirstTimeUserOnboarding || isFirstTimeUserOnboardingComplete) && ( )} diff --git a/app/client/src/constants/DefaultTheme.tsx b/app/client/src/constants/DefaultTheme.tsx index 9e945619dae8..888c8dab6475 100644 --- a/app/client/src/constants/DefaultTheme.tsx +++ b/app/client/src/constants/DefaultTheme.tsx @@ -2665,6 +2665,12 @@ export const theme: Theme = { letterSpacing: -0.221538, fontWeight: "normal", }, + p4: { + fontSize: 13, + lineHeight: 16, + letterSpacing: -0.221538, + fontWeight: 600, + }, btnLarge: { fontSize: 13, lineHeight: 15, diff --git a/app/client/src/constants/ReduxActionConstants.tsx b/app/client/src/constants/ReduxActionConstants.tsx index 96d5f79ef249..292622ffde60 100644 --- a/app/client/src/constants/ReduxActionConstants.tsx +++ b/app/client/src/constants/ReduxActionConstants.tsx @@ -550,17 +550,17 @@ export const ReduxActionTypes = { GROUP_WIDGETS_INIT: "GROUP_WIDGETS_INIT", REFACTOR_JS_ACTION_NAME: "REFACTOR_JS_ACTION_NAME", TOGGLE_ONBOARDING_WIDGET_SELECTION: "TOGGLE_ONBOARDING_WIDGET_SELECTION", - SET_ENABLE_FIRST_TIME_USER_EXPERIENCE: - "SET_ENABLE_FIRST_TIME_USER_EXPERIENCE", - SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID: - "SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID", - SET_FIRST_TIME_USER_EXPERIENCE_COMPLETE: - "SET_FIRST_TIME_USER_EXPERIENCE_COMPLETE", - SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL: - "SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL", + SET_ENABLE_FIRST_TIME_USER_ONBOARDING: + "SET_ENABLE_FIRST_TIME_USER_ONBOARDING", + SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID: + "SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID", + SET_FIRST_TIME_USER_ONBOARDING_COMPLETE: + "SET_FIRST_TIME_USER_ONBOARDING_COMPLETE", + SET_SHOW_FIRST_TIME_USER_ONBOARDING_MODAL: + "SET_SHOW_FIRST_TIME_USER_ONBOARDING_MODAL", SET_FORCE_WIDGET_PANEL_OPEN: "SET_FORCE_WIDGET_PANEL_OPEN", - END_FIRST_TIME_USER_EXPERIENCE: "END_FIRST_TIME_USER_EXPERIENCE", - UNDO_END_FIRST_TIME_USER_EXPERIENCE: "UNDO_END_FIRST_TIME_USER_EXPERIENCE", + END_FIRST_TIME_USER_ONBOARDING: "END_FIRST_TIME_USER_ONBOARDING", + UNDO_END_FIRST_TIME_USER_ONBOARDING: "UNDO_END_FIRST_TIME_USER_ONBOARDING", }; export type ReduxActionType = typeof ReduxActionTypes[keyof typeof ReduxActionTypes]; diff --git a/app/client/src/constants/ThirdPartyConstants.tsx b/app/client/src/constants/ThirdPartyConstants.tsx index 3edf4054a4a8..a6b73a89d296 100644 --- a/app/client/src/constants/ThirdPartyConstants.tsx +++ b/app/client/src/constants/ThirdPartyConstants.tsx @@ -3,3 +3,4 @@ export const S3_BUCKET_URL = "https://s3.us-east-2.amazonaws.com/assets.appsmith.com"; export const TELEMETRY_URL = "https://docs.appsmith.com/telemetry"; export const DISCORD_URL = "https://discord.gg/rBTTVJp"; +export const ASSETS_CDN_URL = "https://assets.appsmith.com"; diff --git a/app/client/src/constants/messages.ts b/app/client/src/constants/messages.ts index cab0557223e5..bdc00ce3a302 100644 --- a/app/client/src/constants/messages.ts +++ b/app/client/src/constants/messages.ts @@ -524,3 +524,103 @@ export const SNIPING_SELECT_WIDGET_AGAIN = () => export const SNIPING_NOT_SUPPORTED = () => "Binding on selection is not supported for this type of widget!"; + +//First Time User Onboarding +//Checklist page +export enum ONBOARDING_CHECKLIST_ACTIONS { + CONNECT_A_DATASOURCE = "CONNECT DATA SOURCE", + CREATE_A_QUERY = "CREATE A QUERY", + ADD_WIDGETS = "ADD WIDGETS", + CONNECT_DATA_TO_WIDGET = "CONNECT DATA TO WIDGET", + DEPLOY_APPLICATIONS = "DEPLOY APPLICATION", +} + +export const ONBOARDING_CHECKLIST_BANNER_HEADER = () => + "Amazing work! You’ve explored the basics of Appsmith"; +export const ONBOARDING_CHECKLIST_BANNER_BODY = () => + "You can carry on here, or explore the homepage to see how your projects are stored."; +export const ONBOARDING_CHECKLIST_BANNER_BUTTON = () => "Explore homepage"; + +export const ONBOARDING_CHECKLIST_HEADER = () => "👋 Welcome to Appsmith!"; +export const ONBOARDING_CHECKLIST_BODY = () => + "Let’s get you started on your first application, explore Appsmith yourself or follow our guide below to discover what Appsmith can do."; +export const ONBOARDING_CHECKLIST_COMPLETE_TEXT = () => "complete"; + +export const ONBOARDING_CHECKLIST_CONNECT_DATA_SOURCE = { + bold: () => "Connect your data source", + normal: () => "to start building an application.", +}; + +export const ONBOARDING_CHECKLIST_CREATE_A_QUERY = { + bold: () => "Create a query", + normal: () => "of your data source.", +}; + +export const ONBOARDING_CHECKLIST_ADD_WIDGETS = { + bold: () => "Start visualising your application", + normal: () => "using widgets.", +}; + +export const ONBOARDING_CHECKLIST_CONNECT_DATA_TO_WIDGET = { + bold: () => "Connect your data to the widgets", + normal: () => "using JavaScript.", +}; + +export const ONBOARDING_CHECKLIST_DEPLOY_APPLICATIONS = { + bold: () => "Deploy your application", + normal: () => ", and see your creation live.", +}; + +export const ONBOARDING_CHECKLIST_FOOTER = () => + "Not sure where to start? Take the welcome tour"; + +//Introduction modal +export const HOW_APPSMITH_WORKS = () => "Here’s how Appsmith works"; +export const ONBOARDING_INTRO_CONNECT_YOUR_DATABASE = () => + "Connect your database or API"; +export const ONBOARDING_INTRO_CONNECT_DATA_WIDGET = () => + "Connect queried data to pre-built widgets and customise with Javascript."; +export const ONBOARDING_INTRO_PUBLISH = () => + "Instantly publish and share your apps"; +export const BUILD_MY_FIRST_APP = () => "Build my first app"; +export const ONBOARDING_INTRO_FOOTER = () => + "Want more help getting started, let’s"; +export const BUILD_APP_TOGETHER = () => "build an app together."; + +//Statusbar +export const ONBOARDING_STATUS_STEPS_FIRST = () => "First: Create a Datasource"; +export const ONBOARDING_STATUS_STEPS_FIRST_ALT = () => + "Next: Create a Datasource"; +export const ONBOARDING_STATUS_STEPS_SECOND = () => "Next: Create a Query"; +export const ONBOARDING_STATUS_STEPS_THIRD = () => "Next: Add a Widget"; +export const ONBOARDING_STATUS_STEPS_FOURTH = () => + "Next: Connect data to Widget"; +export const ONBOARDING_STATUS_STEPS_FIVETH = () => + "Next: Deploy your application"; +export const ONBOARDING_STATUS_STEPS_SIXTH = () => "Completed 🎉"; +export const ONBOARDING_STATUS_GET_STARTED = () => "GET STARTED"; + +//Tasks +//1. datasource +export const ONBOARDING_TASK_DATASOURCE_HEADER = () => + "Start by adding your first Data source"; +export const ONBOARDING_TASK_DATASOURCE_BODY = () => + "Adding a data source makes creating applications more powerful. Don’t worry if you don’t have any data to hand, we have sample data you can use."; +export const ONBOARDING_TASK_DATASOURCE_BUTTON = () => "+ Add a data source"; +export const ONBOARDING_TASK_DATASOURCE_FOOTER_ACTION = () => "add a widget"; +export const ONBOARDING_TASK_DATASOURCE_FOOTER = () => "first."; +//2. query +export const ONBOARDING_TASK_QUERY_HEADER = () => "Next, create a query"; +export const ONBOARDING_TASK_QUERY_BODY = () => + "Great job adding a data source! The next thing you can do is create a query on your data."; +export const ONBOARDING_TASK_QUERY_BUTTON = () => "+ create a query"; +export const ONBOARDING_TASK_QUERY_FOOTER_ACTION = () => "add a widget"; +//2. widget +export const ONBOARDING_TASK_WIDGET_HEADER = () => + "Next, add a widget to start displaying data"; +export const ONBOARDING_TASK_WIDGET_BODY = () => + "Great job adding a data source! The next thing you can do is add widget to start start making your data visual."; +export const ONBOARDING_TASK_WIDGET_BUTTON = () => "+ Add a Widget"; +export const ONBOARDING_TASK_WIDGET_FOOTER_ACTION = () => + "deploy your application"; +export const ONBOARDING_TASK_FOOTER = () => "Alternatively you can also"; diff --git a/app/client/src/constants/routes.ts b/app/client/src/constants/routes.ts index 89c6985d6ee5..0233df05830c 100644 --- a/app/client/src/constants/routes.ts +++ b/app/client/src/constants/routes.ts @@ -267,3 +267,16 @@ export const matchBuilderPath = match(BUILDER_URL); export const matchJSObjectPath = match(JS_COLLECTION_ID_URL()); export const matchViewerPath = match(getApplicationViewerPageURL()); + +export const BUILDER_URL_REGEX = /\/applications\/(.[^\/]*)\/pages\/(.[^\/]*)\//; +export const extractAppIdAndPageIdFromUrl = (url = "") => { + const matched = url.match(BUILDER_URL_REGEX); + if (matched) { + return { + applicationId: matched[1], + pageId: matched[2], + }; + } + + return {}; +}; diff --git a/app/client/src/pages/Applications/index.tsx b/app/client/src/pages/Applications/index.tsx index fe8039b0667a..8d10a8c0cc8a 100644 --- a/app/client/src/pages/Applications/index.tsx +++ b/app/client/src/pages/Applications/index.tsx @@ -80,10 +80,12 @@ import AnalyticsUtil from "utils/AnalyticsUtil"; import { createOrganizationSubmitHandler } from "../organization/helpers"; import UserApi from "api/UserApi"; import ImportApplicationModal from "./ImportApplicationModal"; -import { SIGNUP_SUCCESS_URL } from "constants/routes"; +import { + extractAppIdAndPageIdFromUrl, + SIGNUP_SUCCESS_URL, +} from "constants/routes"; import { getIsSafeRedirectURL } from "utils/helpers"; -import { getCurrentThemeDetails } from "selectors/themeSelectors"; const OrgDropDown = styled.div` display: flex; @@ -880,12 +882,6 @@ function ApplicationsSection(props: any) { } type ApplicationProps = { applicationList: ApplicationPayload[]; - createApplication: ( - applicationName: string, - orgId?: string, - color?: string, - icon?: string, - ) => void; searchApplications: (keyword: string) => void; isCreatingApplication: creatingApplicationMap; isFetchingApplications: boolean; @@ -897,8 +893,7 @@ type ApplicationProps = { userOrgs: any; currentUser?: User; searchKeyword: string | undefined; - theme: any; - EnableFirstTimeUserExperience: (applicationId: string) => void; + enableFirstTimeUserOnboarding: (applicationId: string) => void; }; const getIsFromSignup = () => { @@ -931,24 +926,30 @@ class Applications extends Component< redirectUsingQueryParam = () => { const urlObject = new URL(window.location.href); const redirectUrl = urlObject?.searchParams.get("redirectUrl"); - const shouldEnableFirstTimeUserExperience = urlObject?.searchParams.get( + const shouldEnableFirstTimeUserOnboarding = urlObject?.searchParams.get( "enableFirstTimeUserExperience", ); if (redirectUrl) { try { if ( window.location.pathname == SIGNUP_SUCCESS_URL && - shouldEnableFirstTimeUserExperience === "true" + shouldEnableFirstTimeUserOnboarding === "true" ) { - const applicationIdReg = redirectUrl.match( - /\/applications\/(.[^\/]*)\//, + const { applicationId, pageId } = extractAppIdAndPageIdFromUrl( + redirectUrl, ); - const applicationId = applicationIdReg ? applicationIdReg[1] : null; - if (applicationId) { - this.props.EnableFirstTimeUserExperience(applicationId); + if (applicationId && pageId) { + this.props.enableFirstTimeUserOnboarding(applicationId); + /* + * window.location.replace resets the application, adding + * this timeout to store onboarding variables in indexdb + */ + + setTimeout(() => { + window.location.replace(redirectUrl); + }); } - } - if (getIsSafeRedirectURL(redirectUrl)) { + } else if (getIsSafeRedirectURL(redirectUrl)) { window.location.replace(redirectUrl); } } catch (e) { @@ -985,29 +986,12 @@ const mapStateToProps = (state: AppState) => ({ userOrgs: getUserApplicationsOrgsList(state), currentUser: getCurrentUser(state), searchKeyword: getApplicationSearchKeyword(state), - theme: getCurrentThemeDetails(state), }); const mapDispatchToProps = (dispatch: any) => ({ getAllApplication: () => { dispatch({ type: ReduxActionTypes.GET_ALL_APPLICATION_INIT }); }, - createApplication: ( - applicationName: string, - orgId?: string, - color?: string, - icon?: string, - ) => { - dispatch({ - type: ReduxActionTypes.CREATE_APPLICATION_INIT, - payload: { - applicationName, - orgId, - icon, - color, - }, - }); - }, searchApplications: (keyword: string) => { dispatch({ type: ReduxActionTypes.SEARCH_APPLICATIONS, @@ -1016,17 +1000,17 @@ const mapDispatchToProps = (dispatch: any) => ({ }, }); }, - EnableFirstTimeUserExperience: (applicationId: string) => { + enableFirstTimeUserOnboarding: (applicationId: string) => { dispatch({ - type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_ONBOARDING, payload: true, }); dispatch({ - type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + type: ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, payload: applicationId, }); dispatch({ - type: ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL, + type: ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_ONBOARDING_MODAL, payload: true, }); }, diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts b/app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts deleted file mode 100644 index 44258865ca7b..000000000000 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const ONBOARDING_STEPS_FIRST = "First: Create a Datasource"; -export const ONBOARDING_STEPS_FIRST_ALT = "Next: Create a Datasource"; -export const ONBOARDING_STEPS_SECOND = "Next: Create a Query"; -export const ONBOARDING_STEPS_THIRD = "Next: Add a Widget"; -export const ONBOARDING_STEPS_FOURTH = "Next: Connect data to Widget"; -export const ONBOARDING_STEPS_FIVETH = "Next: Deploy your application"; -export const ONBOARDING_STEPS_SIXTH = "Completed 🎉"; diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.test.tsx b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Checklist.test.tsx similarity index 100% rename from app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.test.tsx rename to app/client/src/pages/Editor/FirstTimeUserOnboarding/Checklist.test.tsx diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Checklist.tsx similarity index 64% rename from app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx rename to app/client/src/pages/Editor/FirstTimeUserOnboarding/Checklist.tsx index 6ef90f98f2ec..7d66e043f9ff 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Checklist.tsx @@ -28,18 +28,39 @@ import history from "utils/history"; import { toggleInOnboardingWidgetSelection } from "actions/onboardingActions"; import { ReduxActionTypes } from "constants/ReduxActionConstants"; import { - getFirstTimeUserExperienceComplete, - getEnableFirstTimeUserExperience, + getFirstTimeUserOnboardingComplete, + getEnableFirstTimeUserOnboarding, } from "selectors/onboardingSelectors"; import AnalyticsUtil from "utils/AnalyticsUtil"; import { Colors } from "constants/Colors"; import { forceOpenWidgetPanel } from "actions/widgetSidebarActions"; import { bindDataOnCanvas } from "actions/pluginActionActions"; +import { Redirect } from "react-router"; +import { + ONBOARDING_CHECKLIST_ACTIONS, + ONBOARDING_CHECKLIST_BANNER_BODY, + ONBOARDING_CHECKLIST_BANNER_HEADER, + ONBOARDING_CHECKLIST_HEADER, + ONBOARDING_CHECKLIST_BODY, + ONBOARDING_CHECKLIST_COMPLETE_TEXT, + ONBOARDING_CHECKLIST_CONNECT_DATA_SOURCE, + ONBOARDING_CHECKLIST_CREATE_A_QUERY, + ONBOARDING_CHECKLIST_ADD_WIDGETS, + ONBOARDING_CHECKLIST_CONNECT_DATA_TO_WIDGET, + ONBOARDING_CHECKLIST_DEPLOY_APPLICATIONS, + ONBOARDING_CHECKLIST_FOOTER, + ONBOARDING_CHECKLIST_BANNER_BUTTON, + createMessage, +} from "constants/messages"; +import { Datasource } from "entities/Datasource"; +import { ActionDataState } from "reducers/entityReducers/actionsReducer"; +import { CanvasWidgetsReduxState } from "reducers/entityReducers/canvasWidgetsReducer"; +import { triggerWelcomeTour } from "./Utils"; const Wrapper = styled.div` - padding: 15px 55px; + padding: ${(props) => props.theme.spaces[7]}px 55px; background: #fff; - height: calc(100vh - 35px); + height: calc(100vh - ${(props) => props.theme.smallHeaderHeight}); overflow: auto; `; @@ -49,29 +70,31 @@ const Pageheader = styled.h4` const PageSubHeader = styled.p` width: 100%; - margin-bottom: 30px; + margin-bottom: ${(props) => props.theme.spaces[12]}px; `; const StatusWrapper = styled.p` width: 100%; - margin-bottom: 30px; + margin-bottom: ${(props) => props.theme.spaces[12]}px; & span { font-weight: 700; } `; +const LIST_WIDTH_OFFSET = 160; + const StyledList = styled.ul` margin: 0; padding: 0; list-style-type: none; - width: calc(100% - 160px); + width: calc(100% - ${LIST_WIDTH_OFFSET}px); overflow: auto; `; const StyledListItem = styled.li` width: 100%; display: flex; - padding: 30px 0px; + padding: ${(props) => props.theme.spaces[12]}px 0px; align-items: center; border-bottom: 1px solid ${(props) => props.theme.colors.grid}; &:first-child { @@ -79,8 +102,10 @@ const StyledListItem = styled.li` } `; +const CHECKLIST_WIDTH_OFFSET = 268; + const ChecklistText = styled.div<{ active: boolean }>` - flex-basis: calc(100% - 268px); + flex-basis: calc(100% - ${CHECKLIST_WIDTH_OFFSET}px); color: ${(props) => (props.active ? props.theme.colors.text.normal : "")}; & span { font-weight: 700; @@ -93,7 +118,7 @@ const CompeleteMarkerIcon = styled.div<{ success: boolean }>` border-radius: 30px; border: 2px solid; border-color: ${(props) => - props.success ? props.theme.colors.success.main : "#A9A7A7"}; + props.success ? props.theme.colors.success.main : Colors.SILVER_CHALICE}; padding: 2px 2px; `; @@ -114,8 +139,8 @@ const Backbutton = styled.span` const Banner = styled.div` width: calc(100% - 113px); border: 1px solid ${(props) => props.theme.colors.table.border}; - padding: 16px; - margin-top: 16px; + padding: ${(props) => props.theme.spaces[7]}px; + margin-top: ${(props) => props.theme.spaces[7]}px; `; const BannerHeader = styled.h5` @@ -124,7 +149,8 @@ const BannerHeader = styled.h5` `; const BannerText = styled.p` - margin: 8px 0px 16px; + margin: ${(props) => props.theme.spaces[3]}px 0px + ${(props) => props.theme.spaces[7]}px; `; const StyledImg = styled.img` @@ -136,42 +162,37 @@ const StyledImg = styled.img` const StyledFooter = styled.div` cursor: pointer; display: inline-block; - margin-top: 20px; + margin-top: ${(props) => props.theme.spaces[9]}px; `; -export default function OnboardingChecklist() { - const dispatch = useDispatch(); - const datasources = useSelector(getDatasources); - const pageId = useSelector(getCurrentPageId); - const actions = useSelector(getPageActions(pageId)); - const widgets = useSelector(getCanvasWidgets); - const deps = useSelector(getEvaluationInverseDependencyMap); - const isConnectionPresent = useIsWidgetActionConnectionPresent( - widgets, - actions, - deps, - ); - const theme = useSelector(getCurrentThemeDetails); - const applicationId = useSelector(getCurrentApplicationId); - const isDeployed = !!useSelector(getApplicationLastDeployedAt); - const isCompleted = useSelector(getFirstTimeUserExperienceComplete); - const isFirstTimeUserExperienceEnabled = useSelector( - getEnableFirstTimeUserExperience, - ); +function getSuggestedNextActionAndCompletedTasks( + datasources: Datasource[], + actions: ActionDataState, + widgets: CanvasWidgetsReduxState, + isConnectionPresent: boolean, + isDeployed: boolean, +) { let suggestedNextAction; - if (!isFirstTimeUserExperienceEnabled && !isCompleted) { - history.push(BUILDER_PAGE_URL(applicationId, pageId)); - } if (!datasources.length) { - suggestedNextAction = "CREATE A DATASOURCE"; + suggestedNextAction = createMessage( + () => ONBOARDING_CHECKLIST_ACTIONS.CONNECT_A_DATASOURCE, + ); } else if (!actions.length) { - suggestedNextAction = "CREATE A QUERY"; - } else if (Object.keys(widgets).length == 1) { - suggestedNextAction = "ADD WIDGETS"; + suggestedNextAction = createMessage( + () => ONBOARDING_CHECKLIST_ACTIONS.CREATE_A_QUERY, + ); + } else if (Object.keys(widgets).length === 1) { + suggestedNextAction = createMessage( + () => ONBOARDING_CHECKLIST_ACTIONS.ADD_WIDGETS, + ); } else if (!isConnectionPresent) { - suggestedNextAction = "CONNECT DATA TO WIDGET"; + suggestedNextAction = createMessage( + () => ONBOARDING_CHECKLIST_ACTIONS.CONNECT_DATA_TO_WIDGET, + ); } else if (!isDeployed) { - suggestedNextAction = "DEPLOY APPLICATIONS"; + suggestedNextAction = createMessage( + () => ONBOARDING_CHECKLIST_ACTIONS.DEPLOY_APPLICATIONS, + ); } let completedTasks = 0; @@ -190,6 +211,42 @@ export default function OnboardingChecklist() { if (isDeployed) { completedTasks++; } + + return { suggestedNextAction, completedTasks }; +} + +export default function OnboardingChecklist() { + const dispatch = useDispatch(); + const datasources = useSelector(getDatasources); + const pageId = useSelector(getCurrentPageId); + const actions = useSelector(getPageActions(pageId)); + const widgets = useSelector(getCanvasWidgets); + const deps = useSelector(getEvaluationInverseDependencyMap); + const isConnectionPresent = useIsWidgetActionConnectionPresent( + widgets, + actions, + deps, + ); + const theme = useSelector(getCurrentThemeDetails); + const applicationId = useSelector(getCurrentApplicationId); + const isDeployed = !!useSelector(getApplicationLastDeployedAt); + const isCompleted = useSelector(getFirstTimeUserOnboardingComplete); + const isFirstTimeUserOnboardingEnabled = useSelector( + getEnableFirstTimeUserOnboarding, + ); + if (!isFirstTimeUserOnboardingEnabled && !isCompleted) { + return ; + } + const { + completedTasks, + suggestedNextAction, + } = getSuggestedNextActionAndCompletedTasks( + datasources, + actions, + widgets, + isConnectionPresent, + isDeployed, + ); const onconnectYourWidget = () => { const action = actions[0]; if (action && applicationId && pageId) { @@ -218,30 +275,26 @@ export default function OnboardingChecklist() { {isCompleted && ( - Amazing work! You’ve explored the basics of Appsmith + {createMessage(ONBOARDING_CHECKLIST_BANNER_HEADER)} - You can carry on here, or explore the homepage to see how your - projects are stored. + {createMessage(ONBOARDING_CHECKLIST_BANNER_BODY)} history.push(APPLICATIONS_URL)} - text="Explore homepage" + text={createMessage(ONBOARDING_CHECKLIST_BANNER_BUTTON)} type="button" /> )} - 👋 Welcome to Appsmith! - - Let’s get you started on your first application, explore Appsmith - yourself or follow our guide below to discover what Appsmith can do. - + {createMessage(ONBOARDING_CHECKLIST_HEADER)} + {createMessage(ONBOARDING_CHECKLIST_BODY)} {completedTasks} of 5 -  complete +  {createMessage(ONBOARDING_CHECKLIST_COMPLETE_TEXT)} @@ -253,7 +306,7 @@ export default function OnboardingChecklist() { color={ datasources.length || actions.length ? theme.colors.success.main - : "#A9A7A7" + : Colors.SILVER_CHALICE } data-testid="checklist-datasource-complete-icon" icon={ @@ -266,13 +319,19 @@ export default function OnboardingChecklist() { - Connect your data source to start building an - application. + + {createMessage(ONBOARDING_CHECKLIST_CONNECT_DATA_SOURCE.bold)} + +   + {createMessage(ONBOARDING_CHECKLIST_CONNECT_DATA_SOURCE.normal)} {!datasources.length && !actions.length && ( ONBOARDING_CHECKLIST_ACTIONS.CONNECT_A_DATASOURCE, + ) ? Category.primary : Category.tertiary } @@ -289,7 +348,9 @@ export default function OnboardingChecklist() { ), ); }} - text="CONNECT DATA SOURCE" + text={createMessage( + () => ONBOARDING_CHECKLIST_ACTIONS.CONNECT_A_DATASOURCE, + )} type="button" /> )} @@ -298,7 +359,11 @@ export default function OnboardingChecklist() { - Create a query of your data source. + + {createMessage(ONBOARDING_CHECKLIST_CREATE_A_QUERY.bold)} + +  {createMessage(ONBOARDING_CHECKLIST_CREATE_A_QUERY.normal)} {!actions.length && ( ONBOARDING_CHECKLIST_ACTIONS.CREATE_A_QUERY) ? Category.primary : Category.tertiary } @@ -330,7 +399,9 @@ export default function OnboardingChecklist() { ); }} tag="button" - text="CREATE A QUERY" + text={createMessage( + () => ONBOARDING_CHECKLIST_ACTIONS.CREATE_A_QUERY, + )} type="button" /> )} @@ -342,7 +413,7 @@ export default function OnboardingChecklist() { color={ Object.keys(widgets).length > 1 ? theme.colors.success.main - : "#A9A7A7" + : Colors.SILVER_CHALICE } data-testid="checklist-widget-complete-icon" icon={ @@ -353,12 +424,14 @@ export default function OnboardingChecklist() { 1}> - Start visualising your application using widgets. + {createMessage(ONBOARDING_CHECKLIST_ADD_WIDGETS.bold)} +  {createMessage(ONBOARDING_CHECKLIST_ADD_WIDGETS.normal)} - {Object.keys(widgets).length == 1 && ( + {Object.keys(widgets).length === 1 && ( ONBOARDING_CHECKLIST_ACTIONS.ADD_WIDGETS) ? Category.primary : Category.tertiary } @@ -371,7 +444,9 @@ export default function OnboardingChecklist() { dispatch(forceOpenWidgetPanel(true)); history.push(BUILDER_PAGE_URL(applicationId, pageId)); }} - text="ADD WIDGETS" + text={createMessage( + () => ONBOARDING_CHECKLIST_ACTIONS.ADD_WIDGETS, + )} type="button" /> )} @@ -381,7 +456,9 @@ export default function OnboardingChecklist() { - Connect your data to the widgets using JavaScript. + + {createMessage(ONBOARDING_CHECKLIST_CONNECT_DATA_TO_WIDGET.bold)} + +   + {createMessage(ONBOARDING_CHECKLIST_CONNECT_DATA_TO_WIDGET.normal)} {!isConnectionPresent && ( ONBOARDING_CHECKLIST_ACTIONS.CONNECT_DATA_TO_WIDGET, + ) ? Category.primary : Category.tertiary } data-testid="checklist-connection-button" - disabled={Object.keys(widgets).length == 1 || !actions.length} + disabled={Object.keys(widgets).length === 1 || !actions.length} onClick={onconnectYourWidget} tag="button" - text="CONNECT DATA TO WIDGETS" + text={createMessage( + () => ONBOARDING_CHECKLIST_ACTIONS.CONNECT_DATA_TO_WIDGET, + )} type="button" /> )} @@ -412,7 +498,9 @@ export default function OnboardingChecklist() { - Deploy your application, and see your creation live. + + {createMessage(ONBOARDING_CHECKLIST_DEPLOY_APPLICATIONS.bold)} + +   + {createMessage(ONBOARDING_CHECKLIST_DEPLOY_APPLICATIONS.normal)} {!isDeployed && ( ONBOARDING_CHECKLIST_ACTIONS.DEPLOY_APPLICATIONS, + ) ? Category.primary : Category.tertiary } @@ -441,33 +536,18 @@ export default function OnboardingChecklist() { }, }); }} - text="DEPLOY APPLICATION" + text={createMessage( + () => ONBOARDING_CHECKLIST_ACTIONS.DEPLOY_APPLICATIONS, + )} type="button" /> )} - { - AnalyticsUtil.logEvent("SIGNPOSTING_WELCOME_TOUR_CLICK"); - history.push(APPLICATIONS_URL); - dispatch({ - type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, - payload: false, - }); - dispatch({ - type: - ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, - payload: "", - }); - dispatch({ - type: ReduxActionTypes.ONBOARDING_CREATE_APPLICATION, - }); - }} - > + triggerWelcomeTour(dispatch)}> - Not sure where to start? Take the welcome tour + {createMessage(ONBOARDING_CHECKLIST_FOOTER)} diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx b/app/client/src/pages/Editor/FirstTimeUserOnboarding/IntroductionModal.tsx similarity index 66% rename from app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx rename to app/client/src/pages/Editor/FirstTimeUserOnboarding/IntroductionModal.tsx index f742adad5881..85107cef6a80 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserOnboarding/IntroductionModal.tsx @@ -1,13 +1,23 @@ import { Icon, Overlay } from "@blueprintjs/core"; import Button, { Category } from "components/ads/Button"; +import { + ONBOARDING_INTRO_CONNECT_DATA_WIDGET, + ONBOARDING_INTRO_CONNECT_YOUR_DATABASE, + HOW_APPSMITH_WORKS, + ONBOARDING_INTRO_PUBLISH, + BUILD_MY_FIRST_APP, + ONBOARDING_INTRO_FOOTER, + BUILD_APP_TOGETHER, + createMessage, +} from "constants/messages"; import { ReduxActionTypes } from "constants/ReduxActionConstants"; -import { APPLICATIONS_URL } from "constants/routes"; +import { ASSETS_CDN_URL } from "constants/ThirdPartyConstants"; import React from "react"; import { useEffect } from "react"; import { useDispatch } from "react-redux"; import styled from "styled-components"; import AnalyticsUtil from "utils/AnalyticsUtil"; -import history from "utils/history"; +import { triggerWelcomeTour } from "./Utils"; const Wrapper = styled.div` display: flex; @@ -115,6 +125,11 @@ type IntroductionModalProps = { close: () => void; }; +const getConnectDataImg = () => `${ASSETS_CDN_URL}/ConnectData.svg`; +const getArrowImg = () => `${ASSETS_CDN_URL}/Arrow.svg`; +const getQueryDataImg = () => `${ASSETS_CDN_URL}/QueryData.svg`; +const getPublishAppsImg = () => `${ASSETS_CDN_URL}/PublishApps.svg`; + export default function IntroductionModal({ close }: IntroductionModalProps) { const dispatch = useDispatch(); const onBuildApp = () => { @@ -136,52 +151,38 @@ export default function IntroductionModal({ close }: IntroductionModalProps) { iconSize={16} onClick={onBuildApp} /> - Here’s how Appsmith works + {createMessage(HOW_APPSMITH_WORKS)} - - + + - + - - + +
1. - Connect your database or API + + {createMessage(ONBOARDING_INTRO_CONNECT_YOUR_DATABASE)} +
2. - Connect queried data to pre-built widgets and customise with - Javascript. + {createMessage(ONBOARDING_INTRO_CONNECT_DATA_WIDGET)}
3. - Instantly publish and share your apps + {createMessage(ONBOARDING_INTRO_PUBLISH)}
@@ -191,30 +192,12 @@ export default function IntroductionModal({ close }: IntroductionModalProps) { category={Category.primary} onClick={onBuildApp} tag="button" - text="Build my first app" + text={createMessage(BUILD_MY_FIRST_APP)} /> - Want more help getting started, let’s  - { - AnalyticsUtil.logEvent("SIGNPOSTING_WELCOME_TOUR_CLICK"); - history.push(APPLICATIONS_URL); - dispatch({ - type: - ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, - payload: false, - }); - dispatch({ - type: - ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, - payload: "", - }); - dispatch({ - type: ReduxActionTypes.ONBOARDING_CREATE_APPLICATION, - }); - }} - > - build an app together. + {createMessage(ONBOARDING_INTRO_FOOTER)}  + triggerWelcomeTour(dispatch)}> + {createMessage(BUILD_APP_TOGETHER)} diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.test.tsx b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Statusbar.test.tsx similarity index 100% rename from app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.test.tsx rename to app/client/src/pages/Editor/FirstTimeUserOnboarding/Statusbar.test.tsx diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Statusbar.tsx similarity index 71% rename from app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx rename to app/client/src/pages/Editor/FirstTimeUserOnboarding/Statusbar.tsx index cffd11605637..548b2ce09a88 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Statusbar.tsx @@ -16,18 +16,22 @@ import { getDatasources, getPageActions, } from "selectors/entitiesSelector"; -import { getFirstTimeUserExperienceComplete } from "selectors/onboardingSelectors"; +import { getFirstTimeUserOnboardingComplete } from "selectors/onboardingSelectors"; import styled from "styled-components"; import history from "utils/history"; import { - ONBOARDING_STEPS_FIRST, - ONBOARDING_STEPS_FIRST_ALT, - ONBOARDING_STEPS_SECOND, - ONBOARDING_STEPS_THIRD, - ONBOARDING_STEPS_FOURTH, - ONBOARDING_STEPS_FIVETH, - ONBOARDING_STEPS_SIXTH, -} from "./constants"; + ONBOARDING_STATUS_STEPS_FIRST, + ONBOARDING_STATUS_STEPS_FIRST_ALT, + ONBOARDING_STATUS_STEPS_SECOND, + ONBOARDING_STATUS_STEPS_THIRD, + ONBOARDING_STATUS_STEPS_FOURTH, + ONBOARDING_STATUS_STEPS_FIVETH, + ONBOARDING_STATUS_STEPS_SIXTH, + ONBOARDING_STATUS_GET_STARTED, + createMessage, +} from "constants/messages"; +import { getTypographyByKey } from "constants/DefaultTheme"; +import { useIntiateOnboarding } from "components/editorComponents/Onboarding/utils"; const Wrapper = styled.div<{ active: boolean }>` position: relative; @@ -46,8 +50,7 @@ const Wrapper = styled.div<{ active: boolean }>` const TitleWrapper = styled.p` color: #fff; - font-size: 13px; - font-weight: 600; + ${(props) => getTypographyByKey(props, "p4")} `; const StatusText = styled.p` @@ -109,14 +112,14 @@ const useStatus = (): { percentage: number; content: string } => { deps, ); const isDeployed = !!useSelector(getApplicationLastDeployedAt); - const isFirstTimeUserExperienceComplete = useSelector( - getFirstTimeUserExperienceComplete, + const isFirstTimeUserOnboardingComplete = useSelector( + getFirstTimeUserOnboardingComplete, ); - if (isFirstTimeUserExperienceComplete) { + if (isFirstTimeUserOnboardingComplete) { return { percentage: 100, - content: "Completed 🎉", + content: createMessage(ONBOARDING_STATUS_STEPS_SIXTH), }; } @@ -124,19 +127,19 @@ const useStatus = (): { percentage: number; content: string } => { let percentage = 0; if (!datasources.length && !actions.length) { content = - Object.keys(widgets).length == 1 - ? ONBOARDING_STEPS_FIRST - : ONBOARDING_STEPS_FIRST_ALT; + Object.keys(widgets).length === 1 + ? createMessage(ONBOARDING_STATUS_STEPS_FIRST) + : createMessage(ONBOARDING_STATUS_STEPS_FIRST_ALT); } else if (!actions.length) { - content = ONBOARDING_STEPS_SECOND; - } else if (Object.keys(widgets).length == 1) { - content = ONBOARDING_STEPS_THIRD; + content = createMessage(ONBOARDING_STATUS_STEPS_SECOND); + } else if (Object.keys(widgets).length === 1) { + content = createMessage(ONBOARDING_STATUS_STEPS_THIRD); } else if (!isConnectionPresent) { - content = ONBOARDING_STEPS_FOURTH; + content = createMessage(ONBOARDING_STATUS_STEPS_FOURTH); } else if (!isDeployed) { - content = ONBOARDING_STEPS_FIVETH; + content = createMessage(ONBOARDING_STATUS_STEPS_FIVETH); } else { - content = ONBOARDING_STEPS_SIXTH; + content = createMessage(ONBOARDING_STATUS_STEPS_SIXTH); } if (datasources.length || actions.length) { @@ -173,29 +176,31 @@ export function OnboardingStatusbar(props: RouteComponentProps) { const isChecklistPage = props.location.pathname.indexOf("/checklist") > -1; const isGenerateAppPage = props.location.pathname.indexOf("/generate-page/form") > -1; - const isFirstTimeUserExperienceComplete = useSelector( - getFirstTimeUserExperienceComplete, + const isFirstTimeUserOnboardingComplete = useSelector( + getFirstTimeUserOnboardingComplete, ); + const intiateOnboarding = useIntiateOnboarding(); if (isGenerateAppPage) { return null; } - const endFirstTimeUserExperience = (event?: SyntheticEvent) => { + const endFirstTimeUserOnboarding = (event?: SyntheticEvent) => { event?.stopPropagation(); dispatch({ - type: ReduxActionTypes.END_FIRST_TIME_USER_EXPERIENCE, + type: ReduxActionTypes.END_FIRST_TIME_USER_ONBOARDING, }); + intiateOnboarding(); }; - if (percentage == 100 && !isFirstTimeUserExperienceComplete) { + if (percentage === 100 && !isFirstTimeUserOnboardingComplete) { dispatch({ - type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_ONBOARDING, payload: false, }); dispatch({ - type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + type: ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, payload: "", }); dispatch({ - type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_COMPLETE, + type: ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_COMPLETE, payload: true, }); } @@ -214,9 +219,11 @@ export function OnboardingStatusbar(props: RouteComponentProps) { data-cy="statusbar-skip" icon="cross" iconSize={14} - onClick={endFirstTimeUserExperience} + onClick={endFirstTimeUserOnboarding} /> - GET STARTED + + {createMessage(ONBOARDING_STATUS_GET_STARTED)} + {content}   {!isChecklistPage && ( diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.test.tsx b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Tasks.test.tsx similarity index 100% rename from app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.test.tsx rename to app/client/src/pages/Editor/FirstTimeUserOnboarding/Tasks.test.tsx diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Tasks.tsx similarity index 72% rename from app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx rename to app/client/src/pages/Editor/FirstTimeUserOnboarding/Tasks.tsx index 1bfa2748de99..d2913dcb55bf 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Tasks.tsx @@ -1,8 +1,26 @@ import { toggleInOnboardingWidgetSelection } from "actions/onboardingActions"; import { forceOpenWidgetPanel } from "actions/widgetSidebarActions"; import Button from "components/ads/Button"; +import { + ONBOARDING_TASK_DATASOURCE_BODY, + ONBOARDING_TASK_DATASOURCE_HEADER, + ONBOARDING_TASK_DATASOURCE_BUTTON, + ONBOARDING_TASK_DATASOURCE_FOOTER_ACTION, + ONBOARDING_TASK_DATASOURCE_FOOTER, + ONBOARDING_TASK_QUERY_HEADER, + ONBOARDING_TASK_QUERY_BODY, + ONBOARDING_TASK_QUERY_BUTTON, + ONBOARDING_TASK_QUERY_FOOTER_ACTION, + ONBOARDING_TASK_WIDGET_HEADER, + ONBOARDING_TASK_WIDGET_BODY, + ONBOARDING_TASK_WIDGET_BUTTON, + ONBOARDING_TASK_WIDGET_FOOTER_ACTION, + ONBOARDING_TASK_FOOTER, + createMessage, +} from "constants/messages"; import { ReduxActionTypes } from "constants/ReduxActionConstants"; import { INTEGRATION_EDITOR_URL, INTEGRATION_TABS } from "constants/routes"; +import { ASSETS_CDN_URL } from "constants/ThirdPartyConstants"; import React from "react"; import { useDispatch } from "react-redux"; import { @@ -14,7 +32,7 @@ import { getDatasources, getPageActions, } from "selectors/entitiesSelector"; -import { getFirstTimeUserExperienceModal } from "selectors/onboardingSelectors"; +import { getFirstTimeUserOnboardingModal } from "selectors/onboardingSelectors"; import { useSelector } from "store"; import styled from "styled-components"; import AnalyticsUtil from "utils/AnalyticsUtil"; @@ -73,6 +91,11 @@ const Taskfootnote = styled.p` } `; +const getOnboardingDatasourceImg = () => + `${ASSETS_CDN_URL}/onboarding-datasource.svg`; +const getOnboardingQueryImg = () => `${ASSETS_CDN_URL}/onboarding-query.svg`; +const getOnboardingWidgetImg = () => `${ASSETS_CDN_URL}/onboarding-widget.svg`; + export default function OnboardingTasks() { const applicationId = useSelector(getCurrentApplicationId); const pageId = useSelector(getCurrentPageId); @@ -81,20 +104,18 @@ export default function OnboardingTasks() { const actions = useSelector(getPageActions(pageId)); const widgets = useSelector(getCanvasWidgets); const dispatch = useDispatch(); - const showModal = useSelector(getFirstTimeUserExperienceModal); + const showModal = useSelector(getFirstTimeUserOnboardingModal); if (!datasources.length && !actions.length) { content = ( - + - Start by adding your first Data source + {createMessage(ONBOARDING_TASK_DATASOURCE_HEADER)} - Adding a data source makes creating applications more powerful. Don’t - worry if you don’t have any data to hand, we have sample data you can - use. + {createMessage(ONBOARDING_TASK_DATASOURCE_BODY)} - Alternatively you can also  + {createMessage(ONBOARDING_TASK_FOOTER)}  { @@ -128,9 +149,9 @@ export default function OnboardingTasks() { dispatch(forceOpenWidgetPanel(true)); }} > - add a widget + {createMessage(ONBOARDING_TASK_DATASOURCE_FOOTER_ACTION)} -  first. +  {createMessage(ONBOARDING_TASK_DATASOURCE_FOOTER)} ); @@ -138,15 +159,12 @@ export default function OnboardingTasks() { content = ( - + - Next, create a query + {createMessage(ONBOARDING_TASK_QUERY_HEADER)} - - Great job adding a data source! The next thing you can do is create a - query on your data. - + {createMessage(ONBOARDING_TASK_QUERY_BODY)} - Alternatively you can also  + {createMessage(ONBOARDING_TASK_FOOTER)}  { @@ -179,24 +197,21 @@ export default function OnboardingTasks() { dispatch(forceOpenWidgetPanel(true)); }} > - add a widget + {createMessage(ONBOARDING_TASK_QUERY_FOOTER_ACTION)} ); - } else if (Object.keys(widgets).length == 1) { + } else if (Object.keys(widgets).length === 1) { content = ( - + - Next, add a widget to start displaying data + {createMessage(ONBOARDING_TASK_WIDGET_HEADER)} - - Great job adding a data source! The next thing you can do is add - widget to start start making your data visual. - + {createMessage(ONBOARDING_TASK_WIDGET_BODY)} - Alternatively you can also  + {createMessage(ONBOARDING_TASK_FOOTER)}  { @@ -228,7 +243,7 @@ export default function OnboardingTasks() { }); }} > - deploy your application + {createMessage(ONBOARDING_TASK_WIDGET_FOOTER_ACTION)} . @@ -242,7 +257,7 @@ export default function OnboardingTasks() { { dispatch({ - type: ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL, + type: ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_ONBOARDING_MODAL, payload: false, }); }} diff --git a/app/client/src/pages/Editor/FirstTimeUserOnboarding/Utils.ts b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Utils.ts new file mode 100644 index 000000000000..d7eaeea3a644 --- /dev/null +++ b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Utils.ts @@ -0,0 +1,17 @@ +import { ReduxActionTypes } from "constants/ReduxActionConstants"; +import { Dispatch } from "react"; +import AnalyticsUtil from "utils/AnalyticsUtil"; +export const triggerWelcomeTour = (dispatch: Dispatch) => { + AnalyticsUtil.logEvent("SIGNPOSTING_WELCOME_TOUR_CLICK"); + dispatch({ + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_ONBOARDING, + payload: false, + }); + dispatch({ + type: ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, + payload: "", + }); + dispatch({ + type: ReduxActionTypes.ONBOARDING_CREATE_APPLICATION, + }); +}; diff --git a/app/client/src/pages/Editor/FirstTimeUserExperience/testUtils.ts b/app/client/src/pages/Editor/FirstTimeUserOnboarding/testUtils.ts similarity index 93% rename from app/client/src/pages/Editor/FirstTimeUserExperience/testUtils.ts rename to app/client/src/pages/Editor/FirstTimeUserOnboarding/testUtils.ts index 10f4b4b61980..c180e3c74cc7 100644 --- a/app/client/src/pages/Editor/FirstTimeUserExperience/testUtils.ts +++ b/app/client/src/pages/Editor/FirstTimeUserOnboarding/testUtils.ts @@ -1,3 +1,4 @@ +import _ from "lodash"; import configureStore from "redux-mock-store"; const PAGE_ID = 2; @@ -28,7 +29,7 @@ export const initialState: any = { }, onBoarding: { firstTimeUserExperienceComplete: false, - showFirstTimeUserExperienceModal: true, + showFirstTimeUserOnboardingModal: true, }, theme: { theme: { @@ -47,7 +48,7 @@ const mockStore = configureStore(); export function getStore(step: number) { switch (step) { case 0: - state = JSON.parse(JSON.stringify(initialState)); + state = _.cloneDeep(initialState); break; case 1: state.entities.datasources.list.push({}); diff --git a/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx b/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx index c0771151bb09..0a862d9e9ea6 100644 --- a/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx +++ b/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx @@ -502,11 +502,11 @@ function GeneratePageForm() { AnalyticsUtil.logEvent("GEN_CRUD_PAGE_FORM_SUBMIT"); dispatch(generateTemplateToUpdatePage(payload)); dispatch({ - type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_ONBOARDING, payload: true, }); dispatch({ - type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + type: ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, payload: "", }); }; diff --git a/app/client/src/pages/Editor/MainContainer.tsx b/app/client/src/pages/Editor/MainContainer.tsx index 32d7d80364a8..5a2d746e4f8a 100644 --- a/app/client/src/pages/Editor/MainContainer.tsx +++ b/app/client/src/pages/Editor/MainContainer.tsx @@ -10,7 +10,7 @@ import BottomBar from "./BottomBar"; import getFeatureFlags from "utils/featureFlags"; import { BUILDER_CHECKLIST_URL, BUILDER_URL } from "constants/routes"; -import OnboardingChecklist from "./FirstTimeUserExperience/Checklist"; +import OnboardingChecklist from "./FirstTimeUserOnboarding/Checklist"; const SentryRoute = Sentry.withSentryRouting(Route); const Container = styled.div` diff --git a/app/client/src/pages/Editor/WidgetsEditor.tsx b/app/client/src/pages/Editor/WidgetsEditor.tsx index e0aa4f1abc6e..e67598327b60 100644 --- a/app/client/src/pages/Editor/WidgetsEditor.tsx +++ b/app/client/src/pages/Editor/WidgetsEditor.tsx @@ -28,12 +28,12 @@ import { setCanvasSelectionFromEditor } from "actions/canvasSelectionActions"; import CrudInfoModal from "./GeneratePage/components/CrudInfoModal"; import EditorContextProvider from "components/editorComponents/EditorContextProvider"; import { useAllowEditorDragToSelect } from "utils/hooks/useAllowEditorDragToSelect"; -import OnboardingTasks from "./FirstTimeUserExperience/Tasks"; +import OnboardingTasks from "./FirstTimeUserOnboarding/Tasks"; import { getIsOnboardingTasksView, getIsOnboardingWidgetSelection, } from "selectors/entitiesSelector"; -import { getIsFirstTimeUserExperienceEnabled } from "selectors/onboardingSelectors"; +import { getIsFirstTimeUserOnboardingEnabled } from "selectors/onboardingSelectors"; const EditorWrapper = styled.div` display: flex; @@ -74,8 +74,8 @@ function WidgetsEditor() { const currentApp = useSelector(getCurrentApplication); const showOnboardingTasks = useSelector(getIsOnboardingTasksView); - const enableFirstTimeUserExperience = useSelector( - getIsFirstTimeUserExperienceEnabled, + const enableFirstTimeUserOnboarding = useSelector( + getIsFirstTimeUserOnboardingEnabled, ); const isOnboardingWidgetSelection = useSelector( getIsOnboardingWidgetSelection, @@ -150,7 +150,7 @@ function WidgetsEditor() { PerformanceTracker.stopTracking(); return ( - {enableFirstTimeUserExperience && + {enableFirstTimeUserOnboarding && showOnboardingTasks && !isOnboardingWidgetSelection ? ( diff --git a/app/client/src/reducers/uiReducers/onBoardingReducer.ts b/app/client/src/reducers/uiReducers/onBoardingReducer.ts index e05d36126082..a0d8ad008a3b 100644 --- a/app/client/src/reducers/uiReducers/onBoardingReducer.ts +++ b/app/client/src/reducers/uiReducers/onBoardingReducer.ts @@ -28,11 +28,12 @@ const initialState: OnboardingState = { allowMinimize: false, }, inOnboardingWidgetSelection: false, - enableFirstTimeUserExperience: false, + enableFirstTimeUserOnboarding: false, firstTimeUserExperienceApplicationId: "", firstTimeUserExperienceComplete: false, showFirstTimeUserExperienceModal: false, forceOpenWidgetPanel: false, + showFirstTimeUserOnboardingModal: false, }; export interface OnboardingState { @@ -48,11 +49,12 @@ export interface OnboardingState { helperStepConfig: OnboardingHelperConfig; showingIndicator: OnboardingStep; inOnboardingWidgetSelection: boolean; - enableFirstTimeUserExperience: boolean; + enableFirstTimeUserOnboarding: boolean; firstTimeUserExperienceApplicationId: string; firstTimeUserExperienceComplete: boolean; showFirstTimeUserExperienceModal: boolean; forceOpenWidgetPanel: boolean; + showFirstTimeUserOnboardingModal: boolean; } const onboardingReducer = createReducer(initialState, { @@ -97,10 +99,10 @@ const onboardingReducer = createReducer(initialState, { return { ...initialState, inOnboarding: action.payload, - enableFirstTimeUserExperience: state.enableFirstTimeUserExperience, + enableFirstTimeUserOnboarding: state.enableFirstTimeUserOnboarding, firstTimeUserExperienceApplicationId: state.firstTimeUserExperienceApplicationId, - showFirstTimeUserExperienceModal: state.showFirstTimeUserExperienceModal, + showFirstTimeUserOnboardingModal: state.showFirstTimeUserOnboardingModal, }; }, [ReduxActionTypes.ADD_WIDGET_COMPLETE]: (state: OnboardingState) => { @@ -158,10 +160,10 @@ const onboardingReducer = createReducer(initialState, { return { ...state, ...initialState, - enableFirstTimeUserExperience: state.enableFirstTimeUserExperience, + enableFirstTimeUserOnboarding: state.enableFirstTimeUserOnboarding, firstTimeUserExperienceApplicationId: state.firstTimeUserExperienceApplicationId, - showFirstTimeUserExperienceModal: state.showFirstTimeUserExperienceModal, + showFirstTimeUserOnboardingModal: state.showFirstTimeUserOnboardingModal, }; }, [ReduxActionTypes.TOGGLE_ONBOARDING_WIDGET_SELECTION]: ( @@ -173,16 +175,16 @@ const onboardingReducer = createReducer(initialState, { inOnboardingWidgetSelection: action.payload, }; }, - [ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE]: ( + [ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_ONBOARDING]: ( state: OnboardingState, action: ReduxAction, ) => { return { ...state, - enableFirstTimeUserExperience: action.payload, + enableFirstTimeUserOnboarding: action.payload, }; }, - [ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID]: ( + [ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID]: ( state: OnboardingState, action: ReduxAction, ) => { @@ -191,7 +193,7 @@ const onboardingReducer = createReducer(initialState, { firstTimeUserExperienceApplicationId: action.payload, }; }, - [ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_COMPLETE]: ( + [ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_COMPLETE]: ( state: OnboardingState, action: ReduxAction, ) => { @@ -200,13 +202,13 @@ const onboardingReducer = createReducer(initialState, { firstTimeUserExperienceComplete: action.payload, }; }, - [ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL]: ( + [ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_ONBOARDING_MODAL]: ( state: OnboardingState, action: ReduxAction, ) => { return { ...state, - showFirstTimeUserExperienceModal: action.payload, + showFirstTimeUserOnboardingModal: action.payload, }; }, [ReduxActionTypes.SET_FORCE_WIDGET_PANEL_OPEN]: ( diff --git a/app/client/src/sagas/ApplicationSagas.tsx b/app/client/src/sagas/ApplicationSagas.tsx index 87f6a5c1f1c9..28b96daa7099 100644 --- a/app/client/src/sagas/ApplicationSagas.tsx +++ b/app/client/src/sagas/ApplicationSagas.tsx @@ -64,8 +64,8 @@ import { reconnectWebsocket as reconnectWebsocketAction } from "actions/websocke import { getCurrentOrg } from "selectors/organizationSelectors"; import { Org } from "constants/orgConstants"; import { - getEnableFirstTimeUserExperience, - getFirstTimeUserExperienceApplicationId, + getEnableFirstTimeUserOnboarding, + getFirstTimeUserOnboardingApplicationId, } from "selectors/onboardingSelectors"; const getDefaultPageId = ( @@ -468,20 +468,20 @@ export function* createApplicationSaga( application, }, }); - const isFirstTimeUserExperienceEnabled = yield select( - getEnableFirstTimeUserExperience, + const isFirstTimeUserOnboardingEnabled = yield select( + getEnableFirstTimeUserOnboarding, ); - const FirstTimeUserExperienceApplicationId = yield select( - getFirstTimeUserExperienceApplicationId, + const FirstTimeUserOnboardingApplicationId = yield select( + getFirstTimeUserOnboardingApplicationId, ); let pageURL; if ( - isFirstTimeUserExperienceEnabled && - FirstTimeUserExperienceApplicationId == "" + isFirstTimeUserOnboardingEnabled && + FirstTimeUserOnboardingApplicationId == "" ) { yield put({ type: - ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, payload: application.id, }); pageURL = BUILDER_PAGE_URL(application.id, application.defaultPageId); diff --git a/app/client/src/sagas/OnboardingSagas.ts b/app/client/src/sagas/OnboardingSagas.ts index b94966b8c8c0..25951b1d80c3 100644 --- a/app/client/src/sagas/OnboardingSagas.ts +++ b/app/client/src/sagas/OnboardingSagas.ts @@ -29,9 +29,9 @@ import { getDataTree } from "selectors/dataTreeSelectors"; import { getCurrentOrgId } from "selectors/organizationSelectors"; import { getOnboardingState, - setEnableFirstTimeUserExperience as storeEnableFirstTimerUserExperience, - setFirstTimeUserExperienceApplicationId as storeFirstTimeUserExperienceApplicationId, - setFirstTimeUserExperienceIntroModalVisibility as storeFirstTimeUserExperienceIntroModalVisibility, + setEnableFirstTimeUserOnboarding as storeEnableFirstTimeUserOnboarding, + setFirstTimeUserOnboardingApplicationId as storeFirstTimeUserOnboardingApplicationId, + setFirstTimeUserOnboardingIntroModalVisibility as storeFirstTimeUserOnboardingIntroModalVisibility, setOnboardingState, setOnboardingWelcomeState, } from "utils/storage"; @@ -106,8 +106,8 @@ import { } from "utils/DynamicBindingUtils"; import { GRID_DENSITY_MIGRATION_V1 } from "widgets/constants"; import { - getFirstTimeUserExperienceApplicationId, - getIsFirstTimeUserExperienceEnabled, + getFirstTimeUserOnboardingApplicationId, + getIsFirstTimeUserOnboardingEnabled, } from "selectors/onboardingSelectors"; import { Toaster } from "components/ads/Toast"; import { Variant } from "components/ads/common"; @@ -571,26 +571,21 @@ function* createApplication() { const userOrgs = yield select(getUserApplicationsOrgs); const currentOrganizationId = currentUser.currentOrganizationId; let organization; - const isFirstTimeUserExperiencedEnabled = yield select( - getIsFirstTimeUserExperienceEnabled, + const isFirstTimeUserOnboardingdEnabled = yield select( + getIsFirstTimeUserOnboardingEnabled, ); - if (isFirstTimeUserExperiencedEnabled) { + if (isFirstTimeUserOnboardingdEnabled) { yield put({ - type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_ONBOARDING, payload: false, }); yield put({ - type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + type: ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, payload: "", }); } - if (!currentOrganizationId) { - if (userOrgs.length) { - organization = userOrgs[0]; - } else { - organization = currentUser.organizationIds[0]; - } + organization = userOrgs[0]; } else { const filteredOrganizations = userOrgs.filter( (org: any) => org.organization.id === currentOrganizationId, @@ -916,30 +911,30 @@ export default function* onboardingSagas() { } } -function* setEnableFirstTimeUserExperience(action: ReduxAction) { - yield storeEnableFirstTimerUserExperience(action.payload); +function* setEnableFirstTimeUserOnboarding(action: ReduxAction) { + yield storeEnableFirstTimeUserOnboarding(action.payload); } -function* setFirstTimeUserExperienceApplicationId(action: ReduxAction) { - yield storeFirstTimeUserExperienceApplicationId(action.payload); +function* setFirstTimeUserOnboardingApplicationId(action: ReduxAction) { + yield storeFirstTimeUserOnboardingApplicationId(action.payload); } -function* setFirstTimeUserExperienceIntroModalVisibility( +function* setFirstTimeUserOnboardingIntroModalVisibility( action: ReduxAction, ) { - yield storeFirstTimeUserExperienceIntroModalVisibility(action.payload); + yield storeFirstTimeUserOnboardingIntroModalVisibility(action.payload); } -function* endFirstTimeUserExperienceSaga() { +function* endFirstTimeUserOnboardingSaga() { const firstTimeUserExperienceAppId = yield select( - getFirstTimeUserExperienceApplicationId, + getFirstTimeUserOnboardingApplicationId, ); yield put({ - type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_ONBOARDING, payload: false, }); yield put({ - type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + type: ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, payload: "", }); Toaster.show({ @@ -947,19 +942,19 @@ function* endFirstTimeUserExperienceSaga() { hideProgressBar: false, variant: Variant.success, dispatchableAction: { - type: ReduxActionTypes.UNDO_END_FIRST_TIME_USER_EXPERIENCE, + type: ReduxActionTypes.UNDO_END_FIRST_TIME_USER_ONBOARDING, payload: firstTimeUserExperienceAppId, }, }); } -function* undoEndFirstTimeUserExperienceSaga(action: ReduxAction) { +function* undoEndFirstTimeUserOnboardingSaga(action: ReduxAction) { yield put({ - type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_ONBOARDING, payload: true, }); yield put({ - type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + type: ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, payload: action.payload, }); } @@ -1010,24 +1005,24 @@ function* onboardingActionSagas() { createApplication, ), takeLatest( - ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, - setEnableFirstTimeUserExperience, + ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_ONBOARDING, + setEnableFirstTimeUserOnboarding, ), takeLatest( - ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, - setFirstTimeUserExperienceApplicationId, + ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, + setFirstTimeUserOnboardingApplicationId, ), takeLatest( - ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL, - setFirstTimeUserExperienceIntroModalVisibility, + ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_ONBOARDING_MODAL, + setFirstTimeUserOnboardingIntroModalVisibility, ), takeLatest( - ReduxActionTypes.END_FIRST_TIME_USER_EXPERIENCE, - endFirstTimeUserExperienceSaga, + ReduxActionTypes.END_FIRST_TIME_USER_ONBOARDING, + endFirstTimeUserOnboardingSaga, ), takeLatest( - ReduxActionTypes.UNDO_END_FIRST_TIME_USER_EXPERIENCE, - undoEndFirstTimeUserExperienceSaga, + ReduxActionTypes.UNDO_END_FIRST_TIME_USER_ONBOARDING, + undoEndFirstTimeUserOnboardingSaga, ), ]); } diff --git a/app/client/src/sagas/PageSagas.tsx b/app/client/src/sagas/PageSagas.tsx index d725268dfb8e..6b003f4c0d0f 100644 --- a/app/client/src/sagas/PageSagas.tsx +++ b/app/client/src/sagas/PageSagas.tsx @@ -101,8 +101,8 @@ import { getAppMode } from "selectors/applicationSelectors"; import { setCrudInfoModalData } from "actions/crudInfoModalActions"; import { selectMultipleWidgetsAction } from "actions/widgetSelectionActions"; import { - getIsFirstTimeUserExperienceEnabled, - getFirstTimeUserExperienceApplicationId, + getIsFirstTimeUserOnboardingEnabled, + getFirstTimeUserOnboardingApplicationId, } from "selectors/onboardingSelectors"; import WidgetFactory from "utils/WidgetFactory"; @@ -514,15 +514,15 @@ export function* createPageSaga( // route to generate template for new page created if (!createPageAction.payload.blockNavigation) { const firstTimeUserExperienceApplicationId = yield select( - getFirstTimeUserExperienceApplicationId, + getFirstTimeUserOnboardingApplicationId, ); - const isFirstTimeUserExperienceEnabled = yield select( - getIsFirstTimeUserExperienceEnabled, + const isFirstTimeUserOnboardingEnabled = yield select( + getIsFirstTimeUserOnboardingEnabled, ); if ( firstTimeUserExperienceApplicationId == createPageAction.payload.applicationId && - isFirstTimeUserExperienceEnabled + isFirstTimeUserOnboardingEnabled ) { history.push( BUILDER_PAGE_URL( diff --git a/app/client/src/sagas/userSagas.tsx b/app/client/src/sagas/userSagas.tsx index 8a1f2aea9b66..9ef7a3aca039 100644 --- a/app/client/src/sagas/userSagas.tsx +++ b/app/client/src/sagas/userSagas.tsx @@ -55,9 +55,9 @@ import log from "loglevel"; import { getCurrentUser } from "selectors/usersSelectors"; import { initSocketConnection } from "actions/websocketActions"; import { - getEnableFirstTimeUserExperience, - getFirstTimeUserExperienceApplicationId, - getFirstTimeUserExperienceIntroModalVisibility, + getEnableFirstTimeUserOnboarding, + getFirstTimeUserOnboardingApplicationId, + getFirstTimeUserOnboardingIntroModalVisibility, } from "utils/storage"; export function* createUserSaga( @@ -422,22 +422,22 @@ function* fetchFeatureFlags() { } } -function* updateFirstTimeUserExperienceSage() { - const enable = yield getEnableFirstTimeUserExperience(); +function* updateFirstTimeUserOnboardingSage() { + const enable = yield getEnableFirstTimeUserOnboarding(); if (enable) { - const applicationId = yield getFirstTimeUserExperienceApplicationId() || ""; - const introModalVisibility = yield getFirstTimeUserExperienceIntroModalVisibility(); + const applicationId = yield getFirstTimeUserOnboardingApplicationId() || ""; + const introModalVisibility = yield getFirstTimeUserOnboardingIntroModalVisibility(); yield put({ - type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_EXPERIENCE, + type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_ONBOARDING, payload: true, }); yield put({ - type: ReduxActionTypes.SET_FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + type: ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, payload: applicationId, }); yield put({ - type: ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_EXPERIENCE_MODAL, + type: ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_ONBOARDING_MODAL, payload: introModalVisibility, }); } @@ -470,7 +470,7 @@ export default function* userSagas() { takeLatest(ReduxActionTypes.FETCH_FEATURE_FLAGS_INIT, fetchFeatureFlags), takeLatest( ReduxActionTypes.FETCH_USER_DETAILS_SUCCESS, - updateFirstTimeUserExperienceSage, + updateFirstTimeUserOnboardingSage, ), ]); } diff --git a/app/client/src/selectors/onboardingSelectors.tsx b/app/client/src/selectors/onboardingSelectors.tsx index f17e9774bf15..529aac6deb3e 100644 --- a/app/client/src/selectors/onboardingSelectors.tsx +++ b/app/client/src/selectors/onboardingSelectors.tsx @@ -9,25 +9,25 @@ export const getIsOnboardingHelperVisible = (state: AppState) => { export const showWelcomeScreen = (state: AppState) => state.ui.onBoarding.showOnboardingLoader; -export const getEnableFirstTimeUserExperience = (state: AppState) => { - return state.ui.onBoarding.enableFirstTimeUserExperience; +export const getEnableFirstTimeUserOnboarding = (state: AppState) => { + return state.ui.onBoarding.enableFirstTimeUserOnboarding; }; -export const getFirstTimeUserExperienceApplicationId = (state: AppState) => { +export const getFirstTimeUserOnboardingApplicationId = (state: AppState) => { return state.ui.onBoarding.firstTimeUserExperienceApplicationId; }; -export const getFirstTimeUserExperienceComplete = (state: AppState) => { +export const getFirstTimeUserOnboardingComplete = (state: AppState) => { return state.ui.onBoarding.firstTimeUserExperienceComplete; }; -export const getFirstTimeUserExperienceModal = (state: AppState) => - state.ui.onBoarding.showFirstTimeUserExperienceModal; +export const getFirstTimeUserOnboardingModal = (state: AppState) => + state.ui.onBoarding.showFirstTimeUserOnboardingModal; -export const getIsFirstTimeUserExperienceEnabled = createSelector( +export const getIsFirstTimeUserOnboardingEnabled = createSelector( (state: AppState) => state.entities.pageList.applicationId, - getEnableFirstTimeUserExperience, - getFirstTimeUserExperienceApplicationId, + getEnableFirstTimeUserOnboarding, + getFirstTimeUserOnboardingApplicationId, (currentApplicationId, enabled, applicationId) => { return enabled && currentApplicationId === applicationId; }, diff --git a/app/client/src/utils/storage.ts b/app/client/src/utils/storage.ts index 8d9cfe9ba118..1b0b8e27c642 100644 --- a/app/client/src/utils/storage.ts +++ b/app/client/src/utils/storage.ts @@ -13,11 +13,11 @@ const STORAGE_KEYS: { [id: string]: string } = { RECENT_ENTITIES: "RecentEntities", COMMENTS_INTRO_SEEN: "CommentsIntroSeen", ONBOARDING_FORM_IN_PROGRESS: "ONBOARDING_FORM_IN_PROGRESS", - ENABLE_FIRST_TIME_USER_EXPERIENCE: "ENABLE_FIRST_TIME_USER_EXPERIENCE", - FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID: - "FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID", - FIRST_TIME_USER_EXPERIENCE_INTRO_MODAL_VISIBILITY: - "FIRST_TIME_USER_EXPERIENCE_INTRO_MODAL_VISIBILITY", + ENABLE_FIRST_TIME_USER_ONBOARDING: "ENABLE_FIRST_TIME_USER_ONBOARDING", + FIRST_TIME_USER_ONBOARDING_APPLICATION_ID: + "FIRST_TIME_USER_ONBOARDING_APPLICATION_ID", + FIRST_TIME_USER_ONBOARDING_INTRO_MODAL_VISIBILITY: + "FIRST_TIME_USER_ONBOARDING_INTRO_MODAL_VISIBILITY", }; const store = localforage.createInstance({ @@ -240,87 +240,88 @@ export const getOnboardingFormInProgress = async () => { } }; -export const setEnableFirstTimeUserExperience = async (flag: boolean) => { +export const setEnableFirstTimeUserOnboarding = async (flag: boolean) => { try { - await store.setItem(STORAGE_KEYS.ENABLE_FIRST_TIME_USER_EXPERIENCE, flag); + await store.setItem(STORAGE_KEYS.ENABLE_FIRST_TIME_USER_ONBOARDING, flag); return true; } catch (error) { log.error( - "An error occurred while setting ENABLE_FIRST_TIME_USER_EXPERIENCE", + "An error occurred while setting ENABLE_FIRST_TIME_USER_ONBOARDING", ); log.error(error); } }; -export const getEnableFirstTimeUserExperience = async () => { +export const getEnableFirstTimeUserOnboarding = async () => { try { - const enableFirstTimeUserExperience = await store.getItem( - STORAGE_KEYS.ENABLE_FIRST_TIME_USER_EXPERIENCE, + const enableFirstTimeUserOnboarding: any = await store.getItem( + STORAGE_KEYS.ENABLE_FIRST_TIME_USER_ONBOARDING, ); - return enableFirstTimeUserExperience; + enableFirstTimeUserOnboarding.toString(); + return enableFirstTimeUserOnboarding; } catch (error) { log.error( - "An error occurred while fetching ENABLE_FIRST_TIME_USER_EXPERIENCE", + "An error occurred while fetching ENABLE_FIRST_TIME_USER_ONBOARDING", ); log.error(error); } }; -export const setFirstTimeUserExperienceApplicationId = async (id: string) => { +export const setFirstTimeUserOnboardingApplicationId = async (id: string) => { try { await store.setItem( - STORAGE_KEYS.FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + STORAGE_KEYS.FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, id, ); return true; } catch (error) { log.error( - "An error occurred while setting FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID", + "An error occurred while setting FIRST_TIME_USER_ONBOARDING_APPLICATION_ID", ); log.error(error); } }; -export const getFirstTimeUserExperienceApplicationId = async () => { +export const getFirstTimeUserOnboardingApplicationId = async () => { try { const id = await store.getItem( - STORAGE_KEYS.FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID, + STORAGE_KEYS.FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, ); return id; } catch (error) { log.error( - "An error occurred while fetching FIRST_TIME_USER_EXPERIENCE_APPLICATION_ID", + "An error occurred while fetching FIRST_TIME_USER_ONBOARDING_APPLICATION_ID", ); log.error(error); } }; -export const setFirstTimeUserExperienceIntroModalVisibility = async ( +export const setFirstTimeUserOnboardingIntroModalVisibility = async ( flag: boolean, ) => { try { await store.setItem( - STORAGE_KEYS.FIRST_TIME_USER_EXPERIENCE_INTRO_MODAL_VISIBILITY, + STORAGE_KEYS.FIRST_TIME_USER_ONBOARDING_INTRO_MODAL_VISIBILITY, flag, ); return true; } catch (error) { log.error( - "An error occurred while setting FIRST_TIME_USER_EXPERIENCE_INTRO_MODAL_VISIBILITY", + "An error occurred while setting FIRST_TIME_USER_ONBOARDING_INTRO_MODAL_VISIBILITY", ); log.error(error); } }; -export const getFirstTimeUserExperienceIntroModalVisibility = async () => { +export const getFirstTimeUserOnboardingIntroModalVisibility = async () => { try { const flag = await store.getItem( - STORAGE_KEYS.FIRST_TIME_USER_EXPERIENCE_INTRO_MODAL_VISIBILITY, + STORAGE_KEYS.FIRST_TIME_USER_ONBOARDING_INTRO_MODAL_VISIBILITY, ); return flag; } catch (error) { log.error( - "An error occurred while fetching FIRST_TIME_USER_EXPERIENCE_INTRO_MODAL_VISIBILITY", + "An error occurred while fetching FIRST_TIME_USER_ONBOARDING_INTRO_MODAL_VISIBILITY", ); log.error(error); } From 96194b60a7aa38d960e5bd399b693518da7ae8d3 Mon Sep 17 00:00:00 2001 From: sbalaji1192 Date: Thu, 9 Sep 2021 13:16:29 +0530 Subject: [PATCH 10/13] Unit test fixes --- .../Statusbar.test.tsx | 26 +- .../FirstTimeUserOnboarding/testUtils.ts | 5 +- .../reducers/uiReducers/onBoardingReducer.ts | 22 +- app/client/src/sagas/PageSagas.tsx | 4 +- .../src/selectors/onboardingSelectors.tsx | 4 +- coverage-summary.json | 343 ++++++++++-------- 6 files changed, 213 insertions(+), 191 deletions(-) diff --git a/app/client/src/pages/Editor/FirstTimeUserOnboarding/Statusbar.test.tsx b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Statusbar.test.tsx index 919542e8f701..10c57a07b27f 100644 --- a/app/client/src/pages/Editor/FirstTimeUserOnboarding/Statusbar.test.tsx +++ b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Statusbar.test.tsx @@ -4,13 +4,13 @@ import { render, screen } from "test/testUtils"; import OnboardingStatusbar from "./Statusbar"; import { getStore } from "./testUtils"; import { - ONBOARDING_STEPS_FIRST, - ONBOARDING_STEPS_SECOND, - ONBOARDING_STEPS_THIRD, - ONBOARDING_STEPS_FOURTH, - ONBOARDING_STEPS_FIVETH, - ONBOARDING_STEPS_SIXTH, -} from "./constants"; + ONBOARDING_STATUS_STEPS_FIRST, + ONBOARDING_STATUS_STEPS_SECOND, + ONBOARDING_STATUS_STEPS_THIRD, + ONBOARDING_STATUS_STEPS_FOURTH, + ONBOARDING_STATUS_STEPS_FIVETH, + ONBOARDING_STATUS_STEPS_SIXTH, +} from "constants/messages"; let useIsWidgetActionConnectionPresent = false; jest.mock("pages/Editor/utils", () => ({ @@ -51,37 +51,37 @@ describe("Statusbar", () => { it("is showing first step", async () => { renderComponent(getStore(0)); const statusbarText = screen.queryAllByTestId("statusbar-text"); - expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STEPS_FIRST); + expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STATUS_STEPS_FIRST()); }); it("is showing second step", async () => { renderComponent(getStore(1)); const statusbarText = screen.queryAllByTestId("statusbar-text"); - expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STEPS_SECOND); + expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STATUS_STEPS_SECOND()); }); it("is showing third step", async () => { renderComponent(getStore(2)); const statusbarText = screen.queryAllByTestId("statusbar-text"); - expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STEPS_THIRD); + expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STATUS_STEPS_THIRD()); }); it("is showing fourth step", async () => { renderComponent(getStore(3)); const statusbarText = screen.queryAllByTestId("statusbar-text"); - expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STEPS_FOURTH); + expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STATUS_STEPS_FOURTH()); }); it("is showing fifth step", async () => { useIsWidgetActionConnectionPresent = true; renderComponent(getStore(4)); const statusbarText = screen.queryAllByTestId("statusbar-text"); - expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STEPS_FIVETH); + expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STATUS_STEPS_FIVETH()); }); it("is showing fifth step", async () => { renderComponent(getStore(5)); const statusbarText = screen.queryAllByTestId("statusbar-text"); - expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STEPS_SIXTH); + expect(statusbarText[0].innerHTML).toBe(ONBOARDING_STATUS_STEPS_SIXTH()); }); }); diff --git a/app/client/src/pages/Editor/FirstTimeUserOnboarding/testUtils.ts b/app/client/src/pages/Editor/FirstTimeUserOnboarding/testUtils.ts index c180e3c74cc7..8c58374a22a0 100644 --- a/app/client/src/pages/Editor/FirstTimeUserOnboarding/testUtils.ts +++ b/app/client/src/pages/Editor/FirstTimeUserOnboarding/testUtils.ts @@ -28,8 +28,9 @@ export const initialState: any = { }, }, onBoarding: { - firstTimeUserExperienceComplete: false, + firstTimeUserOnboardingComplete: false, showFirstTimeUserOnboardingModal: true, + enableFirstTimeUserOnboarding: true, }, theme: { theme: { @@ -71,7 +72,7 @@ export function getStore(step: number) { break; case 5: state.ui.applications.currentApplication.lastDeployedAt = Math.random(); - state.ui.onBoarding.firstTimeUserExperienceComplete = true; + state.ui.onBoarding.firstTimeUserOnboardingComplete = true; break; } return mockStore(state); diff --git a/app/client/src/reducers/uiReducers/onBoardingReducer.ts b/app/client/src/reducers/uiReducers/onBoardingReducer.ts index a0d8ad008a3b..9da503d46fa4 100644 --- a/app/client/src/reducers/uiReducers/onBoardingReducer.ts +++ b/app/client/src/reducers/uiReducers/onBoardingReducer.ts @@ -29,10 +29,9 @@ const initialState: OnboardingState = { }, inOnboardingWidgetSelection: false, enableFirstTimeUserOnboarding: false, - firstTimeUserExperienceApplicationId: "", - firstTimeUserExperienceComplete: false, - showFirstTimeUserExperienceModal: false, forceOpenWidgetPanel: false, + firstTimeUserOnboardingApplicationId: "", + firstTimeUserOnboardingComplete: false, showFirstTimeUserOnboardingModal: false, }; @@ -50,10 +49,9 @@ export interface OnboardingState { showingIndicator: OnboardingStep; inOnboardingWidgetSelection: boolean; enableFirstTimeUserOnboarding: boolean; - firstTimeUserExperienceApplicationId: string; - firstTimeUserExperienceComplete: boolean; - showFirstTimeUserExperienceModal: boolean; forceOpenWidgetPanel: boolean; + firstTimeUserOnboardingApplicationId: string; + firstTimeUserOnboardingComplete: boolean; showFirstTimeUserOnboardingModal: boolean; } @@ -100,8 +98,8 @@ const onboardingReducer = createReducer(initialState, { ...initialState, inOnboarding: action.payload, enableFirstTimeUserOnboarding: state.enableFirstTimeUserOnboarding, - firstTimeUserExperienceApplicationId: - state.firstTimeUserExperienceApplicationId, + firstTimeUserOnboardingApplicationId: + state.firstTimeUserOnboardingApplicationId, showFirstTimeUserOnboardingModal: state.showFirstTimeUserOnboardingModal, }; }, @@ -161,8 +159,8 @@ const onboardingReducer = createReducer(initialState, { ...state, ...initialState, enableFirstTimeUserOnboarding: state.enableFirstTimeUserOnboarding, - firstTimeUserExperienceApplicationId: - state.firstTimeUserExperienceApplicationId, + firstTimeUserOnboardingApplicationId: + state.firstTimeUserOnboardingApplicationId, showFirstTimeUserOnboardingModal: state.showFirstTimeUserOnboardingModal, }; }, @@ -190,7 +188,7 @@ const onboardingReducer = createReducer(initialState, { ) => { return { ...state, - firstTimeUserExperienceApplicationId: action.payload, + firstTimeUserOnboardingApplicationId: action.payload, }; }, [ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_COMPLETE]: ( @@ -199,7 +197,7 @@ const onboardingReducer = createReducer(initialState, { ) => { return { ...state, - firstTimeUserExperienceComplete: action.payload, + firstTimeUserOnboardingComplete: action.payload, }; }, [ReduxActionTypes.SET_SHOW_FIRST_TIME_USER_ONBOARDING_MODAL]: ( diff --git a/app/client/src/sagas/PageSagas.tsx b/app/client/src/sagas/PageSagas.tsx index 6b003f4c0d0f..106cfb4ecbc4 100644 --- a/app/client/src/sagas/PageSagas.tsx +++ b/app/client/src/sagas/PageSagas.tsx @@ -513,14 +513,14 @@ export function* createPageSaga( }); // route to generate template for new page created if (!createPageAction.payload.blockNavigation) { - const firstTimeUserExperienceApplicationId = yield select( + const firstTimeUserOnboardingApplicationId = yield select( getFirstTimeUserOnboardingApplicationId, ); const isFirstTimeUserOnboardingEnabled = yield select( getIsFirstTimeUserOnboardingEnabled, ); if ( - firstTimeUserExperienceApplicationId == + firstTimeUserOnboardingApplicationId == createPageAction.payload.applicationId && isFirstTimeUserOnboardingEnabled ) { diff --git a/app/client/src/selectors/onboardingSelectors.tsx b/app/client/src/selectors/onboardingSelectors.tsx index 529aac6deb3e..5b1244090509 100644 --- a/app/client/src/selectors/onboardingSelectors.tsx +++ b/app/client/src/selectors/onboardingSelectors.tsx @@ -14,11 +14,11 @@ export const getEnableFirstTimeUserOnboarding = (state: AppState) => { }; export const getFirstTimeUserOnboardingApplicationId = (state: AppState) => { - return state.ui.onBoarding.firstTimeUserExperienceApplicationId; + return state.ui.onBoarding.firstTimeUserOnboardingApplicationId; }; export const getFirstTimeUserOnboardingComplete = (state: AppState) => { - return state.ui.onBoarding.firstTimeUserExperienceComplete; + return state.ui.onBoarding.firstTimeUserOnboardingComplete; }; export const getFirstTimeUserOnboardingModal = (state: AppState) => diff --git a/coverage-summary.json b/coverage-summary.json index b6b2ceb3a823..5b3ff48c8394 100644 --- a/coverage-summary.json +++ b/coverage-summary.json @@ -1,11 +1,11 @@ -{"total": {"lines":{"total":35837,"covered":19987,"skipped":0,"pct":55.77},"statements":{"total":40018,"covered":22093,"skipped":0,"pct":55.21},"functions":{"total":8641,"covered":2930,"skipped":0,"pct":33.91},"branches":{"total":21287,"covered":7959,"skipped":0,"pct":37.39}} +{"total": {"lines":{"total":37834,"covered":20890,"skipped":0,"pct":55.21},"statements":{"total":42367,"covered":23179,"skipped":0,"pct":54.71},"functions":{"total":9151,"covered":3135,"skipped":0,"pct":34.26},"branches":{"total":22216,"covered":8200,"skipped":0,"pct":36.91}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/store.ts": {"lines":{"total":19,"covered":16,"skipped":0,"pct":84.21},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":20,"covered":17,"skipped":0,"pct":85},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/apiPaneActions.ts": {"lines":{"total":19,"covered":10,"skipped":0,"pct":52.63},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":28,"covered":19,"skipped":0,"pct":67.86},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/appCollabActions.ts": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":11,"skipped":0,"pct":73.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/applicationActions.ts": {"lines":{"total":20,"covered":12,"skipped":0,"pct":60},"functions":{"total":10,"covered":2,"skipped":0,"pct":20},"statements":{"total":31,"covered":23,"skipped":0,"pct":74.19},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/batchActions.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/canvasSelectionActions.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":10,"covered":10,"skipped":0,"pct":100},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/commentActions.ts": {"lines":{"total":69,"covered":54,"skipped":0,"pct":78.26},"functions":{"total":45,"covered":19,"skipped":0,"pct":42.22},"statements":{"total":140,"covered":111,"skipped":0,"pct":79.29},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/commentActions.ts": {"lines":{"total":76,"covered":61,"skipped":0,"pct":80.26},"functions":{"total":48,"covered":22,"skipped":0,"pct":45.83},"statements":{"total":149,"covered":120,"skipped":0,"pct":80.54},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/controlActions.tsx": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":13,"covered":10,"skipped":0,"pct":76.92},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/crudInfoModalActions.ts": {"lines":{"total":3,"covered":2,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/datasourceActions.ts": {"lines":{"total":46,"covered":22,"skipped":0,"pct":47.83},"functions":{"total":20,"covered":0,"skipped":0,"pct":0},"statements":{"total":67,"covered":42,"skipped":0,"pct":62.69},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} @@ -18,20 +18,21 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/helpActions.ts": {"lines":{"total":5,"covered":3,"skipped":0,"pct":60},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/importActions.ts": {"lines":{"total":3,"covered":2,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/initActions.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":10,"covered":9,"skipped":0,"pct":90},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/jsActionActions.ts": {"lines":{"total":33,"covered":18,"skipped":0,"pct":54.55},"functions":{"total":16,"covered":0,"skipped":0,"pct":0},"statements":{"total":50,"covered":34,"skipped":0,"pct":68},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/jsPaneActions.ts": {"lines":{"total":17,"covered":9,"skipped":0,"pct":52.94},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":17,"skipped":0,"pct":68},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/metaActions.ts": {"lines":{"total":8,"covered":6,"skipped":0,"pct":75},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":11,"covered":9,"skipped":0,"pct":81.82},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/notificationActions.ts": {"lines":{"total":14,"covered":12,"skipped":0,"pct":85.71},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":34,"covered":23,"skipped":0,"pct":67.65},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/onboardingActions.ts": {"lines":{"total":23,"covered":13,"skipped":0,"pct":56.52},"functions":{"total":11,"covered":1,"skipped":0,"pct":9.09},"statements":{"total":34,"covered":24,"skipped":0,"pct":70.59},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/orgActions.ts": {"lines":{"total":17,"covered":9,"skipped":0,"pct":52.94},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":17,"skipped":0,"pct":68},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/pageActions.tsx": {"lines":{"total":66,"covered":40,"skipped":0,"pct":60.61},"functions":{"total":28,"covered":10,"skipped":0,"pct":35.71},"statements":{"total":98,"covered":70,"skipped":0,"pct":71.43},"branches":{"total":4,"covered":1,"skipped":0,"pct":25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/pageActions.tsx": {"lines":{"total":66,"covered":39,"skipped":0,"pct":59.09},"functions":{"total":28,"covered":8,"skipped":0,"pct":28.57},"statements":{"total":98,"covered":68,"skipped":0,"pct":69.39},"branches":{"total":4,"covered":1,"skipped":0,"pct":25}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/pluginActionActions.ts": {"lines":{"total":64,"covered":36,"skipped":0,"pct":56.25},"functions":{"total":32,"covered":1,"skipped":0,"pct":3.13},"statements":{"total":100,"covered":68,"skipped":0,"pct":68},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/pluginActions.ts": {"lines":{"total":12,"covered":7,"skipped":0,"pct":58.33},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":20,"covered":13,"skipped":0,"pct":65},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/propertyPaneActions.ts": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":16,"covered":14,"skipped":0,"pct":87.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/providerActions.ts": {"lines":{"total":17,"covered":9,"skipped":0,"pct":52.94},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":17,"skipped":0,"pct":68},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/queryPaneActions.ts": {"lines":{"total":7,"covered":4,"skipped":0,"pct":57.14},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":7,"skipped":0,"pct":70},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/themeActions.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/tourActions.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":9,"skipped":0,"pct":69.23},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/userActions.ts": {"lines":{"total":22,"covered":19,"skipped":0,"pct":86.36},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":53,"covered":36,"skipped":0,"pct":67.92},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/websocketActions.ts": {"lines":{"total":8,"covered":6,"skipped":0,"pct":75},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":10,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/websocketActions.ts": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":12,"skipped":0,"pct":70.59},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/widgetActions.tsx": {"lines":{"total":35,"covered":27,"skipped":0,"pct":77.14},"functions":{"total":15,"covered":8,"skipped":0,"pct":53.33},"statements":{"total":51,"covered":43,"skipped":0,"pct":84.31},"branches":{"total":4,"covered":1,"skipped":0,"pct":25}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/widgetSelectionActions.ts": {"lines":{"total":19,"covered":19,"skipped":0,"pct":100},"functions":{"total":9,"covered":9,"skipped":0,"pct":100},"statements":{"total":28,"covered":28,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/actions/widgetSidebarActions.tsx": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":14,"covered":11,"skipped":0,"pct":78.57},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} @@ -44,27 +45,31 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/CommentsAPI.tsx": {"lines":{"total":29,"covered":22,"skipped":0,"pct":75.86},"functions":{"total":12,"covered":5,"skipped":0,"pct":41.67},"statements":{"total":30,"covered":23,"skipped":0,"pct":76.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/DatasourcesApi.ts": {"lines":{"total":27,"covered":15,"skipped":0,"pct":55.56},"functions":{"total":10,"covered":1,"skipped":0,"pct":10},"statements":{"total":28,"covered":16,"skipped":0,"pct":57.14},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/ImportApi.ts": {"lines":{"total":8,"covered":6,"skipped":0,"pct":75},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":9,"covered":7,"skipped":0,"pct":77.78},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/JSActionAPI.tsx": {"lines":{"total":22,"covered":13,"skipped":0,"pct":59.09},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":23,"covered":14,"skipped":0,"pct":60.87},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/NotificationsAPI.tsx": {"lines":{"total":16,"covered":12,"skipped":0,"pct":75},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":17,"covered":13,"skipped":0,"pct":76.47},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/OrgApi.ts": {"lines":{"total":31,"covered":17,"skipped":0,"pct":54.84},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":32,"covered":18,"skipped":0,"pct":56.25},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/PageApi.tsx": {"lines":{"total":48,"covered":31,"skipped":0,"pct":64.58},"functions":{"total":18,"covered":3,"skipped":0,"pct":16.67},"statements":{"total":50,"covered":32,"skipped":0,"pct":64},"branches":{"total":8,"covered":2,"skipped":0,"pct":25}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/PluginApi.ts": {"lines":{"total":17,"covered":15,"skipped":0,"pct":88.24},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":18,"covered":16,"skipped":0,"pct":88.89},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/PluginApi.ts": {"lines":{"total":18,"covered":16,"skipped":0,"pct":88.89},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":19,"covered":17,"skipped":0,"pct":89.47},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/ProvidersApi.ts": {"lines":{"total":33,"covered":18,"skipped":0,"pct":54.55},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":35,"covered":20,"skipped":0,"pct":57.14},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/SaasApi.ts": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":10,"covered":8,"skipped":0,"pct":80},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/UserApi.tsx": {"lines":{"total":50,"covered":32,"skipped":0,"pct":64},"functions":{"total":16,"covered":1,"skipped":0,"pct":6.25},"statements":{"total":51,"covered":33,"skipped":0,"pct":64.71},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/api/WidgetSidebarApi.tsx": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":8,"covered":7,"skipped":0,"pct":87.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/utils.ts": {"lines":{"total":45,"covered":40,"skipped":0,"pct":88.89},"functions":{"total":10,"covered":7,"skipped":0,"pct":70},"statements":{"total":55,"covered":50,"skipped":0,"pct":90.91},"branches":{"total":30,"covered":14,"skipped":0,"pct":46.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/AppComments/AppCommentThreads.tsx": {"lines":{"total":41,"covered":24,"skipped":0,"pct":58.54},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":42,"covered":25,"skipped":0,"pct":59.52},"branches":{"total":22,"covered":5,"skipped":0,"pct":22.73}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/AppComments/AppCommentsFilterPopover.tsx": {"lines":{"total":37,"covered":18,"skipped":0,"pct":48.65},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":39,"covered":18,"skipped":0,"pct":46.15},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/AppComments/AppCommentsPlaceholder.tsx": {"lines":{"total":8,"covered":6,"skipped":0,"pct":75},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":6,"skipped":0,"pct":75},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/CommentCard/CommentCard.tsx": {"lines":{"total":168,"covered":121,"skipped":0,"pct":72.02},"functions":{"total":42,"covered":18,"skipped":0,"pct":42.86},"statements":{"total":180,"covered":129,"skipped":0,"pct":71.67},"branches":{"total":125,"covered":74,"skipped":0,"pct":59.2}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/CommentCard/CommentContextMenu.tsx": {"lines":{"total":47,"covered":38,"skipped":0,"pct":80.85},"functions":{"total":12,"covered":4,"skipped":0,"pct":33.33},"statements":{"total":50,"covered":40,"skipped":0,"pct":80},"branches":{"total":22,"covered":18,"skipped":0,"pct":81.82}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/CommentCard/ResolveCommentButton.tsx": {"lines":{"total":26,"covered":24,"skipped":0,"pct":92.31},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":28,"covered":26,"skipped":0,"pct":92.86},"branches":{"total":10,"covered":7,"skipped":0,"pct":70}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/CommentThread/CommentThread.tsx": {"lines":{"total":50,"covered":49,"skipped":0,"pct":98},"functions":{"total":12,"covered":10,"skipped":0,"pct":83.33},"statements":{"total":54,"covered":51,"skipped":0,"pct":94.44},"branches":{"total":93,"covered":61,"skipped":0,"pct":65.59}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/CommentThread/CommentThread.tsx": {"lines":{"total":63,"covered":62,"skipped":0,"pct":98.41},"functions":{"total":14,"covered":12,"skipped":0,"pct":85.71},"statements":{"total":67,"covered":64,"skipped":0,"pct":95.52},"branches":{"total":99,"covered":64,"skipped":0,"pct":64.65}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/CommentThread/ScrollToLatest.tsx": {"lines":{"total":13,"covered":8,"skipped":0,"pct":61.54},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":8,"skipped":0,"pct":57.14},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/AddCommentInput.tsx": {"lines":{"total":139,"covered":92,"skipped":0,"pct":66.19},"functions":{"total":23,"covered":14,"skipped":0,"pct":60.87},"statements":{"total":161,"covered":104,"skipped":0,"pct":64.6},"branches":{"total":113,"covered":20,"skipped":0,"pct":17.7}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/Comments.tsx": {"lines":{"total":32,"covered":32,"skipped":0,"pct":100},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":35,"covered":34,"skipped":0,"pct":97.14},"branches":{"total":10,"covered":9,"skipped":0,"pct":90}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/InlineCommentPin.tsx": {"lines":{"total":79,"covered":71,"skipped":0,"pct":89.87},"functions":{"total":18,"covered":17,"skipped":0,"pct":94.44},"statements":{"total":86,"covered":76,"skipped":0,"pct":88.37},"branches":{"total":54,"covered":37,"skipped":0,"pct":68.52}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/CommentThread/connectedCommentThread.tsx": {"lines":{"total":8,"covered":6,"skipped":0,"pct":75},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":6,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/AddCommentInput.tsx": {"lines":{"total":142,"covered":95,"skipped":0,"pct":66.9},"functions":{"total":23,"covered":14,"skipped":0,"pct":60.87},"statements":{"total":164,"covered":107,"skipped":0,"pct":65.24},"branches":{"total":115,"covered":21,"skipped":0,"pct":18.26}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/Comments.tsx": {"lines":{"total":34,"covered":34,"skipped":0,"pct":100},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":38,"covered":37,"skipped":0,"pct":97.37},"branches":{"total":10,"covered":9,"skipped":0,"pct":90}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/InlineCommentPin.tsx": {"lines":{"total":80,"covered":72,"skipped":0,"pct":90},"functions":{"total":18,"covered":17,"skipped":0,"pct":94.44},"statements":{"total":87,"covered":77,"skipped":0,"pct":88.51},"branches":{"total":58,"covered":41,"skipped":0,"pct":70.69}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/OverlayCommentsWrapper.tsx": {"lines":{"total":39,"covered":31,"skipped":0,"pct":79.49},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":40,"covered":31,"skipped":0,"pct":77.5},"branches":{"total":12,"covered":8,"skipped":0,"pct":66.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/StyledComponents.tsx": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":6,"skipped":0,"pct":66.67},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/UnpublishedCommentThread.tsx": {"lines":{"total":27,"covered":24,"skipped":0,"pct":88.89},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":31,"covered":28,"skipped":0,"pct":90.32},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/UnpublishedCommentThread.tsx": {"lines":{"total":32,"covered":28,"skipped":0,"pct":87.5},"functions":{"total":7,"covered":5,"skipped":0,"pct":71.43},"statements":{"total":36,"covered":32,"skipped":0,"pct":88.89},"branches":{"total":8,"covered":2,"skipped":0,"pct":25}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/inlineComments/useOrgUsers.tsx": {"lines":{"total":18,"covered":17,"skipped":0,"pct":94.44},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":18,"covered":17,"skipped":0,"pct":94.44},"branches":{"total":13,"covered":10,"skipped":0,"pct":76.92}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/tests/setMockPages.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/comments/tour/commentsTourSteps.ts": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":12,"covered":12,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} @@ -73,14 +78,14 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/ButtonTabComponent.tsx": {"lines":{"total":14,"covered":6,"skipped":0,"pct":42.86},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":6,"skipped":0,"pct":42.86},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Callout.tsx": {"lines":{"total":23,"covered":10,"skipped":0,"pct":43.48},"functions":{"total":13,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":10,"skipped":0,"pct":43.48},"branches":{"total":20,"covered":4,"skipped":0,"pct":20}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Checkbox.tsx": {"lines":{"total":33,"covered":10,"skipped":0,"pct":30.3},"functions":{"total":16,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":10,"skipped":0,"pct":27.03},"branches":{"total":32,"covered":6,"skipped":0,"pct":18.75}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/ColorPickerComponent.tsx": {"lines":{"total":44,"covered":14,"skipped":0,"pct":31.82},"functions":{"total":22,"covered":0,"skipped":0,"pct":0},"statements":{"total":49,"covered":14,"skipped":0,"pct":28.57},"branches":{"total":24,"covered":14,"skipped":0,"pct":58.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/ColorPickerComponent.tsx": {"lines":{"total":35,"covered":14,"skipped":0,"pct":40},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":14,"skipped":0,"pct":37.84},"branches":{"total":22,"covered":14,"skipped":0,"pct":63.64}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/CopyToClipBoard.tsx": {"lines":{"total":21,"covered":7,"skipped":0,"pct":33.33},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":7,"skipped":0,"pct":30.43},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/CurrencyCodeDropdown.tsx": {"lines":{"total":24,"covered":14,"skipped":0,"pct":58.33},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":25,"covered":15,"skipped":0,"pct":60},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/DatePickerComponent.tsx": {"lines":{"total":17,"covered":8,"skipped":0,"pct":47.06},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":8,"skipped":0,"pct":47.06},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/DialogComponent.tsx": {"lines":{"total":36,"covered":32,"skipped":0,"pct":88.89},"functions":{"total":22,"covered":20,"skipped":0,"pct":90.91},"statements":{"total":38,"covered":34,"skipped":0,"pct":89.47},"branches":{"total":22,"covered":14,"skipped":0,"pct":63.64}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/DraggableList.tsx": {"lines":{"total":49,"covered":23,"skipped":0,"pct":46.94},"functions":{"total":14,"covered":3,"skipped":0,"pct":21.43},"statements":{"total":61,"covered":25,"skipped":0,"pct":40.98},"branches":{"total":18,"covered":6,"skipped":0,"pct":33.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/DraggableListComponent.tsx": {"lines":{"total":23,"covered":16,"skipped":0,"pct":69.57},"functions":{"total":9,"covered":3,"skipped":0,"pct":33.33},"statements":{"total":29,"covered":18,"skipped":0,"pct":62.07},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Dropdown.tsx": {"lines":{"total":123,"covered":63,"skipped":0,"pct":51.22},"functions":{"total":52,"covered":13,"skipped":0,"pct":25},"statements":{"total":136,"covered":72,"skipped":0,"pct":52.94},"branches":{"total":183,"covered":69,"skipped":0,"pct":37.7}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Dropdown.tsx": {"lines":{"total":131,"covered":70,"skipped":0,"pct":53.44},"functions":{"total":53,"covered":14,"skipped":0,"pct":26.42},"statements":{"total":146,"covered":81,"skipped":0,"pct":55.48},"branches":{"total":187,"covered":74,"skipped":0,"pct":39.57}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/EditableText.tsx": {"lines":{"total":26,"covered":19,"skipped":0,"pct":73.08},"functions":{"total":8,"covered":6,"skipped":0,"pct":75},"statements":{"total":33,"covered":26,"skipped":0,"pct":78.79},"branches":{"total":16,"covered":5,"skipped":0,"pct":31.25}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/EditableTextSubComponent.tsx": {"lines":{"total":89,"covered":59,"skipped":0,"pct":66.29},"functions":{"total":32,"covered":25,"skipped":0,"pct":78.13},"statements":{"total":96,"covered":65,"skipped":0,"pct":67.71},"branches":{"total":88,"covered":39,"skipped":0,"pct":44.32}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/EmojiPicker.tsx": {"lines":{"total":21,"covered":18,"skipped":0,"pct":85.71},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":23,"covered":20,"skipped":0,"pct":86.96},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} @@ -88,7 +93,7 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/FilePicker.tsx": {"lines":{"total":156,"covered":70,"skipped":0,"pct":44.87},"functions":{"total":46,"covered":27,"skipped":0,"pct":58.7},"statements":{"total":166,"covered":80,"skipped":0,"pct":48.19},"branches":{"total":84,"covered":13,"skipped":0,"pct":15.48}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/GifPlayerComponent.tsx": {"lines":{"total":17,"covered":9,"skipped":0,"pct":52.94},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":19,"covered":9,"skipped":0,"pct":47.37},"branches":{"total":8,"covered":6,"skipped":0,"pct":75}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/ISDCodeDropdown.tsx": {"lines":{"total":27,"covered":13,"skipped":0,"pct":48.15},"functions":{"total":9,"covered":2,"skipped":0,"pct":22.22},"statements":{"total":28,"covered":14,"skipped":0,"pct":50},"branches":{"total":20,"covered":2,"skipped":0,"pct":10}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Icon.tsx": {"lines":{"total":296,"covered":164,"skipped":0,"pct":55.41},"functions":{"total":9,"covered":9,"skipped":0,"pct":100},"statements":{"total":297,"covered":165,"skipped":0,"pct":55.56},"branches":{"total":125,"covered":48,"skipped":0,"pct":38.4}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Icon.tsx": {"lines":{"total":302,"covered":166,"skipped":0,"pct":54.97},"functions":{"total":9,"covered":9,"skipped":0,"pct":100},"statements":{"total":303,"covered":167,"skipped":0,"pct":55.12},"branches":{"total":127,"covered":48,"skipped":0,"pct":37.8}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/IconTabsComponent.tsx": {"lines":{"total":15,"covered":6,"skipped":0,"pct":40},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":18,"covered":6,"skipped":0,"pct":33.33},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/MentionsInput.tsx": {"lines":{"total":76,"covered":47,"skipped":0,"pct":61.84},"functions":{"total":23,"covered":6,"skipped":0,"pct":26.09},"statements":{"total":83,"covered":53,"skipped":0,"pct":63.86},"branches":{"total":54,"covered":21,"skipped":0,"pct":38.89}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Menu.tsx": {"lines":{"total":13,"covered":7,"skipped":0,"pct":53.85},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":7,"skipped":0,"pct":53.85},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} @@ -97,7 +102,6 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/MultiSwitch.tsx": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":7,"skipped":0,"pct":46.67},"branches":{"total":10,"covered":6,"skipped":0,"pct":60}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/MultiselectDropdown.tsx": {"lines":{"total":78,"covered":15,"skipped":0,"pct":19.23},"functions":{"total":40,"covered":0,"skipped":0,"pct":0},"statements":{"total":83,"covered":15,"skipped":0,"pct":18.07},"branches":{"total":84,"covered":14,"skipped":0,"pct":16.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Radio.tsx": {"lines":{"total":38,"covered":5,"skipped":0,"pct":13.16},"functions":{"total":27,"covered":0,"skipped":0,"pct":0},"statements":{"total":40,"covered":5,"skipped":0,"pct":12.5},"branches":{"total":40,"covered":4,"skipped":0,"pct":10}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/RectangularSwitcher.tsx": {"lines":{"total":26,"covered":8,"skipped":0,"pct":30.77},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":30,"covered":8,"skipped":0,"pct":26.67},"branches":{"total":20,"covered":6,"skipped":0,"pct":30}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/ScrollIndicator.tsx": {"lines":{"total":42,"covered":34,"skipped":0,"pct":80.95},"functions":{"total":15,"covered":13,"skipped":0,"pct":86.67},"statements":{"total":46,"covered":38,"skipped":0,"pct":82.61},"branches":{"total":36,"covered":20,"skipped":0,"pct":55.56}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Spinner.tsx": {"lines":{"total":15,"covered":10,"skipped":0,"pct":66.67},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":10,"skipped":0,"pct":66.67},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/StepComponent.tsx": {"lines":{"total":22,"covered":9,"skipped":0,"pct":40.91},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":9,"skipped":0,"pct":40.91},"branches":{"total":12,"covered":8,"skipped":0,"pct":66.67}} @@ -105,21 +109,22 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Tabs.tsx": {"lines":{"total":43,"covered":12,"skipped":0,"pct":27.91},"functions":{"total":25,"covered":0,"skipped":0,"pct":0},"statements":{"total":45,"covered":12,"skipped":0,"pct":26.67},"branches":{"total":48,"covered":8,"skipped":0,"pct":16.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/TagInputComponent.tsx": {"lines":{"total":57,"covered":7,"skipped":0,"pct":12.28},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":61,"covered":7,"skipped":0,"pct":11.48},"branches":{"total":38,"covered":2,"skipped":0,"pct":5.26}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Text.tsx": {"lines":{"total":42,"covered":42,"skipped":0,"pct":100},"functions":{"total":14,"covered":14,"skipped":0,"pct":100},"statements":{"total":43,"covered":43,"skipped":0,"pct":100},"branches":{"total":28,"covered":21,"skipped":0,"pct":75}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/TextInput.tsx": {"lines":{"total":74,"covered":52,"skipped":0,"pct":70.27},"functions":{"total":20,"covered":17,"skipped":0,"pct":85},"statements":{"total":79,"covered":57,"skipped":0,"pct":72.15},"branches":{"total":49,"covered":22,"skipped":0,"pct":44.9}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Toast.tsx": {"lines":{"total":46,"covered":22,"skipped":0,"pct":47.83},"functions":{"total":17,"covered":2,"skipped":0,"pct":11.76},"statements":{"total":46,"covered":22,"skipped":0,"pct":47.83},"branches":{"total":54,"covered":18,"skipped":0,"pct":33.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/TextInput.tsx": {"lines":{"total":77,"covered":55,"skipped":0,"pct":71.43},"functions":{"total":21,"covered":18,"skipped":0,"pct":85.71},"statements":{"total":82,"covered":60,"skipped":0,"pct":73.17},"branches":{"total":49,"covered":22,"skipped":0,"pct":44.9}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Toast.tsx": {"lines":{"total":46,"covered":36,"skipped":0,"pct":78.26},"functions":{"total":17,"covered":15,"skipped":0,"pct":88.24},"statements":{"total":46,"covered":36,"skipped":0,"pct":78.26},"branches":{"total":54,"covered":33,"skipped":0,"pct":61.11}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Toggle.tsx": {"lines":{"total":22,"covered":6,"skipped":0,"pct":27.27},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":24,"covered":6,"skipped":0,"pct":25},"branches":{"total":30,"covered":2,"skipped":0,"pct":6.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/Tooltip.tsx": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/TreeDropdown.tsx": {"lines":{"total":54,"covered":28,"skipped":0,"pct":51.85},"functions":{"total":23,"covered":7,"skipped":0,"pct":30.43},"statements":{"total":56,"covered":30,"skipped":0,"pct":53.57},"branches":{"total":34,"covered":20,"skipped":0,"pct":58.82}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/common.tsx": {"lines":{"total":41,"covered":27,"skipped":0,"pct":65.85},"functions":{"total":7,"covered":4,"skipped":0,"pct":57.14},"statements":{"total":46,"covered":32,"skipped":0,"pct":69.57},"branches":{"total":13,"covered":7,"skipped":0,"pct":53.85}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/ads/tour/TourTooltipWrapper.tsx": {"lines":{"total":32,"covered":30,"skipped":0,"pct":93.75},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":33,"covered":31,"skipped":0,"pct":93.94},"branches":{"total":38,"covered":17,"skipped":0,"pct":44.74}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/CenteredWrapper.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/ChartComponent.tsx": {"lines":{"total":158,"covered":75,"skipped":0,"pct":47.47},"functions":{"total":32,"covered":16,"skipped":0,"pct":50},"statements":{"total":170,"covered":84,"skipped":0,"pct":49.41},"branches":{"total":91,"covered":20,"skipped":0,"pct":21.98}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/CheckboxGroupComponent.tsx": {"lines":{"total":14,"covered":7,"skipped":0,"pct":50},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":7,"skipped":0,"pct":41.18},"branches":{"total":17,"covered":4,"skipped":0,"pct":23.53}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/AudioRecorderComponent.tsx": {"lines":{"total":238,"covered":37,"skipped":0,"pct":15.55},"functions":{"total":43,"covered":3,"skipped":0,"pct":6.98},"statements":{"total":275,"covered":37,"skipped":0,"pct":13.45},"branches":{"total":90,"covered":14,"skipped":0,"pct":15.56}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/CenteredWrapper.tsx": {"lines":{"total":3,"covered":2,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":3,"covered":2,"skipped":0,"pct":66.67},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/ChartComponent.tsx": {"lines":{"total":158,"covered":75,"skipped":0,"pct":47.47},"functions":{"total":32,"covered":16,"skipped":0,"pct":50},"statements":{"total":170,"covered":84,"skipped":0,"pct":49.41},"branches":{"total":95,"covered":21,"skipped":0,"pct":22.11}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/CheckboxGroupComponent.tsx": {"lines":{"total":12,"covered":6,"skipped":0,"pct":50},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":6,"skipped":0,"pct":42.86},"branches":{"total":15,"covered":2,"skipped":0,"pct":13.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/ContainerComponent.tsx": {"lines":{"total":29,"covered":27,"skipped":0,"pct":93.1},"functions":{"total":11,"covered":11,"skipped":0,"pct":100},"statements":{"total":29,"covered":27,"skipped":0,"pct":93.1},"branches":{"total":40,"covered":26,"skipped":0,"pct":65}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/CopyToClipBoard.tsx": {"lines":{"total":21,"covered":7,"skipped":0,"pct":33.33},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":7,"skipped":0,"pct":30.43},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/Dropdown.tsx": {"lines":{"total":22,"covered":7,"skipped":0,"pct":31.82},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":7,"skipped":0,"pct":31.82},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/FilePickerComponent.tsx": {"lines":{"total":20,"covered":10,"skipped":0,"pct":50},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":21,"covered":11,"skipped":0,"pct":52.38},"branches":{"total":8,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/IconButtonComponent.tsx": {"lines":{"total":33,"covered":20,"skipped":0,"pct":60.61},"functions":{"total":9,"covered":2,"skipped":0,"pct":22.22},"statements":{"total":40,"covered":20,"skipped":0,"pct":50},"branches":{"total":96,"covered":8,"skipped":0,"pct":8.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/IconButtonComponent.tsx": {"lines":{"total":34,"covered":21,"skipped":0,"pct":61.76},"functions":{"total":10,"covered":2,"skipped":0,"pct":20},"statements":{"total":43,"covered":21,"skipped":0,"pct":48.84},"branches":{"total":102,"covered":8,"skipped":0,"pct":7.84}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/IconComponent.tsx": {"lines":{"total":8,"covered":7,"skipped":0,"pct":87.5},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":9,"covered":8,"skipped":0,"pct":88.89},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/ImageComponent.tsx": {"lines":{"total":90,"covered":15,"skipped":0,"pct":16.67},"functions":{"total":24,"covered":2,"skipped":0,"pct":8.33},"statements":{"total":101,"covered":16,"skipped":0,"pct":15.84},"branches":{"total":64,"covered":10,"skipped":0,"pct":15.63}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/MapComponent.tsx": {"lines":{"total":41,"covered":13,"skipped":0,"pct":31.71},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":43,"covered":13,"skipped":0,"pct":30.23},"branches":{"total":33,"covered":8,"skipped":0,"pct":24.24}} @@ -129,50 +134,48 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/SearchComponent.tsx": {"lines":{"total":21,"covered":16,"skipped":0,"pct":76.19},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":22,"covered":17,"skipped":0,"pct":77.27},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/StyledHeader.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TabbedView.tsx": {"lines":{"total":14,"covered":6,"skipped":0,"pct":42.86},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":6,"skipped":0,"pct":42.86},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TabsComponent.tsx": {"lines":{"total":36,"covered":36,"skipped":0,"pct":100},"functions":{"total":18,"covered":18,"skipped":0,"pct":100},"statements":{"total":37,"covered":37,"skipped":0,"pct":100},"branches":{"total":34,"covered":29,"skipped":0,"pct":85.29}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TabsComponent.tsx": {"lines":{"total":41,"covered":41,"skipped":0,"pct":100},"functions":{"total":19,"covered":19,"skipped":0,"pct":100},"statements":{"total":42,"covered":42,"skipped":0,"pct":100},"branches":{"total":36,"covered":30,"skipped":0,"pct":83.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TextInputComponent.tsx": {"lines":{"total":35,"covered":10,"skipped":0,"pct":28.57},"functions":{"total":11,"covered":1,"skipped":0,"pct":9.09},"statements":{"total":40,"covered":12,"skipped":0,"pct":30},"branches":{"total":27,"covered":4,"skipped":0,"pct":14.81}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/VideoComponent.tsx": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":7,"skipped":0,"pct":77.78},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/MenuButtonComponent/index.tsx": {"lines":{"total":66,"covered":19,"skipped":0,"pct":28.79},"functions":{"total":19,"covered":0,"skipped":0,"pct":0},"statements":{"total":74,"covered":19,"skipped":0,"pct":25.68},"branches":{"total":151,"covered":10,"skipped":0,"pct":6.62}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/MenuButtonComponent/index.tsx": {"lines":{"total":63,"covered":19,"skipped":0,"pct":30.16},"functions":{"total":19,"covered":0,"skipped":0,"pct":0},"statements":{"total":71,"covered":19,"skipped":0,"pct":26.76},"branches":{"total":151,"covered":10,"skipped":0,"pct":6.62}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/MultiSelectComponent/index.styled.tsx": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":12,"skipped":0,"pct":92.31},"branches":{"total":10,"covered":10,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/MultiSelectComponent/index.tsx": {"lines":{"total":48,"covered":9,"skipped":0,"pct":18.75},"functions":{"total":13,"covered":0,"skipped":0,"pct":0},"statements":{"total":52,"covered":9,"skipped":0,"pct":17.31},"branches":{"total":38,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/AutoToolTipComponent.tsx": {"lines":{"total":29,"covered":9,"skipped":0,"pct":31.03},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":9,"skipped":0,"pct":27.27},"branches":{"total":28,"covered":4,"skipped":0,"pct":14.29}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/CascadeFields.tsx": {"lines":{"total":121,"covered":36,"skipped":0,"pct":29.75},"functions":{"total":32,"covered":1,"skipped":0,"pct":3.13},"statements":{"total":128,"covered":36,"skipped":0,"pct":28.13},"branches":{"total":73,"covered":18,"skipped":0,"pct":24.66}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/CommonUtilities.ts": {"lines":{"total":32,"covered":28,"skipped":0,"pct":87.5},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":35,"covered":31,"skipped":0,"pct":88.57},"branches":{"total":47,"covered":23,"skipped":0,"pct":48.94}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/Constants.ts": {"lines":{"total":62,"covered":53,"skipped":0,"pct":85.48},"functions":{"total":23,"covered":21,"skipped":0,"pct":91.3},"statements":{"total":62,"covered":53,"skipped":0,"pct":85.48},"branches":{"total":34,"covered":25,"skipped":0,"pct":73.53}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/Table.tsx": {"lines":{"total":82,"covered":50,"skipped":0,"pct":60.98},"functions":{"total":18,"covered":7,"skipped":0,"pct":38.89},"statements":{"total":86,"covered":53,"skipped":0,"pct":61.63},"branches":{"total":55,"covered":21,"skipped":0,"pct":38.18}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/Table.tsx": {"lines":{"total":82,"covered":50,"skipped":0,"pct":60.98},"functions":{"total":18,"covered":7,"skipped":0,"pct":38.89},"statements":{"total":86,"covered":53,"skipped":0,"pct":61.63},"branches":{"total":54,"covered":21,"skipped":0,"pct":38.89}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableAction.tsx": {"lines":{"total":14,"covered":10,"skipped":0,"pct":71.43},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":14,"covered":10,"skipped":0,"pct":71.43},"branches":{"total":12,"covered":7,"skipped":0,"pct":58.33}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableActionIcon.tsx": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":9,"covered":7,"skipped":0,"pct":77.78},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableCompactMode.tsx": {"lines":{"total":20,"covered":14,"skipped":0,"pct":70},"functions":{"total":8,"covered":2,"skipped":0,"pct":25},"statements":{"total":22,"covered":16,"skipped":0,"pct":72.73},"branches":{"total":12,"covered":5,"skipped":0,"pct":41.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableDataDownload.tsx": {"lines":{"total":62,"covered":21,"skipped":0,"pct":33.87},"functions":{"total":11,"covered":1,"skipped":0,"pct":9.09},"statements":{"total":66,"covered":23,"skipped":0,"pct":34.85},"branches":{"total":36,"covered":5,"skipped":0,"pct":13.89}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableFilterPane.tsx": {"lines":{"total":39,"covered":24,"skipped":0,"pct":61.54},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":41,"covered":25,"skipped":0,"pct":60.98},"branches":{"total":9,"covered":2,"skipped":0,"pct":22.22}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableFilterPaneContent.tsx": {"lines":{"total":51,"covered":16,"skipped":0,"pct":31.37},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":53,"covered":16,"skipped":0,"pct":30.19},"branches":{"total":41,"covered":12,"skipped":0,"pct":29.27}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableFilters.tsx": {"lines":{"total":35,"covered":27,"skipped":0,"pct":77.14},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":37,"covered":29,"skipped":0,"pct":78.38},"branches":{"total":21,"covered":5,"skipped":0,"pct":23.81}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableHeader.tsx": {"lines":{"total":38,"covered":18,"skipped":0,"pct":47.37},"functions":{"total":10,"covered":3,"skipped":0,"pct":30},"statements":{"total":40,"covered":20,"skipped":0,"pct":50},"branches":{"total":50,"covered":26,"skipped":0,"pct":52}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableHeader.tsx": {"lines":{"total":37,"covered":17,"skipped":0,"pct":45.95},"functions":{"total":10,"covered":3,"skipped":0,"pct":30},"statements":{"total":39,"covered":19,"skipped":0,"pct":48.72},"branches":{"total":47,"covered":24,"skipped":0,"pct":51.06}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableHelpers.ts": {"lines":{"total":24,"covered":24,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":29,"covered":29,"skipped":0,"pct":100},"branches":{"total":12,"covered":9,"skipped":0,"pct":75}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableStyledWrappers.tsx": {"lines":{"total":87,"covered":59,"skipped":0,"pct":67.82},"functions":{"total":56,"covered":28,"skipped":0,"pct":50},"statements":{"total":87,"covered":59,"skipped":0,"pct":67.82},"branches":{"total":270,"covered":59,"skipped":0,"pct":21.85}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableUtilities.tsx": {"lines":{"total":113,"covered":47,"skipped":0,"pct":41.59},"functions":{"total":32,"covered":6,"skipped":0,"pct":18.75},"statements":{"total":123,"covered":53,"skipped":0,"pct":43.09},"branches":{"total":97,"covered":19,"skipped":0,"pct":19.59}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/index.tsx": {"lines":{"total":74,"covered":19,"skipped":0,"pct":25.68},"functions":{"total":19,"covered":3,"skipped":0,"pct":15.79},"statements":{"total":77,"covered":21,"skipped":0,"pct":27.27},"branches":{"total":78,"covered":2,"skipped":0,"pct":2.56}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableStyledWrappers.tsx": {"lines":{"total":87,"covered":59,"skipped":0,"pct":67.82},"functions":{"total":56,"covered":28,"skipped":0,"pct":50},"statements":{"total":87,"covered":59,"skipped":0,"pct":67.82},"branches":{"total":272,"covered":57,"skipped":0,"pct":20.96}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/TableUtilities.tsx": {"lines":{"total":130,"covered":50,"skipped":0,"pct":38.46},"functions":{"total":38,"covered":6,"skipped":0,"pct":15.79},"statements":{"total":143,"covered":57,"skipped":0,"pct":39.86},"branches":{"total":103,"covered":24,"skipped":0,"pct":23.3}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/TableComponent/index.tsx": {"lines":{"total":74,"covered":19,"skipped":0,"pct":25.68},"functions":{"total":19,"covered":3,"skipped":0,"pct":15.79},"statements":{"total":77,"covered":21,"skipped":0,"pct":27.27},"branches":{"total":76,"covered":2,"skipped":0,"pct":2.63}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/header/DeployLinkButton.tsx": {"lines":{"total":16,"covered":11,"skipped":0,"pct":68.75},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":18,"covered":13,"skipped":0,"pct":72.22},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/header/ThreeDotsLoading.tsx": {"lines":{"total":5,"covered":4,"skipped":0,"pct":80},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":5,"covered":4,"skipped":0,"pct":80},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/help/CollapsibleHelp.tsx": {"lines":{"total":8,"covered":7,"skipped":0,"pct":87.5},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":7,"skipped":0,"pct":87.5},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/help/DocumentationSearch.tsx": {"lines":{"total":64,"covered":40,"skipped":0,"pct":62.5},"functions":{"total":13,"covered":1,"skipped":0,"pct":7.69},"statements":{"total":72,"covered":44,"skipped":0,"pct":61.11},"branches":{"total":54,"covered":23,"skipped":0,"pct":42.59}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/ButtonComponent.tsx": {"lines":{"total":112,"covered":53,"skipped":0,"pct":47.32},"functions":{"total":26,"covered":10,"skipped":0,"pct":38.46},"statements":{"total":124,"covered":60,"skipped":0,"pct":48.39},"branches":{"total":191,"covered":44,"skipped":0,"pct":23.04}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/CheckboxComponent.tsx": {"lines":{"total":15,"covered":14,"skipped":0,"pct":93.33},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":17,"covered":16,"skipped":0,"pct":94.12},"branches":{"total":15,"covered":10,"skipped":0,"pct":66.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/appsmith/help/DocumentationSearch.tsx": {"lines":{"total":64,"covered":39,"skipped":0,"pct":60.94},"functions":{"total":13,"covered":1,"skipped":0,"pct":7.69},"statements":{"total":72,"covered":43,"skipped":0,"pct":59.72},"branches":{"total":56,"covered":25,"skipped":0,"pct":44.64}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/ButtonComponent.tsx": {"lines":{"total":110,"covered":54,"skipped":0,"pct":49.09},"functions":{"total":27,"covered":11,"skipped":0,"pct":40.74},"statements":{"total":123,"covered":62,"skipped":0,"pct":50.41},"branches":{"total":191,"covered":44,"skipped":0,"pct":23.04}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/CheckboxComponent.tsx": {"lines":{"total":15,"covered":14,"skipped":0,"pct":93.33},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":18,"covered":17,"skipped":0,"pct":94.44},"branches":{"total":15,"covered":11,"skipped":0,"pct":73.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/CloseButton.tsx": {"lines":{"total":9,"covered":5,"skipped":0,"pct":55.56},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":5,"skipped":0,"pct":55.56},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/DatePickerComponent.tsx": {"lines":{"total":72,"covered":19,"skipped":0,"pct":26.39},"functions":{"total":16,"covered":1,"skipped":0,"pct":6.25},"statements":{"total":74,"covered":20,"skipped":0,"pct":27.03},"branches":{"total":69,"covered":2,"skipped":0,"pct":2.9}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/DatePickerComponent2.tsx": {"lines":{"total":80,"covered":19,"skipped":0,"pct":23.75},"functions":{"total":20,"covered":1,"skipped":0,"pct":5},"statements":{"total":84,"covered":20,"skipped":0,"pct":23.81},"branches":{"total":67,"covered":2,"skipped":0,"pct":2.99}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/DividerComponent.tsx": {"lines":{"total":42,"covered":29,"skipped":0,"pct":69.05},"functions":{"total":12,"covered":5,"skipped":0,"pct":41.67},"statements":{"total":48,"covered":31,"skipped":0,"pct":64.58},"branches":{"total":71,"covered":30,"skipped":0,"pct":42.25}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/DropdownComponent.tsx": {"lines":{"total":50,"covered":22,"skipped":0,"pct":44},"functions":{"total":20,"covered":1,"skipped":0,"pct":5},"statements":{"total":52,"covered":23,"skipped":0,"pct":44.23},"branches":{"total":41,"covered":8,"skipped":0,"pct":19.51}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/IframeComponent.tsx": {"lines":{"total":26,"covered":8,"skipped":0,"pct":30.77},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":28,"covered":8,"skipped":0,"pct":28.57},"branches":{"total":21,"covered":4,"skipped":0,"pct":19.05}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/IframeComponent.tsx": {"lines":{"total":30,"covered":8,"skipped":0,"pct":26.67},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":32,"covered":8,"skipped":0,"pct":25},"branches":{"total":23,"covered":4,"skipped":0,"pct":17.39}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/ModalComponent.tsx": {"lines":{"total":29,"covered":10,"skipped":0,"pct":34.48},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":30,"covered":10,"skipped":0,"pct":33.33},"branches":{"total":26,"covered":4,"skipped":0,"pct":15.38}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/RadioGroupComponent.tsx": {"lines":{"total":15,"covered":11,"skipped":0,"pct":73.33},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":18,"covered":12,"skipped":0,"pct":66.67},"branches":{"total":13,"covered":4,"skipped":0,"pct":30.77}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/RateComponent.tsx": {"lines":{"total":30,"covered":11,"skipped":0,"pct":36.67},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":34,"covered":11,"skipped":0,"pct":32.35},"branches":{"total":20,"covered":4,"skipped":0,"pct":20}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/RateComponent.tsx": {"lines":{"total":32,"covered":12,"skipped":0,"pct":37.5},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":12,"skipped":0,"pct":32.43},"branches":{"total":22,"covered":4,"skipped":0,"pct":18.18}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/SwitchComponent.tsx": {"lines":{"total":15,"covered":14,"skipped":0,"pct":93.33},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":15,"covered":14,"skipped":0,"pct":93.33},"branches":{"total":8,"covered":5,"skipped":0,"pct":62.5}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/TextComponent.tsx": {"lines":{"total":31,"covered":31,"skipped":0,"pct":100},"functions":{"total":11,"covered":11,"skipped":0,"pct":100},"statements":{"total":32,"covered":32,"skipped":0,"pct":100},"branches":{"total":60,"covered":44,"skipped":0,"pct":73.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/InputComponent/index.tsx": {"lines":{"total":123,"covered":71,"skipped":0,"pct":57.72},"functions":{"total":41,"covered":26,"skipped":0,"pct":63.41},"statements":{"total":127,"covered":75,"skipped":0,"pct":59.06},"branches":{"total":166,"covered":76,"skipped":0,"pct":45.78}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/designSystems/blueprint/InputComponent/utilties.tsx": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ActionNameEditor.tsx": {"lines":{"total":63,"covered":18,"skipped":0,"pct":28.57},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":66,"covered":18,"skipped":0,"pct":27.27},"branches":{"total":59,"covered":2,"skipped":0,"pct":3.39}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ApiResponseView.tsx": {"lines":{"total":79,"covered":41,"skipped":0,"pct":51.9},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":81,"covered":41,"skipped":0,"pct":50.62},"branches":{"total":72,"covered":26,"skipped":0,"pct":36.11}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ActionNameEditor.tsx": {"lines":{"total":65,"covered":18,"skipped":0,"pct":27.69},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":69,"covered":18,"skipped":0,"pct":26.09},"branches":{"total":59,"covered":2,"skipped":0,"pct":3.39}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ApiResponseView.tsx": {"lines":{"total":80,"covered":42,"skipped":0,"pct":52.5},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":82,"covered":42,"skipped":0,"pct":51.22},"branches":{"total":75,"covered":28,"skipped":0,"pct":37.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Button.tsx": {"lines":{"total":27,"covered":12,"skipped":0,"pct":44.44},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":29,"covered":13,"skipped":0,"pct":44.83},"branches":{"total":43,"covered":8,"skipped":0,"pct":18.6}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CloseEditor.tsx": {"lines":{"total":31,"covered":13,"skipped":0,"pct":41.94},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":31,"covered":13,"skipped":0,"pct":41.94},"branches":{"total":8,"covered":2,"skipped":0,"pct":25}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Divider.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} @@ -188,6 +191,7 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/FormLabel.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/FormRow.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/HelperTooltip.tsx": {"lines":{"total":8,"covered":7,"skipped":0,"pct":87.5},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":7,"skipped":0,"pct":87.5},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/JSResponseView.tsx": {"lines":{"total":61,"covered":28,"skipped":0,"pct":45.9},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":65,"covered":28,"skipped":0,"pct":43.08},"branches":{"total":69,"covered":14,"skipped":0,"pct":20.29}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/LoadingOverlayScreen.tsx": {"lines":{"total":5,"covered":3,"skipped":0,"pct":60},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":5,"covered":3,"skipped":0,"pct":60},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/PaneWrapper.tsx": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/PreventInteractionsOverlay.tsx": {"lines":{"total":13,"covered":13,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":14,"covered":14,"skipped":0,"pct":100},"branches":{"total":8,"covered":7,"skipped":0,"pct":87.5}} @@ -199,63 +203,64 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/SnipeableComponent.tsx": {"lines":{"total":27,"covered":21,"skipped":0,"pct":77.78},"functions":{"total":6,"covered":2,"skipped":0,"pct":33.33},"statements":{"total":27,"covered":21,"skipped":0,"pct":77.78},"branches":{"total":11,"covered":3,"skipped":0,"pct":27.27}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Spinner.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/StoreAsDatasource.tsx": {"lines":{"total":16,"covered":10,"skipped":0,"pct":62.5},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":10,"skipped":0,"pct":62.5},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.67}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ActionCreator/Fields.tsx": {"lines":{"total":269,"covered":75,"skipped":0,"pct":27.88},"functions":{"total":65,"covered":5,"skipped":0,"pct":7.69},"statements":{"total":275,"covered":79,"skipped":0,"pct":28.73},"branches":{"total":141,"covered":36,"skipped":0,"pct":25.53}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ActionCreator/index.tsx": {"lines":{"total":124,"covered":58,"skipped":0,"pct":46.77},"functions":{"total":18,"covered":8,"skipped":0,"pct":44.44},"statements":{"total":125,"covered":59,"skipped":0,"pct":47.2},"branches":{"total":76,"covered":5,"skipped":0,"pct":6.58}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ActionCreator/Fields.tsx": {"lines":{"total":280,"covered":75,"skipped":0,"pct":26.79},"functions":{"total":68,"covered":5,"skipped":0,"pct":7.35},"statements":{"total":286,"covered":79,"skipped":0,"pct":27.62},"branches":{"total":159,"covered":36,"skipped":0,"pct":22.64}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ActionCreator/index.tsx": {"lines":{"total":183,"covered":76,"skipped":0,"pct":41.53},"functions":{"total":25,"covered":10,"skipped":0,"pct":40},"statements":{"total":185,"covered":77,"skipped":0,"pct":41.62},"branches":{"total":118,"covered":9,"skipped":0,"pct":7.63}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ActionRightPane/Connections.tsx": {"lines":{"total":40,"covered":17,"skipped":0,"pct":42.5},"functions":{"total":20,"covered":0,"skipped":0,"pct":0},"statements":{"total":40,"covered":17,"skipped":0,"pct":42.5},"branches":{"total":26,"covered":8,"skipped":0,"pct":30.77}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ActionRightPane/SuggestedWidgets.tsx": {"lines":{"total":46,"covered":20,"skipped":0,"pct":43.48},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":47,"covered":20,"skipped":0,"pct":42.55},"branches":{"total":15,"covered":4,"skipped":0,"pct":26.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/ActionRightPane/index.tsx": {"lines":{"total":84,"covered":31,"skipped":0,"pct":36.9},"functions":{"total":30,"covered":0,"skipped":0,"pct":0},"statements":{"total":91,"covered":31,"skipped":0,"pct":34.07},"branches":{"total":48,"covered":12,"skipped":0,"pct":25}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/BindingPrompt.tsx": {"lines":{"total":14,"covered":14,"skipped":0,"pct":100},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":14,"covered":14,"skipped":0,"pct":100},"branches":{"total":16,"covered":12,"skipped":0,"pct":75}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/BindingPromptHelper.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":14,"covered":12,"skipped":0,"pct":85.71}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/EditorConfig.ts": {"lines":{"total":22,"covered":22,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":22,"covered":22,"skipped":0,"pct":100},"branches":{"total":10,"covered":10,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/EvaluatedValuePopup.tsx": {"lines":{"total":103,"covered":69,"skipped":0,"pct":66.99},"functions":{"total":33,"covered":13,"skipped":0,"pct":39.39},"statements":{"total":119,"covered":79,"skipped":0,"pct":66.39},"branches":{"total":76,"covered":42,"skipped":0,"pct":55.26}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/EvaluatedValuePopup.tsx": {"lines":{"total":102,"covered":68,"skipped":0,"pct":66.67},"functions":{"total":33,"covered":13,"skipped":0,"pct":39.39},"statements":{"total":118,"covered":78,"skipped":0,"pct":66.1},"branches":{"total":74,"covered":40,"skipped":0,"pct":54.05}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/codeEditorUtils.ts": {"lines":{"total":40,"covered":38,"skipped":0,"pct":95},"functions":{"total":7,"covered":5,"skipped":0,"pct":71.43},"statements":{"total":46,"covered":44,"skipped":0,"pct":95.65},"branches":{"total":18,"covered":16,"skipped":0,"pct":88.89}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/commandsHelper.ts": {"lines":{"total":56,"covered":10,"skipped":0,"pct":17.86},"functions":{"total":10,"covered":1,"skipped":0,"pct":10},"statements":{"total":64,"covered":11,"skipped":0,"pct":17.19},"branches":{"total":23,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/generateQuickCommands.tsx": {"lines":{"total":74,"covered":20,"skipped":0,"pct":27.03},"functions":{"total":16,"covered":1,"skipped":0,"pct":6.25},"statements":{"total":75,"covered":21,"skipped":0,"pct":28},"branches":{"total":30,"covered":2,"skipped":0,"pct":6.67}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/hintHelpers.ts": {"lines":{"total":22,"covered":17,"skipped":0,"pct":77.27},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":23,"covered":18,"skipped":0,"pct":78.26},"branches":{"total":4,"covered":3,"skipped":0,"pct":75}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/index.tsx": {"lines":{"total":244,"covered":158,"skipped":0,"pct":64.75},"functions":{"total":40,"covered":20,"skipped":0,"pct":50},"statements":{"total":266,"covered":166,"skipped":0,"pct":62.41},"branches":{"total":152,"covered":54,"skipped":0,"pct":35.53}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/commandsHelper.ts": {"lines":{"total":56,"covered":10,"skipped":0,"pct":17.86},"functions":{"total":10,"covered":1,"skipped":0,"pct":10},"statements":{"total":64,"covered":11,"skipped":0,"pct":17.19},"branches":{"total":24,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/generateQuickCommands.tsx": {"lines":{"total":75,"covered":21,"skipped":0,"pct":28},"functions":{"total":16,"covered":1,"skipped":0,"pct":6.25},"statements":{"total":76,"covered":22,"skipped":0,"pct":28.95},"branches":{"total":32,"covered":2,"skipped":0,"pct":6.25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/hintHelpers.ts": {"lines":{"total":27,"covered":21,"skipped":0,"pct":77.78},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":28,"covered":22,"skipped":0,"pct":78.57},"branches":{"total":10,"covered":7,"skipped":0,"pct":70}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/index.tsx": {"lines":{"total":244,"covered":158,"skipped":0,"pct":64.75},"functions":{"total":40,"covered":20,"skipped":0,"pct":50},"statements":{"total":266,"covered":166,"skipped":0,"pct":62.41},"branches":{"total":154,"covered":54,"skipped":0,"pct":35.06}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/lintHelpers.ts": {"lines":{"total":55,"covered":49,"skipped":0,"pct":89.09},"functions":{"total":9,"covered":9,"skipped":0,"pct":100},"statements":{"total":73,"covered":67,"skipped":0,"pct":91.78},"branches":{"total":28,"covered":22,"skipped":0,"pct":78.57}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/markHelpers.ts": {"lines":{"total":10,"covered":5,"skipped":0,"pct":50},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":6,"skipped":0,"pct":54.55},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/modes.ts": {"lines":{"total":12,"covered":11,"skipped":0,"pct":91.67},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":12,"covered":11,"skipped":0,"pct":91.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/styledComponents.ts": {"lines":{"total":50,"covered":47,"skipped":0,"pct":94},"functions":{"total":28,"covered":28,"skipped":0,"pct":100},"statements":{"total":52,"covered":47,"skipped":0,"pct":90.38},"branches":{"total":86,"covered":52,"skipped":0,"pct":60.47}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/DebugCTA.tsx": {"lines":{"total":21,"covered":12,"skipped":0,"pct":57.14},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":12,"skipped":0,"pct":54.55},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/CodeEditor/styledComponents.ts": {"lines":{"total":51,"covered":48,"skipped":0,"pct":94.12},"functions":{"total":29,"covered":29,"skipped":0,"pct":100},"statements":{"total":53,"covered":48,"skipped":0,"pct":90.57},"branches":{"total":88,"covered":53,"skipped":0,"pct":60.23}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/ContextualMenu.tsx": {"lines":{"total":70,"covered":33,"skipped":0,"pct":47.14},"functions":{"total":16,"covered":2,"skipped":0,"pct":12.5},"statements":{"total":70,"covered":33,"skipped":0,"pct":47.14},"branches":{"total":37,"covered":8,"skipped":0,"pct":21.62}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/DebugCTA.tsx": {"lines":{"total":35,"covered":20,"skipped":0,"pct":57.14},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":36,"covered":20,"skipped":0,"pct":55.56},"branches":{"total":10,"covered":6,"skipped":0,"pct":60}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/DebuggerLogs.tsx": {"lines":{"total":45,"covered":18,"skipped":0,"pct":40},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":54,"covered":18,"skipped":0,"pct":33.33},"branches":{"total":20,"covered":4,"skipped":0,"pct":20}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/DebuggerMessage.tsx": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":7,"skipped":0,"pct":77.78},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/DebuggerTabs.tsx": {"lines":{"total":27,"covered":17,"skipped":0,"pct":62.96},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":30,"covered":17,"skipped":0,"pct":56.67},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/EntityDependecies.tsx": {"lines":{"total":72,"covered":26,"skipped":0,"pct":36.11},"functions":{"total":33,"covered":0,"skipped":0,"pct":0},"statements":{"total":74,"covered":26,"skipped":0,"pct":35.14},"branches":{"total":74,"covered":16,"skipped":0,"pct":21.62}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/EntityLink.tsx": {"lines":{"total":57,"covered":18,"skipped":0,"pct":31.58},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":59,"covered":18,"skipped":0,"pct":30.51},"branches":{"total":21,"covered":2,"skipped":0,"pct":9.52}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/EntityLink.tsx": {"lines":{"total":68,"covered":19,"skipped":0,"pct":27.94},"functions":{"total":14,"covered":1,"skipped":0,"pct":7.14},"statements":{"total":70,"covered":19,"skipped":0,"pct":27.14},"branches":{"total":27,"covered":2,"skipped":0,"pct":7.41}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/Errors.tsx": {"lines":{"total":19,"covered":12,"skipped":0,"pct":63.16},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":19,"covered":12,"skipped":0,"pct":63.16},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/FilterHeader.tsx": {"lines":{"total":17,"covered":10,"skipped":0,"pct":58.82},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":10,"skipped":0,"pct":58.82},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/LogItem.tsx": {"lines":{"total":75,"covered":27,"skipped":0,"pct":36},"functions":{"total":31,"covered":0,"skipped":0,"pct":0},"statements":{"total":78,"covered":28,"skipped":0,"pct":35.9},"branches":{"total":60,"covered":10,"skipped":0,"pct":16.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/LogItem.tsx": {"lines":{"total":55,"covered":21,"skipped":0,"pct":38.18},"functions":{"total":29,"covered":0,"skipped":0,"pct":0},"statements":{"total":59,"covered":22,"skipped":0,"pct":37.29},"branches":{"total":40,"covered":10,"skipped":0,"pct":25}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/helpers.tsx": {"lines":{"total":51,"covered":40,"skipped":0,"pct":78.43},"functions":{"total":15,"covered":5,"skipped":0,"pct":33.33},"statements":{"total":61,"covered":47,"skipped":0,"pct":77.05},"branches":{"total":22,"covered":16,"skipped":0,"pct":72.73}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/hooks.ts": {"lines":{"total":96,"covered":29,"skipped":0,"pct":30.21},"functions":{"total":21,"covered":1,"skipped":0,"pct":4.76},"statements":{"total":110,"covered":34,"skipped":0,"pct":30.91},"branches":{"total":108,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/index.tsx": {"lines":{"total":40,"covered":36,"skipped":0,"pct":90},"functions":{"total":13,"covered":11,"skipped":0,"pct":84.62},"statements":{"total":41,"covered":36,"skipped":0,"pct":87.8},"branches":{"total":12,"covered":5,"skipped":0,"pct":41.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Debugger/Resizer/index.tsx": {"lines":{"total":36,"covered":6,"skipped":0,"pct":16.67},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":40,"covered":6,"skipped":0,"pct":15},"branches":{"total":14,"covered":4,"skipped":0,"pct":28.57}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/ActionLink.tsx": {"lines":{"total":17,"covered":8,"skipped":0,"pct":47.06},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":8,"skipped":0,"pct":47.06},"branches":{"total":10,"covered":2,"skipped":0,"pct":20}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/ActionLink.tsx": {"lines":{"total":17,"covered":8,"skipped":0,"pct":47.06},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":8,"skipped":0,"pct":47.06},"branches":{"total":8,"covered":2,"skipped":0,"pct":25}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/AlgoliaSearchWrapper.tsx": {"lines":{"total":20,"covered":9,"skipped":0,"pct":45},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":9,"skipped":0,"pct":40.91},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/Description.tsx": {"lines":{"total":71,"covered":16,"skipped":0,"pct":22.54},"functions":{"total":35,"covered":0,"skipped":0,"pct":0},"statements":{"total":75,"covered":16,"skipped":0,"pct":21.33},"branches":{"total":27,"covered":8,"skipped":0,"pct":29.63}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/Footer.tsx": {"lines":{"total":15,"covered":5,"skipped":0,"pct":33.33},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":5,"skipped":0,"pct":33.33},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/GlobalSearchContext.tsx": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/GlobalSearchHotKeys.tsx": {"lines":{"total":18,"covered":14,"skipped":0,"pct":77.78},"functions":{"total":7,"covered":5,"skipped":0,"pct":71.43},"statements":{"total":26,"covered":17,"skipped":0,"pct":65.38},"branches":{"total":7,"covered":3,"skipped":0,"pct":42.86}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/HelpBar.tsx": {"lines":{"total":25,"covered":23,"skipped":0,"pct":92},"functions":{"total":10,"covered":9,"skipped":0,"pct":90},"statements":{"total":27,"covered":25,"skipped":0,"pct":92.59},"branches":{"total":4,"covered":3,"skipped":0,"pct":75}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/HelpBar.tsx": {"lines":{"total":25,"covered":23,"skipped":0,"pct":92},"functions":{"total":10,"covered":9,"skipped":0,"pct":90},"statements":{"total":28,"covered":26,"skipped":0,"pct":92.86},"branches":{"total":4,"covered":3,"skipped":0,"pct":75}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/Highlight.tsx": {"lines":{"total":15,"covered":2,"skipped":0,"pct":13.33},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":17,"covered":2,"skipped":0,"pct":11.76},"branches":{"total":18,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/ResultsNotFound.tsx": {"lines":{"total":18,"covered":10,"skipped":0,"pct":55.56},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":18,"covered":10,"skipped":0,"pct":55.56},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/SearchBox.tsx": {"lines":{"total":56,"covered":16,"skipped":0,"pct":28.57},"functions":{"total":26,"covered":0,"skipped":0,"pct":0},"statements":{"total":65,"covered":16,"skipped":0,"pct":24.62},"branches":{"total":25,"covered":6,"skipped":0,"pct":24}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/SearchBox.tsx": {"lines":{"total":59,"covered":17,"skipped":0,"pct":28.81},"functions":{"total":27,"covered":0,"skipped":0,"pct":0},"statements":{"total":68,"covered":17,"skipped":0,"pct":25},"branches":{"total":31,"covered":6,"skipped":0,"pct":19.35}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/SearchModal.tsx": {"lines":{"total":9,"covered":8,"skipped":0,"pct":88.89},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":11,"covered":10,"skipped":0,"pct":90.91},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/SearchResults.tsx": {"lines":{"total":127,"covered":32,"skipped":0,"pct":25.2},"functions":{"total":55,"covered":0,"skipped":0,"pct":0},"statements":{"total":130,"covered":32,"skipped":0,"pct":24.62},"branches":{"total":97,"covered":22,"skipped":0,"pct":22.68}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/SearchResults.tsx": {"lines":{"total":128,"covered":31,"skipped":0,"pct":24.22},"functions":{"total":50,"covered":0,"skipped":0,"pct":0},"statements":{"total":133,"covered":31,"skipped":0,"pct":23.31},"branches":{"total":79,"covered":22,"skipped":0,"pct":27.85}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/SetSearchResults.tsx": {"lines":{"total":12,"covered":5,"skipped":0,"pct":41.67},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":5,"skipped":0,"pct":35.71},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/SnippetRefinements.tsx": {"lines":{"total":14,"covered":6,"skipped":0,"pct":42.86},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":6,"skipped":0,"pct":37.5},"branches":{"total":8,"covered":2,"skipped":0,"pct":25}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/SnippetsFilter.tsx": {"lines":{"total":38,"covered":7,"skipped":0,"pct":18.42},"functions":{"total":25,"covered":0,"skipped":0,"pct":0},"statements":{"total":42,"covered":7,"skipped":0,"pct":16.67},"branches":{"total":39,"covered":2,"skipped":0,"pct":5.13}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/SnippetRefinements.tsx": {"lines":{"total":19,"covered":7,"skipped":0,"pct":36.84},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":7,"skipped":0,"pct":33.33},"branches":{"total":8,"covered":2,"skipped":0,"pct":25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/SnippetsFilter.tsx": {"lines":{"total":44,"covered":9,"skipped":0,"pct":20.45},"functions":{"total":29,"covered":0,"skipped":0,"pct":0},"statements":{"total":49,"covered":9,"skipped":0,"pct":18.37},"branches":{"total":53,"covered":2,"skipped":0,"pct":3.77}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/githubHelper.ts": {"lines":{"total":13,"covered":6,"skipped":0,"pct":46.15},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":17,"covered":8,"skipped":0,"pct":47.06},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/index.tsx": {"lines":{"total":242,"covered":136,"skipped":0,"pct":56.2},"functions":{"total":63,"covered":23,"skipped":0,"pct":36.51},"statements":{"total":270,"covered":147,"skipped":0,"pct":54.44},"branches":{"total":214,"covered":37,"skipped":0,"pct":17.29}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/index.tsx": {"lines":{"total":256,"covered":140,"skipped":0,"pct":54.69},"functions":{"total":66,"covered":24,"skipped":0,"pct":36.36},"statements":{"total":287,"covered":152,"skipped":0,"pct":52.96},"branches":{"total":249,"covered":37,"skipped":0,"pct":14.86}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/parseDocumentationContent.ts": {"lines":{"total":99,"covered":77,"skipped":0,"pct":77.78},"functions":{"total":16,"covered":14,"skipped":0,"pct":87.5},"statements":{"total":102,"covered":79,"skipped":0,"pct":77.45},"branches":{"total":86,"covered":39,"skipped":0,"pct":45.35}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/useRecentEntities.tsx": {"lines":{"total":32,"covered":17,"skipped":0,"pct":53.13},"functions":{"total":7,"covered":3,"skipped":0,"pct":42.86},"statements":{"total":33,"covered":17,"skipped":0,"pct":51.52},"branches":{"total":30,"covered":3,"skipped":0,"pct":10}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/utils.tsx": {"lines":{"total":89,"covered":62,"skipped":0,"pct":69.66},"functions":{"total":22,"covered":15,"skipped":0,"pct":68.18},"statements":{"total":111,"covered":79,"skipped":0,"pct":71.17},"branches":{"total":94,"covered":26,"skipped":0,"pct":27.66}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/useRecentEntities.tsx": {"lines":{"total":36,"covered":18,"skipped":0,"pct":50},"functions":{"total":8,"covered":3,"skipped":0,"pct":37.5},"statements":{"total":37,"covered":18,"skipped":0,"pct":48.65},"branches":{"total":40,"covered":3,"skipped":0,"pct":7.5}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/GlobalSearch/utils.tsx": {"lines":{"total":99,"covered":70,"skipped":0,"pct":70.71},"functions":{"total":23,"covered":15,"skipped":0,"pct":65.22},"statements":{"total":122,"covered":88,"skipped":0,"pct":72.13},"branches":{"total":104,"covered":30,"skipped":0,"pct":28.85}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/HighlightedCode/index.tsx": {"lines":{"total":19,"covered":12,"skipped":0,"pct":63.16},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":19,"covered":12,"skipped":0,"pct":63.16},"branches":{"total":12,"covered":4,"skipped":0,"pct":33.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/HighlightedCode/themes.ts": {"lines":{"total":6,"covered":4,"skipped":0,"pct":66.67},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":4,"skipped":0,"pct":66.67},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Onboarding/Boxed.tsx": {"lines":{"total":12,"covered":9,"skipped":0,"pct":75},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":12,"covered":9,"skipped":0,"pct":75},"branches":{"total":7,"covered":2,"skipped":0,"pct":28.57}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Onboarding/EndTour.tsx": {"lines":{"total":16,"covered":9,"skipped":0,"pct":56.25},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":9,"skipped":0,"pct":56.25},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Onboarding/Helper.tsx": {"lines":{"total":75,"covered":49,"skipped":0,"pct":65.33},"functions":{"total":23,"covered":5,"skipped":0,"pct":21.74},"statements":{"total":81,"covered":55,"skipped":0,"pct":67.9},"branches":{"total":111,"covered":40,"skipped":0,"pct":36.04}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Onboarding/Indicator.tsx": {"lines":{"total":18,"covered":10,"skipped":0,"pct":55.56},"functions":{"total":9,"covered":2,"skipped":0,"pct":22.22},"statements":{"total":18,"covered":10,"skipped":0,"pct":55.56},"branches":{"total":20,"covered":5,"skipped":0,"pct":25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/Onboarding/utils.tsx": {"lines":{"total":12,"covered":7,"skipped":0,"pct":58.33},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":14,"covered":8,"skipped":0,"pct":57.14},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/WidgetNameComponent/SettingsControl.tsx": {"lines":{"total":40,"covered":37,"skipped":0,"pct":92.5},"functions":{"total":9,"covered":8,"skipped":0,"pct":88.89},"statements":{"total":40,"covered":37,"skipped":0,"pct":92.5},"branches":{"total":32,"covered":24,"skipped":0,"pct":75}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/WidgetNameComponent/index.tsx": {"lines":{"total":63,"covered":60,"skipped":0,"pct":95.24},"functions":{"total":12,"covered":12,"skipped":0,"pct":100},"statements":{"total":65,"covered":62,"skipped":0,"pct":95.38},"branches":{"total":57,"covered":46,"skipped":0,"pct":80.7}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/editorComponents/form/CredentialsTooltip.tsx": {"lines":{"total":10,"covered":9,"skipped":0,"pct":90},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":9,"skipped":0,"pct":90},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} @@ -299,7 +304,7 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/propertyControls/ChartDataControl.tsx": {"lines":{"total":61,"covered":26,"skipped":0,"pct":42.62},"functions":{"total":18,"covered":2,"skipped":0,"pct":11.11},"statements":{"total":64,"covered":27,"skipped":0,"pct":42.19},"branches":{"total":37,"covered":14,"skipped":0,"pct":37.84}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/propertyControls/CodeEditorControl.tsx": {"lines":{"total":23,"covered":10,"skipped":0,"pct":43.48},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":28,"covered":11,"skipped":0,"pct":39.29},"branches":{"total":9,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/propertyControls/ColorPickerControl.tsx": {"lines":{"total":12,"covered":9,"skipped":0,"pct":75},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":14,"covered":10,"skipped":0,"pct":71.43},"branches":{"total":5,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/propertyControls/ColumnActionSelectorControl.tsx": {"lines":{"total":42,"covered":18,"skipped":0,"pct":42.86},"functions":{"total":12,"covered":2,"skipped":0,"pct":16.67},"statements":{"total":47,"covered":19,"skipped":0,"pct":40.43},"branches":{"total":19,"covered":6,"skipped":0,"pct":31.58}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/propertyControls/ColumnActionSelectorControl.tsx": {"lines":{"total":42,"covered":18,"skipped":0,"pct":42.86},"functions":{"total":12,"covered":2,"skipped":0,"pct":16.67},"statements":{"total":47,"covered":19,"skipped":0,"pct":40.43},"branches":{"total":21,"covered":6,"skipped":0,"pct":28.57}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/propertyControls/ComputeTablePropertyControl.tsx": {"lines":{"total":51,"covered":17,"skipped":0,"pct":33.33},"functions":{"total":9,"covered":2,"skipped":0,"pct":22.22},"statements":{"total":53,"covered":18,"skipped":0,"pct":33.96},"branches":{"total":19,"covered":4,"skipped":0,"pct":21.05}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/propertyControls/DatePickerControl.tsx": {"lines":{"total":54,"covered":14,"skipped":0,"pct":25.93},"functions":{"total":15,"covered":2,"skipped":0,"pct":13.33},"statements":{"total":57,"covered":15,"skipped":0,"pct":26.32},"branches":{"total":46,"covered":2,"skipped":0,"pct":4.35}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/components/propertyControls/DropDownControl.tsx": {"lines":{"total":23,"covered":9,"skipped":0,"pct":39.13},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":26,"covered":10,"skipped":0,"pct":38.46},"branches":{"total":11,"covered":0,"skipped":0,"pct":0}} @@ -334,7 +339,7 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/CommentConstants.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/Currency.tsx": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/DatasourceEditorConstants.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/DefaultTheme.tsx": {"lines":{"total":96,"covered":88,"skipped":0,"pct":91.67},"functions":{"total":28,"covered":20,"skipped":0,"pct":71.43},"statements":{"total":112,"covered":104,"skipped":0,"pct":92.86},"branches":{"total":38,"covered":34,"skipped":0,"pct":89.47}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/DefaultTheme.tsx": {"lines":{"total":98,"covered":90,"skipped":0,"pct":91.84},"functions":{"total":28,"covered":20,"skipped":0,"pct":71.43},"statements":{"total":114,"covered":106,"skipped":0,"pct":92.98},"branches":{"total":40,"covered":36,"skipped":0,"pct":90}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/Explorer.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/FieldExpectedValue.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/Fonts.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} @@ -346,17 +351,17 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/OnboardingConstants.tsx": {"lines":{"total":32,"covered":18,"skipped":0,"pct":56.25},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":32,"covered":18,"skipped":0,"pct":56.25},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/QueryEditorConstants.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/ReduxActionConstants.tsx": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/ThirdPartyConstants.tsx": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/ThirdPartyConstants.tsx": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/TourSteps.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/WebsocketConstants.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":7,"skipped":0,"pct":70},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/WidgetConstants.tsx": {"lines":{"total":80,"covered":80,"skipped":0,"pct":100},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":80,"covered":80,"skipped":0,"pct":100},"branches":{"total":12,"covered":12,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/WebsocketConstants.tsx": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":8,"skipped":0,"pct":72.73},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/WidgetConstants.tsx": {"lines":{"total":82,"covered":82,"skipped":0,"pct":100},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":82,"covered":82,"skipped":0,"pct":100},"branches":{"total":12,"covered":12,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/WidgetValidation.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/forms.ts": {"lines":{"total":19,"covered":19,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":19,"covered":19,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/messages.ts": {"lines":{"total":393,"covered":308,"skipped":0,"pct":78.37},"functions":{"total":290,"covered":35,"skipped":0,"pct":12.07},"statements":{"total":875,"covered":620,"skipped":0,"pct":70.86},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/messages.ts": {"lines":{"total":511,"covered":415,"skipped":0,"pct":81.21},"functions":{"total":370,"covered":97,"skipped":0,"pct":26.22},"statements":{"total":1103,"covered":830,"skipped":0,"pct":75.25},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/providerConstants.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/routes.ts": {"lines":{"total":134,"covered":105,"skipped":0,"pct":78.36},"functions":{"total":21,"covered":12,"skipped":0,"pct":57.14},"statements":{"total":155,"covered":125,"skipped":0,"pct":80.65},"branches":{"total":108,"covered":43,"skipped":0,"pct":39.81}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/routes.ts": {"lines":{"total":152,"covered":119,"skipped":0,"pct":78.29},"functions":{"total":24,"covered":14,"skipped":0,"pct":58.33},"statements":{"total":177,"covered":142,"skipped":0,"pct":80.23},"branches":{"total":124,"covered":49,"skipped":0,"pct":39.52}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/userConstants.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppsmithActionConstants/ActionConstants.tsx": {"lines":{"total":57,"covered":57,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":57,"covered":57,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppsmithActionConstants/ActionConstants.tsx": {"lines":{"total":59,"covered":59,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":59,"covered":59,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/ApiDependencyConfigs.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/ApiEditorConfigs.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/ApiSettingsConfig.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} @@ -364,12 +369,13 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/constants/AppsmithActionConstants/formConfig/QuerySettingsConfig.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/App.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/Action/actionProperties.ts": {"lines":{"total":34,"covered":34,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":38,"covered":38,"skipped":0,"pct":100},"branches":{"total":22,"covered":20,"skipped":0,"pct":90.91}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/Action/index.ts": {"lines":{"total":13,"covered":10,"skipped":0,"pct":76.92},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":16,"covered":11,"skipped":0,"pct":68.75},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/AppsmithConsole/index.ts": {"lines":{"total":10,"covered":10,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":10,"covered":10,"skipped":0,"pct":100},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/AppsmithConsole/logtype.ts": {"lines":{"total":10,"covered":10,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":10,"covered":10,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/Action/index.ts": {"lines":{"total":14,"covered":11,"skipped":0,"pct":78.57},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":17,"covered":12,"skipped":0,"pct":70.59},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/AppsmithConsole/index.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/AppsmithConsole/logtype.ts": {"lines":{"total":13,"covered":13,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":13,"covered":13,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/DataTree/actionTriggers.ts": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":12,"covered":12,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/DataTree/dataTreeAction.ts": {"lines":{"total":11,"covered":3,"skipped":0,"pct":27.27},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":4,"skipped":0,"pct":25},"branches":{"total":22,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/DataTree/dataTreeFactory.ts": {"lines":{"total":31,"covered":13,"skipped":0,"pct":41.94},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":32,"covered":14,"skipped":0,"pct":43.75},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/DataTree/dataTreeFactory.ts": {"lines":{"total":36,"covered":15,"skipped":0,"pct":41.67},"functions":{"total":7,"covered":3,"skipped":0,"pct":42.86},"statements":{"total":37,"covered":16,"skipped":0,"pct":43.24},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/DataTree/dataTreeJSAction.ts": {"lines":{"total":30,"covered":3,"skipped":0,"pct":10},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":4,"skipped":0,"pct":12.12},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/DataTree/dataTreeWidget.ts": {"lines":{"total":32,"covered":27,"skipped":0,"pct":84.38},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":33,"covered":28,"skipped":0,"pct":84.85},"branches":{"total":4,"covered":1,"skipped":0,"pct":25}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/Datasource/RestAPIForm.ts": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":12,"covered":12,"skipped":0,"pct":100},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/Datasource/index.ts": {"lines":{"total":10,"covered":3,"skipped":0,"pct":30},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":5,"skipped":0,"pct":31.25},"branches":{"total":8,"covered":0,"skipped":0,"pct":0}} @@ -377,12 +383,12 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/entities/Widget/utils.ts": {"lines":{"total":65,"covered":63,"skipped":0,"pct":96.92},"functions":{"total":12,"covered":12,"skipped":0,"pct":100},"statements":{"total":67,"covered":65,"skipped":0,"pct":97.01},"branches":{"total":68,"covered":58,"skipped":0,"pct":85.29}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/globalStyles/tooltip.ts": {"lines":{"total":10,"covered":5,"skipped":0,"pct":50},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":5,"skipped":0,"pct":50},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/AlertIcons.tsx": {"lines":{"total":11,"covered":7,"skipped":0,"pct":63.64},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":7,"skipped":0,"pct":63.64},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/ControlIcons.tsx": {"lines":{"total":123,"covered":71,"skipped":0,"pct":57.72},"functions":{"total":60,"covered":8,"skipped":0,"pct":13.33},"statements":{"total":123,"covered":71,"skipped":0,"pct":57.72},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/ControlIcons.tsx": {"lines":{"total":125,"covered":72,"skipped":0,"pct":57.6},"functions":{"total":61,"covered":8,"skipped":0,"pct":13.11},"statements":{"total":125,"covered":72,"skipped":0,"pct":57.6},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/FormIcons.tsx": {"lines":{"total":17,"covered":10,"skipped":0,"pct":58.82},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":17,"covered":10,"skipped":0,"pct":58.82},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/HeaderIcons.tsx": {"lines":{"total":13,"covered":9,"skipped":0,"pct":69.23},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":13,"covered":9,"skipped":0,"pct":69.23},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/HelpIcons.tsx": {"lines":{"total":18,"covered":10,"skipped":0,"pct":55.56},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":18,"covered":10,"skipped":0,"pct":55.56},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/MenuIcons.tsx": {"lines":{"total":39,"covered":24,"skipped":0,"pct":61.54},"functions":{"total":18,"covered":3,"skipped":0,"pct":16.67},"statements":{"total":39,"covered":24,"skipped":0,"pct":61.54},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/WidgetIcons.tsx": {"lines":{"total":62,"covered":59,"skipped":0,"pct":95.16},"functions":{"total":30,"covered":27,"skipped":0,"pct":90},"statements":{"total":62,"covered":59,"skipped":0,"pct":95.16},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/MenuIcons.tsx": {"lines":{"total":45,"covered":27,"skipped":0,"pct":60},"functions":{"total":21,"covered":3,"skipped":0,"pct":14.29},"statements":{"total":45,"covered":27,"skipped":0,"pct":60},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/icons/WidgetIcons.tsx": {"lines":{"total":66,"covered":63,"skipped":0,"pct":95.45},"functions":{"total":32,"covered":29,"skipped":0,"pct":90.63},"statements":{"total":66,"covered":63,"skipped":0,"pct":95.45},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/mockResponses/CommentApiMockResponse.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/mockResponses/WidgetConfigResponse.tsx": {"lines":{"total":101,"covered":16,"skipped":0,"pct":15.84},"functions":{"total":19,"covered":0,"skipped":0,"pct":0},"statements":{"total":108,"covered":16,"skipped":0,"pct":14.81},"branches":{"total":40,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/mockResponses/WidgetSidebarResponse.tsx": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} @@ -393,44 +399,45 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Applications/permissionHelpers.tsx": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":13,"covered":13,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Applications/ProductUpdatesModal/ReleaseComponent.tsx": {"lines":{"total":69,"covered":17,"skipped":0,"pct":24.64},"functions":{"total":37,"covered":1,"skipped":0,"pct":2.7},"statements":{"total":75,"covered":17,"skipped":0,"pct":22.67},"branches":{"total":34,"covered":16,"skipped":0,"pct":47.06}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/ActionSettings.tsx": {"lines":{"total":18,"covered":7,"skipped":0,"pct":38.89},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":18,"covered":7,"skipped":0,"pct":38.89},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Canvas.tsx": {"lines":{"total":38,"covered":25,"skipped":0,"pct":65.79},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":40,"covered":26,"skipped":0,"pct":65},"branches":{"total":14,"covered":4,"skipped":0,"pct":28.57}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Canvas.tsx": {"lines":{"total":39,"covered":26,"skipped":0,"pct":66.67},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":41,"covered":27,"skipped":0,"pct":65.85},"branches":{"total":14,"covered":4,"skipped":0,"pct":28.57}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/EditorHeader.tsx": {"lines":{"total":101,"covered":90,"skipped":0,"pct":89.11},"functions":{"total":26,"covered":18,"skipped":0,"pct":69.23},"statements":{"total":105,"covered":94,"skipped":0,"pct":89.52},"branches":{"total":45,"covered":25,"skipped":0,"pct":55.56}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/EditorSaveIndicator.tsx": {"lines":{"total":25,"covered":21,"skipped":0,"pct":84},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":27,"covered":23,"skipped":0,"pct":85.19},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/EntityNotFoundPane.tsx": {"lines":{"total":11,"covered":8,"skipped":0,"pct":72.73},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":8,"skipped":0,"pct":72.73},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FormControl.tsx": {"lines":{"total":11,"covered":6,"skipped":0,"pct":54.55},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":12,"covered":6,"skipped":0,"pct":50},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GlobalHotKeys.tsx": {"lines":{"total":95,"covered":61,"skipped":0,"pct":64.21},"functions":{"total":34,"covered":19,"skipped":0,"pct":55.88},"statements":{"total":99,"covered":65,"skipped":0,"pct":65.66},"branches":{"total":37,"covered":11,"skipped":0,"pct":29.73}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GlobalHotKeys.tsx": {"lines":{"total":102,"covered":64,"skipped":0,"pct":62.75},"functions":{"total":37,"covered":20,"skipped":0,"pct":54.05},"statements":{"total":106,"covered":68,"skipped":0,"pct":64.15},"branches":{"total":33,"covered":10,"skipped":0,"pct":30.3}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/HelpButton.tsx": {"lines":{"total":22,"covered":21,"skipped":0,"pct":95.45},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":24,"covered":23,"skipped":0,"pct":95.83},"branches":{"total":8,"covered":7,"skipped":0,"pct":87.5}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/MainContainer.tsx": {"lines":{"total":18,"covered":18,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":18,"covered":18,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/MainContainerLayoutControl.tsx": {"lines":{"total":28,"covered":24,"skipped":0,"pct":85.71},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":28,"covered":24,"skipped":0,"pct":85.71},"branches":{"total":10,"covered":5,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/MainContainer.tsx": {"lines":{"total":21,"covered":21,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":21,"covered":21,"skipped":0,"pct":100},"branches":{"total":8,"covered":6,"skipped":0,"pct":75}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/MainContainerLayoutControl.tsx": {"lines":{"total":29,"covered":25,"skipped":0,"pct":86.21},"functions":{"total":7,"covered":4,"skipped":0,"pct":57.14},"statements":{"total":29,"covered":25,"skipped":0,"pct":86.21},"branches":{"total":10,"covered":5,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Popper.tsx": {"lines":{"total":40,"covered":34,"skipped":0,"pct":85},"functions":{"total":9,"covered":8,"skipped":0,"pct":88.89},"statements":{"total":40,"covered":34,"skipped":0,"pct":85},"branches":{"total":40,"covered":29,"skipped":0,"pct":72.5}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/PropertyPaneHelpButton.tsx": {"lines":{"total":19,"covered":16,"skipped":0,"pct":84.21},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":20,"covered":17,"skipped":0,"pct":85},"branches":{"total":12,"covered":5,"skipped":0,"pct":41.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/PropertyPaneTitle.tsx": {"lines":{"total":51,"covered":42,"skipped":0,"pct":82.35},"functions":{"total":17,"covered":14,"skipped":0,"pct":82.35},"statements":{"total":54,"covered":45,"skipped":0,"pct":83.33},"branches":{"total":44,"covered":17,"skipped":0,"pct":38.64}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/RealtimeAppEditors.tsx": {"lines":{"total":26,"covered":11,"skipped":0,"pct":42.31},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":26,"covered":11,"skipped":0,"pct":42.31},"branches":{"total":15,"covered":2,"skipped":0,"pct":13.33}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/ToggleModeButton.tsx": {"lines":{"total":133,"covered":87,"skipped":0,"pct":65.41},"functions":{"total":30,"covered":13,"skipped":0,"pct":43.33},"statements":{"total":145,"covered":97,"skipped":0,"pct":66.9},"branches":{"total":67,"covered":17,"skipped":0,"pct":25.37}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/ToggleModeButton.tsx": {"lines":{"total":132,"covered":105,"skipped":0,"pct":79.55},"functions":{"total":30,"covered":24,"skipped":0,"pct":80},"statements":{"total":144,"covered":115,"skipped":0,"pct":79.86},"branches":{"total":65,"covered":36,"skipped":0,"pct":55.38}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/WidgetCard.tsx": {"lines":{"total":29,"covered":29,"skipped":0,"pct":100},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":29,"covered":29,"skipped":0,"pct":100},"branches":{"total":10,"covered":9,"skipped":0,"pct":90}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/WidgetSidebar.tsx": {"lines":{"total":75,"covered":62,"skipped":0,"pct":82.67},"functions":{"total":18,"covered":12,"skipped":0,"pct":66.67},"statements":{"total":77,"covered":64,"skipped":0,"pct":83.12},"branches":{"total":48,"covered":36,"skipped":0,"pct":75}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/WidgetsEditor.tsx": {"lines":{"total":75,"covered":69,"skipped":0,"pct":92},"functions":{"total":8,"covered":8,"skipped":0,"pct":100},"statements":{"total":78,"covered":72,"skipped":0,"pct":92.31},"branches":{"total":37,"covered":25,"skipped":0,"pct":67.57}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/WidgetsEditor.tsx": {"lines":{"total":73,"covered":68,"skipped":0,"pct":93.15},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":76,"covered":71,"skipped":0,"pct":93.42},"branches":{"total":35,"covered":24,"skipped":0,"pct":68.57}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/WidgetsMultiSelectBox.tsx": {"lines":{"total":106,"covered":82,"skipped":0,"pct":77.36},"functions":{"total":29,"covered":20,"skipped":0,"pct":68.97},"statements":{"total":115,"covered":89,"skipped":0,"pct":77.39},"branches":{"total":50,"covered":34,"skipped":0,"pct":68}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/routes.tsx": {"lines":{"total":61,"covered":28,"skipped":0,"pct":45.9},"functions":{"total":15,"covered":1,"skipped":0,"pct":6.67},"statements":{"total":70,"covered":29,"skipped":0,"pct":41.43},"branches":{"total":18,"covered":4,"skipped":0,"pct":22.22}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/utils.ts": {"lines":{"total":98,"covered":40,"skipped":0,"pct":40.82},"functions":{"total":18,"covered":3,"skipped":0,"pct":16.67},"statements":{"total":106,"covered":42,"skipped":0,"pct":39.62},"branches":{"total":71,"covered":28,"skipped":0,"pct":39.44}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/routes.tsx": {"lines":{"total":61,"covered":29,"skipped":0,"pct":47.54},"functions":{"total":14,"covered":1,"skipped":0,"pct":7.14},"statements":{"total":70,"covered":30,"skipped":0,"pct":42.86},"branches":{"total":18,"covered":4,"skipped":0,"pct":22.22}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/utils.ts": {"lines":{"total":100,"covered":41,"skipped":0,"pct":41},"functions":{"total":18,"covered":3,"skipped":0,"pct":16.67},"statements":{"total":108,"covered":43,"skipped":0,"pct":39.81},"branches":{"total":73,"covered":28,"skipped":0,"pct":38.36}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/APIEditor/ApiRightPane.tsx": {"lines":{"total":45,"covered":22,"skipped":0,"pct":48.89},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":52,"covered":23,"skipped":0,"pct":44.23},"branches":{"total":34,"covered":16,"skipped":0,"pct":47.06}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/APIEditor/CurlImportForm.tsx": {"lines":{"total":29,"covered":23,"skipped":0,"pct":79.31},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":32,"covered":24,"skipped":0,"pct":75},"branches":{"total":14,"covered":12,"skipped":0,"pct":85.71}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/APIEditor/Form.tsx": {"lines":{"total":155,"covered":60,"skipped":0,"pct":38.71},"functions":{"total":52,"covered":0,"skipped":0,"pct":0},"statements":{"total":162,"covered":60,"skipped":0,"pct":37.04},"branches":{"total":96,"covered":42,"skipped":0,"pct":43.75}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/APIEditor/CurlImportForm.tsx": {"lines":{"total":30,"covered":24,"skipped":0,"pct":80},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":33,"covered":25,"skipped":0,"pct":75.76},"branches":{"total":16,"covered":14,"skipped":0,"pct":87.5}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/APIEditor/Form.tsx": {"lines":{"total":153,"covered":60,"skipped":0,"pct":39.22},"functions":{"total":50,"covered":0,"skipped":0,"pct":0},"statements":{"total":160,"covered":60,"skipped":0,"pct":37.5},"branches":{"total":96,"covered":42,"skipped":0,"pct":43.75}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/APIEditor/Pagination.tsx": {"lines":{"total":51,"covered":26,"skipped":0,"pct":50.98},"functions":{"total":25,"covered":0,"skipped":0,"pct":0},"statements":{"total":51,"covered":26,"skipped":0,"pct":50.98},"branches":{"total":32,"covered":20,"skipped":0,"pct":62.5}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/APIEditor/PostBodyData.tsx": {"lines":{"total":31,"covered":19,"skipped":0,"pct":61.29},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":32,"covered":19,"skipped":0,"pct":59.38},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/APIEditor/ProviderTemplates.tsx": {"lines":{"total":93,"covered":35,"skipped":0,"pct":37.63},"functions":{"total":21,"covered":1,"skipped":0,"pct":4.76},"statements":{"total":102,"covered":36,"skipped":0,"pct":35.29},"branches":{"total":49,"covered":20,"skipped":0,"pct":40.82}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/APIEditor/RapidApiEditorForm.tsx": {"lines":{"total":46,"covered":29,"skipped":0,"pct":63.04},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":46,"covered":29,"skipped":0,"pct":63.04},"branches":{"total":39,"covered":18,"skipped":0,"pct":46.15}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/APIEditor/helpers.ts": {"lines":{"total":3,"covered":2,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":3,"skipped":0,"pct":75},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/APIEditor/index.tsx": {"lines":{"total":93,"covered":31,"skipped":0,"pct":33.33},"functions":{"total":20,"covered":1,"skipped":0,"pct":5},"statements":{"total":104,"covered":32,"skipped":0,"pct":30.77},"branches":{"total":55,"covered":2,"skipped":0,"pct":3.64}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/BottomBar/index.tsx": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":6,"skipped":0,"pct":66.67},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/DataSourceEditor/BackButton.tsx": {"lines":{"total":20,"covered":12,"skipped":0,"pct":60},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":20,"covered":12,"skipped":0,"pct":60},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/DataSourceEditor/Collapsible.tsx": {"lines":{"total":15,"covered":9,"skipped":0,"pct":60},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":19,"covered":10,"skipped":0,"pct":52.63},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/DataSourceEditor/Connected.tsx": {"lines":{"total":25,"covered":16,"skipped":0,"pct":64},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":16,"skipped":0,"pct":64},"branches":{"total":30,"covered":6,"skipped":0,"pct":20}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/DataSourceEditor/DBForm.tsx": {"lines":{"total":73,"covered":34,"skipped":0,"pct":46.58},"functions":{"total":13,"covered":1,"skipped":0,"pct":7.69},"statements":{"total":75,"covered":35,"skipped":0,"pct":46.67},"branches":{"total":27,"covered":8,"skipped":0,"pct":29.63}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/DataSourceEditor/DatasourceSection.tsx": {"lines":{"total":39,"covered":11,"skipped":0,"pct":28.21},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":41,"covered":12,"skipped":0,"pct":29.27},"branches":{"total":30,"covered":8,"skipped":0,"pct":26.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/DataSourceEditor/FormTitle.tsx": {"lines":{"total":45,"covered":13,"skipped":0,"pct":28.89},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":47,"covered":13,"skipped":0,"pct":27.66},"branches":{"total":39,"covered":2,"skipped":0,"pct":5.13}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/DataSourceEditor/JSONtoForm.tsx": {"lines":{"total":140,"covered":23,"skipped":0,"pct":16.43},"functions":{"total":26,"covered":1,"skipped":0,"pct":3.85},"statements":{"total":155,"covered":24,"skipped":0,"pct":15.48},"branches":{"total":77,"covered":14,"skipped":0,"pct":18.18}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/DataSourceEditor/JSONtoForm.tsx": {"lines":{"total":138,"covered":23,"skipped":0,"pct":16.67},"functions":{"total":24,"covered":1,"skipped":0,"pct":4.17},"statements":{"total":153,"covered":24,"skipped":0,"pct":15.69},"branches":{"total":77,"covered":14,"skipped":0,"pct":18.18}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/DataSourceEditor/NewActionButton.tsx": {"lines":{"total":37,"covered":15,"skipped":0,"pct":40.54},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":40,"covered":15,"skipped":0,"pct":37.5},"branches":{"total":58,"covered":2,"skipped":0,"pct":3.45}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/DataSourceEditor/RestAPIDatasourceForm.tsx": {"lines":{"total":167,"covered":47,"skipped":0,"pct":28.14},"functions":{"total":34,"covered":1,"skipped":0,"pct":2.94},"statements":{"total":191,"covered":48,"skipped":0,"pct":25.13},"branches":{"total":110,"covered":20,"skipped":0,"pct":18.18}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/DataSourceEditor/RestAPIDatasourceForm.tsx": {"lines":{"total":165,"covered":47,"skipped":0,"pct":28.48},"functions":{"total":32,"covered":1,"skipped":0,"pct":3.13},"statements":{"total":189,"covered":48,"skipped":0,"pct":25.4},"branches":{"total":110,"covered":20,"skipped":0,"pct":18.18}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/DataSourceEditor/index.tsx": {"lines":{"total":89,"covered":27,"skipped":0,"pct":30.34},"functions":{"total":18,"covered":2,"skipped":0,"pct":11.11},"statements":{"total":100,"covered":29,"skipped":0,"pct":29},"branches":{"total":57,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/EditorAppName/EditableAppName.tsx": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":7,"skipped":0,"pct":43.75},"branches":{"total":8,"covered":2,"skipped":0,"pct":25}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/EditorAppName/NavigationMenu.tsx": {"lines":{"total":6,"covered":3,"skipped":0,"pct":50},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":3,"skipped":0,"pct":50},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} @@ -438,16 +445,16 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/EditorAppName/NavigationMenuItem.tsx": {"lines":{"total":50,"covered":13,"skipped":0,"pct":26},"functions":{"total":15,"covered":1,"skipped":0,"pct":6.67},"statements":{"total":54,"covered":13,"skipped":0,"pct":24.07},"branches":{"total":25,"covered":6,"skipped":0,"pct":24}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/EditorAppName/index.tsx": {"lines":{"total":65,"covered":30,"skipped":0,"pct":46.15},"functions":{"total":27,"covered":1,"skipped":0,"pct":3.7},"statements":{"total":74,"covered":38,"skipped":0,"pct":51.35},"branches":{"total":26,"covered":7,"skipped":0,"pct":26.92}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/ContextMenuTrigger.tsx": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/EntityExplorer.tsx": {"lines":{"total":45,"covered":40,"skipped":0,"pct":88.89},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":48,"covered":42,"skipped":0,"pct":87.5},"branches":{"total":17,"covered":8,"skipped":0,"pct":47.06}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/ExplorerIcons.tsx": {"lines":{"total":54,"covered":47,"skipped":0,"pct":87.04},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":56,"covered":49,"skipped":0,"pct":87.5},"branches":{"total":12,"covered":7,"skipped":0,"pct":58.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/EntityExplorer.tsx": {"lines":{"total":48,"covered":41,"skipped":0,"pct":85.42},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":51,"covered":43,"skipped":0,"pct":84.31},"branches":{"total":20,"covered":8,"skipped":0,"pct":40}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/ExplorerIcons.tsx": {"lines":{"total":60,"covered":53,"skipped":0,"pct":88.33},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":62,"covered":55,"skipped":0,"pct":88.71},"branches":{"total":12,"covered":7,"skipped":0,"pct":58.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/ExplorerSearch.tsx": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/ExplorerStyledComponents.tsx": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/JSDependencies.tsx": {"lines":{"total":28,"covered":25,"skipped":0,"pct":89.29},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":33,"covered":28,"skipped":0,"pct":84.85},"branches":{"total":16,"covered":15,"skipped":0,"pct":93.75}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/TreeDropdown.tsx": {"lines":{"total":35,"covered":22,"skipped":0,"pct":62.86},"functions":{"total":9,"covered":4,"skipped":0,"pct":44.44},"statements":{"total":37,"covered":24,"skipped":0,"pct":64.86},"branches":{"total":26,"covered":14,"skipped":0,"pct":53.85}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/helpers.tsx": {"lines":{"total":25,"covered":16,"skipped":0,"pct":64},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":28,"covered":19,"skipped":0,"pct":67.86},"branches":{"total":60,"covered":27,"skipped":0,"pct":45}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/hooks.ts": {"lines":{"total":125,"covered":65,"skipped":0,"pct":52},"functions":{"total":37,"covered":22,"skipped":0,"pct":59.46},"statements":{"total":159,"covered":77,"skipped":0,"pct":48.43},"branches":{"total":65,"covered":19,"skipped":0,"pct":29.23}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/helpers.tsx": {"lines":{"total":29,"covered":17,"skipped":0,"pct":58.62},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":33,"covered":21,"skipped":0,"pct":63.64},"branches":{"total":78,"covered":27,"skipped":0,"pct":34.62}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/hooks.ts": {"lines":{"total":147,"covered":74,"skipped":0,"pct":50.34},"functions":{"total":43,"covered":26,"skipped":0,"pct":60.47},"statements":{"total":188,"covered":87,"skipped":0,"pct":46.28},"branches":{"total":71,"covered":20,"skipped":0,"pct":28.17}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/index.tsx": {"lines":{"total":23,"covered":20,"skipped":0,"pct":86.96},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":23,"covered":20,"skipped":0,"pct":86.96},"branches":{"total":8,"covered":4,"skipped":0,"pct":50}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Actions/ActionEntity.tsx": {"lines":{"total":25,"covered":15,"skipped":0,"pct":60},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":15,"skipped":0,"pct":60},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Actions/ActionEntity.tsx": {"lines":{"total":20,"covered":13,"skipped":0,"pct":65},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":20,"covered":13,"skipped":0,"pct":65},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Actions/ActionEntityContextMenu.tsx": {"lines":{"total":35,"covered":15,"skipped":0,"pct":42.86},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":35,"covered":15,"skipped":0,"pct":42.86},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Actions/ActionsGroup.tsx": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":7,"skipped":0,"pct":46.67},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Actions/MoreActionsMenu.tsx": {"lines":{"total":35,"covered":12,"skipped":0,"pct":34.29},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":38,"covered":12,"skipped":0,"pct":31.58},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} @@ -462,51 +469,59 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/Collapse.tsx": {"lines":{"total":14,"covered":14,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":15,"covered":14,"skipped":0,"pct":93.33},"branches":{"total":6,"covered":5,"skipped":0,"pct":83.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/CollapseToggle.tsx": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":13,"covered":12,"skipped":0,"pct":92.31},"branches":{"total":6,"covered":5,"skipped":0,"pct":83.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/CurrentPageEntityProperties.tsx": {"lines":{"total":46,"covered":13,"skipped":0,"pct":28.26},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":48,"covered":13,"skipped":0,"pct":27.08},"branches":{"total":16,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/EntityProperties.tsx": {"lines":{"total":57,"covered":13,"skipped":0,"pct":22.81},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":58,"covered":13,"skipped":0,"pct":22.41},"branches":{"total":28,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/EntityProperties.tsx": {"lines":{"total":65,"covered":14,"skipped":0,"pct":21.54},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":66,"covered":14,"skipped":0,"pct":21.21},"branches":{"total":31,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/EntityProperty.tsx": {"lines":{"total":39,"covered":21,"skipped":0,"pct":53.85},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":39,"covered":21,"skipped":0,"pct":53.85},"branches":{"total":26,"covered":6,"skipped":0,"pct":23.08}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/Loader.tsx": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/Name.tsx": {"lines":{"total":69,"covered":40,"skipped":0,"pct":57.97},"functions":{"total":11,"covered":5,"skipped":0,"pct":45.45},"statements":{"total":73,"covered":43,"skipped":0,"pct":58.9},"branches":{"total":40,"covered":11,"skipped":0,"pct":27.5}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/Name.tsx": {"lines":{"total":72,"covered":42,"skipped":0,"pct":58.33},"functions":{"total":13,"covered":6,"skipped":0,"pct":46.15},"statements":{"total":76,"covered":45,"skipped":0,"pct":59.21},"branches":{"total":41,"covered":11,"skipped":0,"pct":26.83}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/Placeholder.tsx": {"lines":{"total":11,"covered":6,"skipped":0,"pct":54.55},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":6,"skipped":0,"pct":54.55},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Entity/index.tsx": {"lines":{"total":68,"covered":63,"skipped":0,"pct":92.65},"functions":{"total":20,"covered":17,"skipped":0,"pct":85},"statements":{"total":71,"covered":66,"skipped":0,"pct":92.96},"branches":{"total":54,"covered":43,"skipped":0,"pct":79.63}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/JSActions/JSActionContextMenu.tsx": {"lines":{"total":27,"covered":10,"skipped":0,"pct":37.04},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":28,"covered":10,"skipped":0,"pct":35.71},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/JSActions/JSActionEntity.tsx": {"lines":{"total":22,"covered":14,"skipped":0,"pct":63.64},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":22,"covered":14,"skipped":0,"pct":63.64},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/JSActions/JSActionGroup.tsx": {"lines":{"total":18,"covered":11,"skipped":0,"pct":61.11},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":18,"covered":11,"skipped":0,"pct":61.11},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/JSActions/MoreJSActionsMenu.tsx": {"lines":{"total":35,"covered":12,"skipped":0,"pct":34.29},"functions":{"total":17,"covered":0,"skipped":0,"pct":0},"statements":{"total":38,"covered":12,"skipped":0,"pct":31.58},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/JSActions/helpers.tsx": {"lines":{"total":13,"covered":5,"skipped":0,"pct":38.46},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":6,"skipped":0,"pct":40},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Onboarding/DBQueryGroup.tsx": {"lines":{"total":37,"covered":18,"skipped":0,"pct":48.65},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":38,"covered":18,"skipped":0,"pct":47.37},"branches":{"total":16,"covered":6,"skipped":0,"pct":37.5}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Onboarding/Loading.tsx": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Onboarding/index.tsx": {"lines":{"total":24,"covered":12,"skipped":0,"pct":50},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":26,"covered":12,"skipped":0,"pct":46.15},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Pages/PageContextMenu.tsx": {"lines":{"total":31,"covered":24,"skipped":0,"pct":77.42},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":32,"covered":24,"skipped":0,"pct":75},"branches":{"total":10,"covered":6,"skipped":0,"pct":60}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Pages/PageEntity.tsx": {"lines":{"total":30,"covered":27,"skipped":0,"pct":90},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":30,"covered":27,"skipped":0,"pct":90},"branches":{"total":8,"covered":3,"skipped":0,"pct":37.5}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Pages/PageGroup.tsx": {"lines":{"total":37,"covered":30,"skipped":0,"pct":81.08},"functions":{"total":8,"covered":4,"skipped":0,"pct":50},"statements":{"total":38,"covered":30,"skipped":0,"pct":78.95},"branches":{"total":17,"covered":10,"skipped":0,"pct":58.82}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Pages/PageEntity.tsx": {"lines":{"total":33,"covered":30,"skipped":0,"pct":90.91},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":33,"covered":30,"skipped":0,"pct":90.91},"branches":{"total":10,"covered":4,"skipped":0,"pct":40}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Pages/PageGroup.tsx": {"lines":{"total":38,"covered":31,"skipped":0,"pct":81.58},"functions":{"total":8,"covered":4,"skipped":0,"pct":50},"statements":{"total":39,"covered":31,"skipped":0,"pct":79.49},"branches":{"total":20,"covered":12,"skipped":0,"pct":60}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/PluginGroup/PluginGroup.tsx": {"lines":{"total":25,"covered":22,"skipped":0,"pct":88},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":26,"covered":23,"skipped":0,"pct":88.46},"branches":{"total":57,"covered":35,"skipped":0,"pct":61.4}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Widgets/WidgetContextMenu.tsx": {"lines":{"total":37,"covered":27,"skipped":0,"pct":72.97},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":38,"covered":28,"skipped":0,"pct":73.68},"branches":{"total":12,"covered":2,"skipped":0,"pct":16.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Widgets/WidgetEntity.tsx": {"lines":{"total":49,"covered":49,"skipped":0,"pct":100},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":50,"covered":49,"skipped":0,"pct":98},"branches":{"total":47,"covered":39,"skipped":0,"pct":82.98}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Widgets/WidgetGroup.tsx": {"lines":{"total":25,"covered":23,"skipped":0,"pct":92},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":26,"covered":24,"skipped":0,"pct":92.31},"branches":{"total":47,"covered":33,"skipped":0,"pct":70.21}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Widgets/useNavigateToWidget.ts": {"lines":{"total":40,"covered":37,"skipped":0,"pct":92.5},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":42,"covered":38,"skipped":0,"pct":90.48},"branches":{"total":16,"covered":12,"skipped":0,"pct":75}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/Explorer/Widgets/utils.ts": {"lines":{"total":6,"covered":6,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserExperience/Checklist.tsx": {"lines":{"total":95,"covered":92,"skipped":0,"pct":96.84},"functions":{"total":13,"covered":11,"skipped":0,"pct":84.62},"statements":{"total":95,"covered":92,"skipped":0,"pct":96.84},"branches":{"total":108,"covered":106,"skipped":0,"pct":98.15}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserExperience/IntroductionModal.tsx": {"lines":{"total":36,"covered":29,"skipped":0,"pct":80.56},"functions":{"total":5,"covered":3,"skipped":0,"pct":60},"statements":{"total":37,"covered":30,"skipped":0,"pct":81.08},"branches":{"total":28,"covered":28,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserExperience/Statusbar.tsx": {"lines":{"total":81,"covered":75,"skipped":0,"pct":92.59},"functions":{"total":11,"covered":9,"skipped":0,"pct":81.82},"statements":{"total":83,"covered":77,"skipped":0,"pct":92.77},"branches":{"total":56,"covered":45,"skipped":0,"pct":80.36}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserExperience/Tasks.tsx": {"lines":{"total":56,"covered":55,"skipped":0,"pct":98.21},"functions":{"total":9,"covered":8,"skipped":0,"pct":88.89},"statements":{"total":56,"covered":55,"skipped":0,"pct":98.21},"branches":{"total":28,"covered":27,"skipped":0,"pct":96.43}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserExperience/constants.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserExperience/testUtils.ts": {"lines":{"total":20,"covered":20,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":20,"covered":20,"skipped":0,"pct":100},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserOnboarding/Checklist.tsx": {"lines":{"total":133,"covered":128,"skipped":0,"pct":96.24},"functions":{"total":41,"covered":38,"skipped":0,"pct":92.68},"statements":{"total":133,"covered":128,"skipped":0,"pct":96.24},"branches":{"total":118,"covered":114,"skipped":0,"pct":96.61}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserOnboarding/IntroductionModal.tsx": {"lines":{"total":40,"covered":37,"skipped":0,"pct":92.5},"functions":{"total":10,"covered":8,"skipped":0,"pct":80},"statements":{"total":45,"covered":42,"skipped":0,"pct":93.33},"branches":{"total":28,"covered":28,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserOnboarding/Statusbar.tsx": {"lines":{"total":88,"covered":78,"skipped":0,"pct":88.64},"functions":{"total":12,"covered":10,"skipped":0,"pct":83.33},"statements":{"total":90,"covered":80,"skipped":0,"pct":88.89},"branches":{"total":58,"covered":46,"skipped":0,"pct":79.31}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserOnboarding/Tasks.tsx": {"lines":{"total":62,"covered":61,"skipped":0,"pct":98.39},"functions":{"total":12,"covered":11,"skipped":0,"pct":91.67},"statements":{"total":64,"covered":63,"skipped":0,"pct":98.44},"branches":{"total":28,"covered":27,"skipped":0,"pct":96.43}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserOnboarding/Utils.ts": {"lines":{"total":7,"covered":3,"skipped":0,"pct":42.86},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":4,"skipped":0,"pct":50},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/FirstTimeUserOnboarding/testUtils.ts": {"lines":{"total":22,"covered":22,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":22,"covered":22,"skipped":0,"pct":100},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/index.tsx": {"lines":{"total":20,"covered":14,"skipped":0,"pct":70},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":20,"covered":14,"skipped":0,"pct":70},"branches":{"total":18,"covered":12,"skipped":0,"pct":66.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/ActionCard.tsx": {"lines":{"total":15,"covered":11,"skipped":0,"pct":73.33},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":11,"skipped":0,"pct":73.33},"branches":{"total":12,"covered":12,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/ActionCards.tsx": {"lines":{"total":33,"covered":16,"skipped":0,"pct":48.48},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":38,"covered":16,"skipped":0,"pct":42.11},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/CrudInfoModal.tsx": {"lines":{"total":48,"covered":38,"skipped":0,"pct":79.17},"functions":{"total":12,"covered":5,"skipped":0,"pct":41.67},"statements":{"total":52,"covered":42,"skipped":0,"pct":80.77},"branches":{"total":29,"covered":26,"skipped":0,"pct":89.66}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/ActionCards.tsx": {"lines":{"total":24,"covered":13,"skipped":0,"pct":54.17},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":29,"covered":13,"skipped":0,"pct":44.83},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/CrudInfoModal.tsx": {"lines":{"total":50,"covered":39,"skipped":0,"pct":78},"functions":{"total":13,"covered":5,"skipped":0,"pct":38.46},"statements":{"total":55,"covered":44,"skipped":0,"pct":80},"branches":{"total":31,"covered":27,"skipped":0,"pct":87.1}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/DataSourceOption.tsx": {"lines":{"total":45,"covered":16,"skipped":0,"pct":35.56},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":47,"covered":16,"skipped":0,"pct":34.04},"branches":{"total":36,"covered":8,"skipped":0,"pct":22.22}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/PageContent.tsx": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":6,"skipped":0,"pct":66.67},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/constants.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx": {"lines":{"total":202,"covered":40,"skipped":0,"pct":19.8},"functions":{"total":22,"covered":0,"skipped":0,"pct":0},"statements":{"total":226,"covered":40,"skipped":0,"pct":17.7},"branches":{"total":168,"covered":18,"skipped":0,"pct":10.71}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GoogleSheetForm.tsx": {"lines":{"total":84,"covered":26,"skipped":0,"pct":30.95},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":94,"covered":26,"skipped":0,"pct":27.66},"branches":{"total":97,"covered":14,"skipped":0,"pct":14.43}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GoogleSheetForm.tsx": {"lines":{"total":85,"covered":27,"skipped":0,"pct":31.76},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":95,"covered":27,"skipped":0,"pct":28.42},"branches":{"total":97,"covered":14,"skipped":0,"pct":14.43}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/hooks.ts": {"lines":{"total":160,"covered":15,"skipped":0,"pct":9.38},"functions":{"total":26,"covered":0,"skipped":0,"pct":0},"statements":{"total":207,"covered":21,"skipped":0,"pct":10.14},"branches":{"total":54,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/styles.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/ActiveDataSources.tsx": {"lines":{"total":30,"covered":16,"skipped":0,"pct":53.33},"functions":{"total":10,"covered":0,"skipped":0,"pct":0},"statements":{"total":31,"covered":16,"skipped":0,"pct":51.61},"branches":{"total":14,"covered":12,"skipped":0,"pct":85.71}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/ActiveDataSources.tsx": {"lines":{"total":28,"covered":16,"skipped":0,"pct":57.14},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":29,"covered":16,"skipped":0,"pct":55.17},"branches":{"total":14,"covered":12,"skipped":0,"pct":85.71}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/AddDatasourceSecurely.tsx": {"lines":{"total":11,"covered":10,"skipped":0,"pct":90.91},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":10,"skipped":0,"pct":90.91},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/DatasourceCard.tsx": {"lines":{"total":73,"covered":41,"skipped":0,"pct":56.16},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":73,"covered":41,"skipped":0,"pct":56.16},"branches":{"total":54,"covered":28,"skipped":0,"pct":51.85}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/DatasourceHome.tsx": {"lines":{"total":59,"covered":24,"skipped":0,"pct":40.68},"functions":{"total":12,"covered":1,"skipped":0,"pct":8.33},"statements":{"total":65,"covered":25,"skipped":0,"pct":38.46},"branches":{"total":39,"covered":8,"skipped":0,"pct":20.51}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/IntegrationsHomeScreen.tsx": {"lines":{"total":133,"covered":40,"skipped":0,"pct":30.08},"functions":{"total":22,"covered":1,"skipped":0,"pct":4.55},"statements":{"total":152,"covered":41,"skipped":0,"pct":26.97},"branches":{"total":84,"covered":10,"skipped":0,"pct":11.9}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/MockDataSources.tsx": {"lines":{"total":38,"covered":17,"skipped":0,"pct":44.74},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":38,"covered":17,"skipped":0,"pct":44.74},"branches":{"total":16,"covered":14,"skipped":0,"pct":87.5}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/IntegrationsHomeScreen.tsx": {"lines":{"total":132,"covered":40,"skipped":0,"pct":30.3},"functions":{"total":21,"covered":1,"skipped":0,"pct":4.76},"statements":{"total":151,"covered":41,"skipped":0,"pct":27.15},"branches":{"total":84,"covered":10,"skipped":0,"pct":11.9}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/MockDataSources.tsx": {"lines":{"total":37,"covered":17,"skipped":0,"pct":45.95},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":17,"skipped":0,"pct":45.95},"branches":{"total":16,"covered":14,"skipped":0,"pct":87.5}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/NewApi.tsx": {"lines":{"total":68,"covered":25,"skipped":0,"pct":36.76},"functions":{"total":14,"covered":0,"skipped":0,"pct":0},"statements":{"total":72,"covered":25,"skipped":0,"pct":34.72},"branches":{"total":38,"covered":8,"skipped":0,"pct":21.05}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/NewQuery.tsx": {"lines":{"total":21,"covered":11,"skipped":0,"pct":52.38},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":23,"covered":12,"skipped":0,"pct":52.17},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/UnsupportedPluginDialog.tsx": {"lines":{"total":43,"covered":23,"skipped":0,"pct":53.49},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":45,"covered":23,"skipped":0,"pct":51.11},"branches":{"total":18,"covered":18,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/IntegrationEditor/index.tsx": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/JSEditor/Form.tsx": {"lines":{"total":43,"covered":21,"skipped":0,"pct":48.84},"functions":{"total":15,"covered":0,"skipped":0,"pct":0},"statements":{"total":45,"covered":21,"skipped":0,"pct":46.67},"branches":{"total":14,"covered":12,"skipped":0,"pct":85.71}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/JSEditor/JSObjectNameEditor.tsx": {"lines":{"total":59,"covered":14,"skipped":0,"pct":23.73},"functions":{"total":16,"covered":0,"skipped":0,"pct":0},"statements":{"total":63,"covered":14,"skipped":0,"pct":22.22},"branches":{"total":45,"covered":2,"skipped":0,"pct":4.44}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/JSEditor/index.tsx": {"lines":{"total":26,"covered":16,"skipped":0,"pct":61.54},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":30,"covered":17,"skipped":0,"pct":56.67},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/PagesEditor/ContextMenu.tsx": {"lines":{"total":33,"covered":21,"skipped":0,"pct":63.64},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":35,"covered":21,"skipped":0,"pct":60},"branches":{"total":20,"covered":12,"skipped":0,"pct":60}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/PagesEditor/EditName.tsx": {"lines":{"total":33,"covered":14,"skipped":0,"pct":42.42},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":14,"skipped":0,"pct":37.84},"branches":{"total":10,"covered":2,"skipped":0,"pct":20}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/PagesEditor/PageListItem.tsx": {"lines":{"total":36,"covered":21,"skipped":0,"pct":58.33},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":36,"covered":21,"skipped":0,"pct":58.33},"branches":{"total":18,"covered":10,"skipped":0,"pct":55.56}} @@ -519,7 +534,7 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/PropertyPane/PropertyPaneConnections.tsx": {"lines":{"total":92,"covered":60,"skipped":0,"pct":65.22},"functions":{"total":34,"covered":16,"skipped":0,"pct":47.06},"statements":{"total":93,"covered":61,"skipped":0,"pct":65.59},"branches":{"total":110,"covered":34,"skipped":0,"pct":30.91}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/PropertyPane/PropertySection.tsx": {"lines":{"total":26,"covered":22,"skipped":0,"pct":84.62},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":28,"covered":24,"skipped":0,"pct":85.71},"branches":{"total":14,"covered":8,"skipped":0,"pct":57.14}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/PropertyPane/index.tsx": {"lines":{"total":105,"covered":89,"skipped":0,"pct":84.76},"functions":{"total":27,"covered":19,"skipped":0,"pct":70.37},"statements":{"total":113,"covered":94,"skipped":0,"pct":83.19},"branches":{"total":114,"covered":79,"skipped":0,"pct":69.3}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/QueryEditor/EditorJSONtoForm.tsx": {"lines":{"total":162,"covered":69,"skipped":0,"pct":42.59},"functions":{"total":37,"covered":0,"skipped":0,"pct":0},"statements":{"total":173,"covered":69,"skipped":0,"pct":39.88},"branches":{"total":142,"covered":48,"skipped":0,"pct":33.8}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/QueryEditor/EditorJSONtoForm.tsx": {"lines":{"total":164,"covered":69,"skipped":0,"pct":42.07},"functions":{"total":36,"covered":0,"skipped":0,"pct":0},"statements":{"total":174,"covered":69,"skipped":0,"pct":39.66},"branches":{"total":143,"covered":48,"skipped":0,"pct":33.57}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/QueryEditor/Form.tsx": {"lines":{"total":21,"covered":10,"skipped":0,"pct":47.62},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":10,"skipped":0,"pct":47.62},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/QueryEditor/JSONViewer.tsx": {"lines":{"total":19,"covered":11,"skipped":0,"pct":57.89},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":20,"covered":12,"skipped":0,"pct":60},"branches":{"total":10,"covered":6,"skipped":0,"pct":60}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/QueryEditor/Table.tsx": {"lines":{"total":54,"covered":14,"skipped":0,"pct":25.93},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":57,"covered":14,"skipped":0,"pct":24.56},"branches":{"total":24,"covered":2,"skipped":0,"pct":8.33}} @@ -528,17 +543,17 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/SaaSEditor/ActionForm.tsx": {"lines":{"total":48,"covered":13,"skipped":0,"pct":27.08},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":51,"covered":13,"skipped":0,"pct":25.49},"branches":{"total":26,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/SaaSEditor/DatasourceCard.tsx": {"lines":{"total":36,"covered":22,"skipped":0,"pct":61.11},"functions":{"total":5,"covered":0,"skipped":0,"pct":0},"statements":{"total":36,"covered":22,"skipped":0,"pct":61.11},"branches":{"total":34,"covered":18,"skipped":0,"pct":52.94}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/SaaSEditor/DatasourceForm.tsx": {"lines":{"total":91,"covered":37,"skipped":0,"pct":40.66},"functions":{"total":18,"covered":2,"skipped":0,"pct":11.11},"statements":{"total":99,"covered":38,"skipped":0,"pct":38.38},"branches":{"total":41,"covered":8,"skipped":0,"pct":19.51}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/SaaSEditor/ListView.tsx": {"lines":{"total":69,"covered":26,"skipped":0,"pct":37.68},"functions":{"total":17,"covered":1,"skipped":0,"pct":5.88},"statements":{"total":79,"covered":27,"skipped":0,"pct":34.18},"branches":{"total":25,"covered":8,"skipped":0,"pct":32}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/SaaSEditor/ListView.tsx": {"lines":{"total":68,"covered":26,"skipped":0,"pct":38.24},"functions":{"total":16,"covered":1,"skipped":0,"pct":6.25},"statements":{"total":78,"covered":27,"skipped":0,"pct":34.62},"branches":{"total":25,"covered":8,"skipped":0,"pct":32}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/SaaSEditor/constants.ts": {"lines":{"total":27,"covered":27,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":31,"covered":31,"skipped":0,"pct":100},"branches":{"total":30,"covered":19,"skipped":0,"pct":63.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/SaaSEditor/routes.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/ArtBoard.tsx": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/Editor/gitSync/QuickGitActions/index.tsx": {"lines":{"total":27,"covered":12,"skipped":0,"pct":44.44},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":27,"covered":12,"skipped":0,"pct":44.44},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/ArtBoard.tsx": {"lines":{"total":6,"covered":6,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":6,"covered":6,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/CanvasDraggingArena.tsx": {"lines":{"total":22,"covered":22,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":23,"covered":23,"skipped":0,"pct":100},"branches":{"total":8,"covered":6,"skipped":0,"pct":75}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/CanvasMultiPointerArena.tsx": {"lines":{"total":87,"covered":16,"skipped":0,"pct":18.39},"functions":{"total":16,"covered":0,"skipped":0,"pct":0},"statements":{"total":92,"covered":16,"skipped":0,"pct":17.39},"branches":{"total":39,"covered":2,"skipped":0,"pct":5.13}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/CanvasSelectionArena.tsx": {"lines":{"total":179,"covered":163,"skipped":0,"pct":91.06},"functions":{"total":29,"covered":26,"skipped":0,"pct":89.66},"statements":{"total":185,"covered":169,"skipped":0,"pct":91.35},"branches":{"total":181,"covered":130,"skipped":0,"pct":71.82}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/NotFound.tsx": {"lines":{"total":10,"covered":6,"skipped":0,"pct":60},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":6,"skipped":0,"pct":60},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/ProfileDropdown.tsx": {"lines":{"total":26,"covered":18,"skipped":0,"pct":69.23},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":26,"covered":18,"skipped":0,"pct":69.23},"branches":{"total":10,"covered":6,"skipped":0,"pct":60}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/ProfileDropdown.tsx": {"lines":{"total":25,"covered":17,"skipped":0,"pct":68},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":17,"skipped":0,"pct":68},"branches":{"total":8,"covered":6,"skipped":0,"pct":75}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/ProfileImage.tsx": {"lines":{"total":18,"covered":16,"skipped":0,"pct":88.89},"functions":{"total":7,"covered":5,"skipped":0,"pct":71.43},"statements":{"total":20,"covered":18,"skipped":0,"pct":90},"branches":{"total":16,"covered":10,"skipped":0,"pct":62.5}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/ThemeSwitcher.tsx": {"lines":{"total":13,"covered":7,"skipped":0,"pct":53.85},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":7,"skipped":0,"pct":46.67},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/CustomizedDropdown/StyledComponents.tsx": {"lines":{"total":25,"covered":7,"skipped":0,"pct":28},"functions":{"total":18,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":7,"skipped":0,"pct":28},"branches":{"total":26,"covered":10,"skipped":0,"pct":38.46}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/CustomizedDropdown/dropdownHelpers.tsx": {"lines":{"total":28,"covered":9,"skipped":0,"pct":32.14},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":29,"covered":10,"skipped":0,"pct":34.48},"branches":{"total":15,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/pages/common/CustomizedDropdown/index.tsx": {"lines":{"total":31,"covered":15,"skipped":0,"pct":48.39},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":16,"skipped":0,"pct":48.48},"branches":{"total":28,"covered":0,"skipped":0,"pct":0}} @@ -552,7 +567,8 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/appReducer.ts": {"lines":{"total":10,"covered":7,"skipped":0,"pct":70},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":10,"covered":7,"skipped":0,"pct":70},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/canvasWidgetsReducer.tsx": {"lines":{"total":11,"covered":10,"skipped":0,"pct":90.91},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":11,"covered":10,"skipped":0,"pct":90.91},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/datasourceReducer.ts": {"lines":{"total":54,"covered":5,"skipped":0,"pct":9.26},"functions":{"total":36,"covered":0,"skipped":0,"pct":0},"statements":{"total":56,"covered":5,"skipped":0,"pct":8.93},"branches":{"total":12,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/index.ts": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":12,"covered":12,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/index.ts": {"lines":{"total":13,"covered":13,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":13,"covered":13,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/jsActionsReducer.tsx": {"lines":{"total":97,"covered":6,"skipped":0,"pct":6.19},"functions":{"total":46,"covered":0,"skipped":0,"pct":0},"statements":{"total":104,"covered":6,"skipped":0,"pct":5.77},"branches":{"total":46,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/jsExecutionsReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/metaReducer.ts": {"lines":{"total":28,"covered":12,"skipped":0,"pct":42.86},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":28,"covered":12,"skipped":0,"pct":42.86},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/entityReducers/pageListReducer.tsx": {"lines":{"total":45,"covered":9,"skipped":0,"pct":20},"functions":{"total":20,"covered":3,"skipped":0,"pct":15},"statements":{"total":51,"covered":9,"skipped":0,"pct":17.65},"branches":{"total":20,"covered":5,"skipped":0,"pct":25}} @@ -577,7 +593,7 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/datasourcePaneReducer.ts": {"lines":{"total":15,"covered":6,"skipped":0,"pct":40},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":15,"covered":6,"skipped":0,"pct":40},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/debuggerReducer.ts": {"lines":{"total":14,"covered":7,"skipped":0,"pct":50},"functions":{"total":7,"covered":1,"skipped":0,"pct":14.29},"statements":{"total":15,"covered":7,"skipped":0,"pct":46.67},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/dragResizeReducer.ts": {"lines":{"total":43,"covered":39,"skipped":0,"pct":90.7},"functions":{"total":13,"covered":10,"skipped":0,"pct":76.92},"statements":{"total":44,"covered":39,"skipped":0,"pct":88.64},"branches":{"total":26,"covered":16,"skipped":0,"pct":61.54}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/editorReducer.tsx": {"lines":{"total":69,"covered":19,"skipped":0,"pct":27.54},"functions":{"total":24,"covered":8,"skipped":0,"pct":33.33},"statements":{"total":69,"covered":19,"skipped":0,"pct":27.54},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/editorReducer.tsx": {"lines":{"total":69,"covered":16,"skipped":0,"pct":23.19},"functions":{"total":24,"covered":6,"skipped":0,"pct":25},"statements":{"total":69,"covered":16,"skipped":0,"pct":23.19},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/errorReducer.tsx": {"lines":{"total":9,"covered":7,"skipped":0,"pct":77.78},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":9,"covered":7,"skipped":0,"pct":77.78},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/explorerReducer.ts": {"lines":{"total":19,"covered":10,"skipped":0,"pct":52.63},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":19,"covered":10,"skipped":0,"pct":52.63},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/gitSyncReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} @@ -585,7 +601,8 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/helpReducer.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/importReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/importedCollectionsReducer.ts": {"lines":{"total":8,"covered":5,"skipped":0,"pct":62.5},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":8,"covered":5,"skipped":0,"pct":62.5},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/index.tsx": {"lines":{"total":41,"covered":41,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":41,"covered":41,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/index.tsx": {"lines":{"total":42,"covered":42,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":42,"covered":42,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/jsPaneReducer.ts": {"lines":{"total":16,"covered":5,"skipped":0,"pct":31.25},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":5,"skipped":0,"pct":31.25},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/notificationsReducer.ts": {"lines":{"total":21,"covered":6,"skipped":0,"pct":28.57},"functions":{"total":8,"covered":0,"skipped":0,"pct":0},"statements":{"total":21,"covered":6,"skipped":0,"pct":28.57},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/onBoardingReducer.ts": {"lines":{"total":25,"covered":6,"skipped":0,"pct":24},"functions":{"total":19,"covered":0,"skipped":0,"pct":0},"statements":{"total":25,"covered":6,"skipped":0,"pct":24},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/orgReducer.ts": {"lines":{"total":37,"covered":5,"skipped":0,"pct":13.51},"functions":{"total":24,"covered":0,"skipped":0,"pct":0},"statements":{"total":37,"covered":5,"skipped":0,"pct":13.51},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} @@ -601,7 +618,7 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/usersReducer.ts": {"lines":{"total":33,"covered":7,"skipped":0,"pct":21.21},"functions":{"total":11,"covered":0,"skipped":0,"pct":0},"statements":{"total":33,"covered":7,"skipped":0,"pct":21.21},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/websocketReducer.ts": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/widgetSidebarReducer.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/commentsReducer.ts": {"lines":{"total":64,"covered":38,"skipped":0,"pct":59.38},"functions":{"total":30,"covered":15,"skipped":0,"pct":50},"statements":{"total":72,"covered":38,"skipped":0,"pct":52.78},"branches":{"total":6,"covered":3,"skipped":0,"pct":50}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/commentsReducer.ts": {"lines":{"total":71,"covered":45,"skipped":0,"pct":63.38},"functions":{"total":33,"covered":18,"skipped":0,"pct":54.55},"statements":{"total":81,"covered":47,"skipped":0,"pct":58.02},"branches":{"total":10,"covered":5,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/common.ts": {"lines":{"total":18,"covered":2,"skipped":0,"pct":11.11},"functions":{"total":4,"covered":0,"skipped":0,"pct":0},"statements":{"total":23,"covered":4,"skipped":0,"pct":17.39},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleAddCommentToThreadSuccess.ts": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":10,"covered":10,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleCreateNewCommentThreadSuccess.ts": {"lines":{"total":10,"covered":9,"skipped":0,"pct":90},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":13,"covered":12,"skipped":0,"pct":92.31},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} @@ -615,33 +632,35 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/handleUpdateCommentThreadSuccess.ts": {"lines":{"total":14,"covered":13,"skipped":0,"pct":92.86},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":15,"covered":14,"skipped":0,"pct":93.33},"branches":{"total":40,"covered":24,"skipped":0,"pct":60}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/reducers/uiReducers/commentsReducer/testFixtures.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/resizable/index.tsx": {"lines":{"total":71,"covered":43,"skipped":0,"pct":60.56},"functions":{"total":20,"covered":7,"skipped":0,"pct":35},"statements":{"total":82,"covered":48,"skipped":0,"pct":58.54},"branches":{"total":40,"covered":16,"skipped":0,"pct":40}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionSagas.ts": {"lines":{"total":310,"covered":41,"skipped":0,"pct":13.23},"functions":{"total":27,"covered":1,"skipped":0,"pct":3.7},"statements":{"total":376,"covered":41,"skipped":0,"pct":10.9},"branches":{"total":131,"covered":1,"skipped":0,"pct":0.76}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionSagas.ts": {"lines":{"total":311,"covered":41,"skipped":0,"pct":13.18},"functions":{"total":27,"covered":1,"skipped":0,"pct":3.7},"statements":{"total":376,"covered":41,"skipped":0,"pct":10.9},"branches":{"total":129,"covered":1,"skipped":0,"pct":0.78}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ApiPaneSagas.ts": {"lines":{"total":184,"covered":32,"skipped":0,"pct":17.39},"functions":{"total":28,"covered":2,"skipped":0,"pct":7.14},"statements":{"total":213,"covered":33,"skipped":0,"pct":15.49},"branches":{"total":109,"covered":2,"skipped":0,"pct":1.83}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ApplicationSagas.tsx": {"lines":{"total":171,"covered":40,"skipped":0,"pct":23.39},"functions":{"total":22,"covered":2,"skipped":0,"pct":9.09},"statements":{"total":202,"covered":41,"skipped":0,"pct":20.3},"branches":{"total":67,"covered":5,"skipped":0,"pct":7.46}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/BatchSagas.tsx": {"lines":{"total":25,"covered":22,"skipped":0,"pct":88},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":31,"covered":27,"skipped":0,"pct":87.1},"branches":{"total":12,"covered":11,"skipped":0,"pct":91.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/CollectionSagas.ts": {"lines":{"total":12,"covered":7,"skipped":0,"pct":58.33},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":14,"covered":7,"skipped":0,"pct":50},"branches":{"total":3,"covered":1,"skipped":0,"pct":33.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/CurlImportSagas.ts": {"lines":{"total":31,"covered":17,"skipped":0,"pct":54.84},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":35,"covered":17,"skipped":0,"pct":48.57},"branches":{"total":3,"covered":1,"skipped":0,"pct":33.33}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/DatasourcesSagas.ts": {"lines":{"total":261,"covered":40,"skipped":0,"pct":15.33},"functions":{"total":24,"covered":2,"skipped":0,"pct":8.33},"statements":{"total":317,"covered":41,"skipped":0,"pct":12.93},"branches":{"total":117,"covered":2,"skipped":0,"pct":1.71}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/DebuggerSagas.ts": {"lines":{"total":147,"covered":28,"skipped":0,"pct":19.05},"functions":{"total":17,"covered":3,"skipped":0,"pct":17.65},"statements":{"total":163,"covered":28,"skipped":0,"pct":17.18},"branches":{"total":138,"covered":7,"skipped":0,"pct":5.07}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/DatasourcesSagas.ts": {"lines":{"total":263,"covered":40,"skipped":0,"pct":15.21},"functions":{"total":24,"covered":2,"skipped":0,"pct":8.33},"statements":{"total":319,"covered":41,"skipped":0,"pct":12.85},"branches":{"total":119,"covered":2,"skipped":0,"pct":1.68}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/DebuggerSagas.ts": {"lines":{"total":161,"covered":28,"skipped":0,"pct":17.39},"functions":{"total":17,"covered":3,"skipped":0,"pct":17.65},"statements":{"total":179,"covered":28,"skipped":0,"pct":15.64},"branches":{"total":155,"covered":7,"skipped":0,"pct":4.52}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/DraggingCanvasSagas.ts": {"lines":{"total":39,"covered":30,"skipped":0,"pct":76.92},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":41,"covered":31,"skipped":0,"pct":75.61},"branches":{"total":17,"covered":4,"skipped":0,"pct":23.53}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ErrorSagas.tsx": {"lines":{"total":102,"covered":58,"skipped":0,"pct":56.86},"functions":{"total":18,"covered":7,"skipped":0,"pct":38.89},"statements":{"total":113,"covered":65,"skipped":0,"pct":57.52},"branches":{"total":63,"covered":24,"skipped":0,"pct":38.1}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/EvaluationsSaga.ts": {"lines":{"total":131,"covered":33,"skipped":0,"pct":25.19},"functions":{"total":18,"covered":2,"skipped":0,"pct":11.11},"statements":{"total":149,"covered":33,"skipped":0,"pct":22.15},"branches":{"total":61,"covered":1,"skipped":0,"pct":1.64}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ErrorSagas.tsx": {"lines":{"total":102,"covered":58,"skipped":0,"pct":56.86},"functions":{"total":18,"covered":7,"skipped":0,"pct":38.89},"statements":{"total":113,"covered":65,"skipped":0,"pct":57.52},"branches":{"total":62,"covered":24,"skipped":0,"pct":38.71}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/EvaluationsSaga.ts": {"lines":{"total":141,"covered":35,"skipped":0,"pct":24.82},"functions":{"total":20,"covered":2,"skipped":0,"pct":10},"statements":{"total":162,"covered":35,"skipped":0,"pct":21.6},"branches":{"total":63,"covered":1,"skipped":0,"pct":1.59}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/FormEvaluationSaga.ts": {"lines":{"total":61,"covered":16,"skipped":0,"pct":26.23},"functions":{"total":12,"covered":3,"skipped":0,"pct":25},"statements":{"total":68,"covered":16,"skipped":0,"pct":23.53},"branches":{"total":31,"covered":5,"skipped":0,"pct":16.13}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/GlobalSearchSagas.ts": {"lines":{"total":35,"covered":19,"skipped":0,"pct":54.29},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":40,"covered":21,"skipped":0,"pct":52.5},"branches":{"total":23,"covered":3,"skipped":0,"pct":13.04}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/InitSagas.ts": {"lines":{"total":92,"covered":44,"skipped":0,"pct":47.83},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":109,"covered":48,"skipped":0,"pct":44.04},"branches":{"total":35,"covered":5,"skipped":0,"pct":14.29}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/InitSagas.ts": {"lines":{"total":98,"covered":46,"skipped":0,"pct":46.94},"functions":{"total":6,"covered":4,"skipped":0,"pct":66.67},"statements":{"total":119,"covered":50,"skipped":0,"pct":42.02},"branches":{"total":39,"covered":5,"skipped":0,"pct":12.82}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/JSActionSagas.ts": {"lines":{"total":137,"covered":26,"skipped":0,"pct":18.98},"functions":{"total":15,"covered":1,"skipped":0,"pct":6.67},"statements":{"total":168,"covered":27,"skipped":0,"pct":16.07},"branches":{"total":49,"covered":1,"skipped":0,"pct":2.04}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/JSPaneSagas.ts": {"lines":{"total":127,"covered":31,"skipped":0,"pct":24.41},"functions":{"total":13,"covered":1,"skipped":0,"pct":7.69},"statements":{"total":153,"covered":31,"skipped":0,"pct":20.26},"branches":{"total":66,"covered":1,"skipped":0,"pct":1.52}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ModalSagas.ts": {"lines":{"total":56,"covered":27,"skipped":0,"pct":48.21},"functions":{"total":10,"covered":3,"skipped":0,"pct":30},"statements":{"total":61,"covered":29,"skipped":0,"pct":47.54},"branches":{"total":24,"covered":6,"skipped":0,"pct":25}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/NotificationsSagas.ts": {"lines":{"total":34,"covered":8,"skipped":0,"pct":23.53},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":44,"covered":8,"skipped":0,"pct":18.18},"branches":{"total":12,"covered":1,"skipped":0,"pct":8.33}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/OnboardingSagas.ts": {"lines":{"total":332,"covered":57,"skipped":0,"pct":17.17},"functions":{"total":53,"covered":6,"skipped":0,"pct":11.32},"statements":{"total":390,"covered":66,"skipped":0,"pct":16.92},"branches":{"total":145,"covered":2,"skipped":0,"pct":1.38}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/OnboardingSagas.ts": {"lines":{"total":331,"covered":57,"skipped":0,"pct":17.22},"functions":{"total":54,"covered":6,"skipped":0,"pct":11.11},"statements":{"total":389,"covered":66,"skipped":0,"pct":16.97},"branches":{"total":144,"covered":2,"skipped":0,"pct":1.39}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/OrgSagas.ts": {"lines":{"total":106,"covered":24,"skipped":0,"pct":22.64},"functions":{"total":14,"covered":1,"skipped":0,"pct":7.14},"statements":{"total":133,"covered":24,"skipped":0,"pct":18.05},"branches":{"total":37,"covered":1,"skipped":0,"pct":2.7}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/PageSagas.tsx": {"lines":{"total":278,"covered":77,"skipped":0,"pct":27.7},"functions":{"total":35,"covered":5,"skipped":0,"pct":14.29},"statements":{"total":323,"covered":83,"skipped":0,"pct":25.7},"branches":{"total":80,"covered":11,"skipped":0,"pct":13.75}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/PluginSagas.ts": {"lines":{"total":72,"covered":14,"skipped":0,"pct":19.44},"functions":{"total":9,"covered":1,"skipped":0,"pct":11.11},"statements":{"total":87,"covered":14,"skipped":0,"pct":16.09},"branches":{"total":28,"covered":1,"skipped":0,"pct":3.57}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/PostEvaluationSagas.ts": {"lines":{"total":113,"covered":25,"skipped":0,"pct":22.12},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":139,"covered":25,"skipped":0,"pct":17.99},"branches":{"total":68,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/PageSagas.tsx": {"lines":{"total":282,"covered":71,"skipped":0,"pct":25.18},"functions":{"total":35,"covered":5,"skipped":0,"pct":14.29},"statements":{"total":329,"covered":77,"skipped":0,"pct":23.4},"branches":{"total":84,"covered":5,"skipped":0,"pct":5.95}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/PluginSagas.ts": {"lines":{"total":80,"covered":14,"skipped":0,"pct":17.5},"functions":{"total":10,"covered":1,"skipped":0,"pct":10},"statements":{"total":96,"covered":14,"skipped":0,"pct":14.58},"branches":{"total":34,"covered":1,"skipped":0,"pct":2.94}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/PostEvaluationSagas.ts": {"lines":{"total":115,"covered":25,"skipped":0,"pct":21.74},"functions":{"total":12,"covered":0,"skipped":0,"pct":0},"statements":{"total":141,"covered":25,"skipped":0,"pct":17.73},"branches":{"total":93,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ProvidersSaga.ts": {"lines":{"total":63,"covered":19,"skipped":0,"pct":30.16},"functions":{"total":8,"covered":1,"skipped":0,"pct":12.5},"statements":{"total":78,"covered":19,"skipped":0,"pct":24.36},"branches":{"total":19,"covered":1,"skipped":0,"pct":5.26}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/QueryPaneSagas.ts": {"lines":{"total":89,"covered":25,"skipped":0,"pct":28.09},"functions":{"total":8,"covered":2,"skipped":0,"pct":25},"statements":{"total":109,"covered":26,"skipped":0,"pct":23.85},"branches":{"total":39,"covered":5,"skipped":0,"pct":12.82}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/RecentEntitiesSagas.ts": {"lines":{"total":29,"covered":13,"skipped":0,"pct":44.83},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":29,"covered":13,"skipped":0,"pct":44.83},"branches":{"total":66,"covered":8,"skipped":0,"pct":12.12}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/RecentEntitiesSagas.ts": {"lines":{"total":32,"covered":13,"skipped":0,"pct":40.63},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":32,"covered":13,"skipped":0,"pct":40.63},"branches":{"total":80,"covered":8,"skipped":0,"pct":10}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/SaaSPaneSagas.ts": {"lines":{"total":34,"covered":16,"skipped":0,"pct":47.06},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":46,"covered":17,"skipped":0,"pct":36.96},"branches":{"total":15,"covered":5,"skipped":0,"pct":33.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/SelectionCanvasSagas.ts": {"lines":{"total":41,"covered":41,"skipped":0,"pct":100},"functions":{"total":8,"covered":8,"skipped":0,"pct":100},"statements":{"total":46,"covered":46,"skipped":0,"pct":100},"branches":{"total":18,"covered":13,"skipped":0,"pct":72.22}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/SnipingModeSagas.ts": {"lines":{"total":106,"covered":19,"skipped":0,"pct":17.92},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":110,"covered":19,"skipped":0,"pct":17.27},"branches":{"total":25,"covered":1,"skipped":0,"pct":4}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/SnipingModeSagas.ts": {"lines":{"total":110,"covered":20,"skipped":0,"pct":18.18},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":114,"covered":20,"skipped":0,"pct":17.54},"branches":{"total":29,"covered":1,"skipped":0,"pct":3.45}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ThemeSaga.tsx": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":7,"covered":6,"skipped":0,"pct":85.71},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/TourSagas.ts": {"lines":{"total":15,"covered":7,"skipped":0,"pct":46.67},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":18,"covered":7,"skipped":0,"pct":38.89},"branches":{"total":7,"covered":1,"skipped":0,"pct":14.29}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/UtilSagas.ts": {"lines":{"total":7,"covered":5,"skipped":0,"pct":71.43},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":7,"covered":5,"skipped":0,"pct":71.43},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}} @@ -653,32 +672,32 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WidgetOperationUtils.ts": {"lines":{"total":217,"covered":132,"skipped":0,"pct":60.83},"functions":{"total":43,"covered":24,"skipped":0,"pct":55.81},"statements":{"total":252,"covered":155,"skipped":0,"pct":61.51},"branches":{"total":179,"covered":69,"skipped":0,"pct":38.55}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WidgetSelectionSagas.ts": {"lines":{"total":125,"covered":113,"skipped":0,"pct":90.4},"functions":{"total":21,"covered":21,"skipped":0,"pct":100},"statements":{"total":146,"covered":133,"skipped":0,"pct":91.1},"branches":{"total":93,"covered":81,"skipped":0,"pct":87.1}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WidgetSidebarSagas.tsx": {"lines":{"total":10,"covered":7,"skipped":0,"pct":70},"functions":{"total":2,"covered":1,"skipped":0,"pct":50},"statements":{"total":11,"covered":7,"skipped":0,"pct":63.64},"branches":{"total":1,"covered":1,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/index.tsx": {"lines":{"total":49,"covered":46,"skipped":0,"pct":93.88},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":51,"covered":47,"skipped":0,"pct":92.16},"branches":{"total":5,"covered":3,"skipped":0,"pct":60}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/index.tsx": {"lines":{"total":51,"covered":48,"skipped":0,"pct":94.12},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":53,"covered":49,"skipped":0,"pct":92.45},"branches":{"total":5,"covered":3,"skipped":0,"pct":60}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/selectors.tsx": {"lines":{"total":84,"covered":57,"skipped":0,"pct":67.86},"functions":{"total":33,"covered":18,"skipped":0,"pct":54.55},"statements":{"total":110,"covered":81,"skipped":0,"pct":73.64},"branches":{"total":26,"covered":15,"skipped":0,"pct":57.69}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/userSagas.tsx": {"lines":{"total":177,"covered":35,"skipped":0,"pct":19.77},"functions":{"total":18,"covered":1,"skipped":0,"pct":5.56},"statements":{"total":212,"covered":35,"skipped":0,"pct":16.51},"branches":{"total":62,"covered":1,"skipped":0,"pct":1.61}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/ActionExecutionSagas.ts": {"lines":{"total":74,"covered":21,"skipped":0,"pct":28.38},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":77,"covered":23,"skipped":0,"pct":29.87},"branches":{"total":35,"covered":1,"skipped":0,"pct":2.86}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/userSagas.tsx": {"lines":{"total":181,"covered":36,"skipped":0,"pct":19.89},"functions":{"total":18,"covered":1,"skipped":0,"pct":5.56},"statements":{"total":217,"covered":36,"skipped":0,"pct":16.59},"branches":{"total":62,"covered":1,"skipped":0,"pct":1.61}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/ActionExecutionSagas.ts": {"lines":{"total":76,"covered":21,"skipped":0,"pct":27.63},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":80,"covered":23,"skipped":0,"pct":28.75},"branches":{"total":36,"covered":1,"skipped":0,"pct":2.78}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/CopyActionSaga.ts": {"lines":{"total":9,"covered":4,"skipped":0,"pct":44.44},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":4,"skipped":0,"pct":44.44},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/DownloadActionSaga.ts": {"lines":{"total":26,"covered":10,"skipped":0,"pct":38.46},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":26,"covered":10,"skipped":0,"pct":38.46},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/ModalSagas.ts": {"lines":{"total":7,"covered":4,"skipped":0,"pct":57.14},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":7,"covered":4,"skipped":0,"pct":57.14},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/NavigateActionSaga.ts": {"lines":{"total":41,"covered":15,"skipped":0,"pct":36.59},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":45,"covered":15,"skipped":0,"pct":33.33},"branches":{"total":25,"covered":2,"skipped":0,"pct":8}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/PluginActionSaga.ts": {"lines":{"total":217,"covered":44,"skipped":0,"pct":20.28},"functions":{"total":23,"covered":4,"skipped":0,"pct":17.39},"statements":{"total":255,"covered":47,"skipped":0,"pct":18.43},"branches":{"total":99,"covered":3,"skipped":0,"pct":3.03}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/PromiseActionSaga.ts": {"lines":{"total":27,"covered":10,"skipped":0,"pct":37.04},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":31,"covered":12,"skipped":0,"pct":38.71},"branches":{"total":13,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/PluginActionSaga.ts": {"lines":{"total":214,"covered":44,"skipped":0,"pct":20.56},"functions":{"total":23,"covered":4,"skipped":0,"pct":17.39},"statements":{"total":252,"covered":47,"skipped":0,"pct":18.65},"branches":{"total":100,"covered":3,"skipped":0,"pct":3}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/PromiseActionSaga.ts": {"lines":{"total":37,"covered":11,"skipped":0,"pct":29.73},"functions":{"total":6,"covered":2,"skipped":0,"pct":33.33},"statements":{"total":44,"covered":15,"skipped":0,"pct":34.09},"branches":{"total":23,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/ResetWidgetActionSaga.ts": {"lines":{"total":15,"covered":6,"skipped":0,"pct":40},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":16,"covered":6,"skipped":0,"pct":37.5},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/ShowAlertActionSaga.ts": {"lines":{"total":20,"covered":5,"skipped":0,"pct":25},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":20,"covered":5,"skipped":0,"pct":25},"branches":{"total":12,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/ActionExecution/StoreActionSaga.ts": {"lines":{"total":22,"covered":8,"skipped":0,"pct":36.36},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":24,"covered":8,"skipped":0,"pct":33.33},"branches":{"total":5,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/CommentSagas/index.ts": {"lines":{"total":113,"covered":55,"skipped":0,"pct":48.67},"functions":{"total":20,"covered":11,"skipped":0,"pct":55},"statements":{"total":146,"covered":71,"skipped":0,"pct":48.63},"branches":{"total":39,"covered":8,"skipped":0,"pct":20.51}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WebsocketSagas/WebsocketSagas.ts": {"lines":{"total":57,"covered":13,"skipped":0,"pct":22.81},"functions":{"total":15,"covered":2,"skipped":0,"pct":13.33},"statements":{"total":68,"covered":13,"skipped":0,"pct":19.12},"branches":{"total":21,"covered":2,"skipped":0,"pct":9.52}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/CommentSagas/index.ts": {"lines":{"total":114,"covered":56,"skipped":0,"pct":49.12},"functions":{"total":20,"covered":11,"skipped":0,"pct":55},"statements":{"total":147,"covered":72,"skipped":0,"pct":48.98},"branches":{"total":39,"covered":8,"skipped":0,"pct":20.51}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WebsocketSagas/WebsocketSagas.ts": {"lines":{"total":52,"covered":11,"skipped":0,"pct":21.15},"functions":{"total":15,"covered":2,"skipped":0,"pct":13.33},"statements":{"total":61,"covered":11,"skipped":0,"pct":18.03},"branches":{"total":17,"covered":2,"skipped":0,"pct":11.76}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WebsocketSagas/constants.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/sagas/WebsocketSagas/handleSocketEvent.ts": {"lines":{"total":53,"covered":10,"skipped":0,"pct":18.87},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":56,"covered":10,"skipped":0,"pct":17.86},"branches":{"total":92,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/appCollabSelectors.tsx": {"lines":{"total":7,"covered":6,"skipped":0,"pct":85.71},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":12,"covered":9,"skipped":0,"pct":75},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/appViewSelectors.tsx": {"lines":{"total":15,"covered":10,"skipped":0,"pct":66.67},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":16,"covered":11,"skipped":0,"pct":68.75},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/applicationSelectors.tsx": {"lines":{"total":61,"covered":37,"skipped":0,"pct":60.66},"functions":{"total":24,"covered":11,"skipped":0,"pct":45.83},"statements":{"total":79,"covered":54,"skipped":0,"pct":68.35},"branches":{"total":22,"covered":6,"skipped":0,"pct":27.27}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/commentsSelectors.ts": {"lines":{"total":76,"covered":32,"skipped":0,"pct":42.11},"functions":{"total":26,"covered":11,"skipped":0,"pct":42.31},"statements":{"total":108,"covered":51,"skipped":0,"pct":47.22},"branches":{"total":69,"covered":8,"skipped":0,"pct":11.59}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/commentsSelectors.ts": {"lines":{"total":80,"covered":66,"skipped":0,"pct":82.5},"functions":{"total":28,"covered":19,"skipped":0,"pct":67.86},"statements":{"total":113,"covered":87,"skipped":0,"pct":76.99},"branches":{"total":66,"covered":36,"skipped":0,"pct":54.55}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/crudInfoModalSelectors.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/dataTreeSelectors.ts": {"lines":{"total":24,"covered":16,"skipped":0,"pct":66.67},"functions":{"total":6,"covered":3,"skipped":0,"pct":50},"statements":{"total":27,"covered":19,"skipped":0,"pct":70.37},"branches":{"total":10,"covered":3,"skipped":0,"pct":30}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/debuggerSelectors.tsx": {"lines":{"total":6,"covered":5,"skipped":0,"pct":83.33},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":11,"covered":10,"skipped":0,"pct":90.91},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/editorSelectors.tsx": {"lines":{"total":126,"covered":87,"skipped":0,"pct":69.05},"functions":{"total":51,"covered":30,"skipped":0,"pct":58.82},"statements":{"total":156,"covered":113,"skipped":0,"pct":72.44},"branches":{"total":56,"covered":35,"skipped":0,"pct":62.5}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/entitiesSelector.ts": {"lines":{"total":210,"covered":106,"skipped":0,"pct":50.48},"functions":{"total":109,"covered":33,"skipped":0,"pct":30.28},"statements":{"total":284,"covered":150,"skipped":0,"pct":52.82},"branches":{"total":79,"covered":6,"skipped":0,"pct":7.59}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/editorSelectors.tsx": {"lines":{"total":136,"covered":93,"skipped":0,"pct":68.38},"functions":{"total":55,"covered":31,"skipped":0,"pct":56.36},"statements":{"total":167,"covered":119,"skipped":0,"pct":71.26},"branches":{"total":61,"covered":37,"skipped":0,"pct":60.66}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/entitiesSelector.ts": {"lines":{"total":228,"covered":117,"skipped":0,"pct":51.32},"functions":{"total":119,"covered":38,"skipped":0,"pct":31.93},"statements":{"total":308,"covered":166,"skipped":0,"pct":53.9},"branches":{"total":84,"covered":8,"skipped":0,"pct":9.52}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/errorSelectors.tsx": {"lines":{"total":4,"covered":2,"skipped":0,"pct":50},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":6,"covered":4,"skipped":0,"pct":66.67},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/formSelectors.ts": {"lines":{"total":20,"covered":6,"skipped":0,"pct":30},"functions":{"total":6,"covered":0,"skipped":0,"pct":0},"statements":{"total":24,"covered":10,"skipped":0,"pct":41.67},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/selectors/globalSearchSelectors.tsx": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":7,"covered":6,"skipped":0,"pct":85.71},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} @@ -697,39 +716,41 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/templates/default.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/transformers/CurlImportTransformer.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/transformers/RestAPIDatasourceFormTransformer.ts": {"lines":{"total":66,"covered":9,"skipped":0,"pct":13.64},"functions":{"total":9,"covered":0,"skipped":0,"pct":0},"statements":{"total":74,"covered":11,"skipped":0,"pct":14.86},"branches":{"total":85,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/transformers/RestActionTransformer.ts": {"lines":{"total":15,"covered":15,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":17,"covered":16,"skipped":0,"pct":94.12},"branches":{"total":16,"covered":13,"skipped":0,"pct":81.25}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/transformers/RestActionTransformer.ts": {"lines":{"total":21,"covered":21,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":24,"covered":23,"skipped":0,"pct":95.83},"branches":{"total":22,"covered":18,"skipped":0,"pct":81.82}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/AnalyticsUtil.tsx": {"lines":{"total":92,"covered":27,"skipped":0,"pct":29.35},"functions":{"total":13,"covered":4,"skipped":0,"pct":30.77},"statements":{"total":96,"covered":28,"skipped":0,"pct":29.17},"branches":{"total":39,"covered":4,"skipped":0,"pct":10.26}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/ApiPaneUtils.tsx": {"lines":{"total":19,"covered":19,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":20,"covered":20,"skipped":0,"pct":100},"branches":{"total":19,"covered":15,"skipped":0,"pct":78.95}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/AppsmithConsole.ts": {"lines":{"total":14,"covered":9,"skipped":0,"pct":64.29},"functions":{"total":8,"covered":4,"skipped":0,"pct":50},"statements":{"total":14,"covered":9,"skipped":0,"pct":64.29},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/AppsmithUtils.tsx": {"lines":{"total":162,"covered":85,"skipped":0,"pct":52.47},"functions":{"total":40,"covered":15,"skipped":0,"pct":37.5},"statements":{"total":189,"covered":108,"skipped":0,"pct":57.14},"branches":{"total":88,"covered":30,"skipped":0,"pct":34.09}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/DynamicBindingUtils.ts": {"lines":{"total":120,"covered":107,"skipped":0,"pct":89.17},"functions":{"total":23,"covered":18,"skipped":0,"pct":78.26},"statements":{"total":138,"covered":125,"skipped":0,"pct":90.58},"branches":{"total":75,"covered":63,"skipped":0,"pct":84}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/AppsmithUtils.tsx": {"lines":{"total":167,"covered":86,"skipped":0,"pct":51.5},"functions":{"total":43,"covered":15,"skipped":0,"pct":34.88},"statements":{"total":195,"covered":110,"skipped":0,"pct":56.41},"branches":{"total":88,"covered":30,"skipped":0,"pct":34.09}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/DynamicBindingUtils.ts": {"lines":{"total":126,"covered":111,"skipped":0,"pct":88.1},"functions":{"total":23,"covered":18,"skipped":0,"pct":78.26},"statements":{"total":144,"covered":129,"skipped":0,"pct":89.58},"branches":{"total":79,"covered":66,"skipped":0,"pct":83.54}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/EditorUtils.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/FormControlFactory.tsx": {"lines":{"total":16,"covered":7,"skipped":0,"pct":43.75},"functions":{"total":4,"covered":1,"skipped":0,"pct":25},"statements":{"total":16,"covered":7,"skipped":0,"pct":43.75},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/FormControlRegistry.tsx": {"lines":{"total":42,"covered":18,"skipped":0,"pct":42.86},"functions":{"total":14,"covered":1,"skipped":0,"pct":7.14},"statements":{"total":42,"covered":18,"skipped":0,"pct":42.86},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/GenerateCrudUtil.ts": {"lines":{"total":9,"covered":1,"skipped":0,"pct":11.11},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":10,"covered":2,"skipped":0,"pct":20},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/JSPaneUtils.tsx": {"lines":{"total":46,"covered":1,"skipped":0,"pct":2.17},"functions":{"total":7,"covered":0,"skipped":0,"pct":0},"statements":{"total":57,"covered":2,"skipped":0,"pct":3.51},"branches":{"total":25,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/PerformanceTracker.ts": {"lines":{"total":114,"covered":71,"skipped":0,"pct":62.28},"functions":{"total":11,"covered":8,"skipped":0,"pct":72.73},"statements":{"total":117,"covered":72,"skipped":0,"pct":61.54},"branches":{"total":79,"covered":20,"skipped":0,"pct":25.32}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/PropertyControlFactory.tsx": {"lines":{"total":19,"covered":14,"skipped":0,"pct":73.68},"functions":{"total":4,"covered":3,"skipped":0,"pct":75},"statements":{"total":20,"covered":14,"skipped":0,"pct":70},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/PropertyControlRegistry.tsx": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/TypeHelpers.ts": {"lines":{"total":25,"covered":22,"skipped":0,"pct":88},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":34,"covered":29,"skipped":0,"pct":85.29},"branches":{"total":18,"covered":15,"skipped":0,"pct":83.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/WidgetFactory.tsx": {"lines":{"total":85,"covered":61,"skipped":0,"pct":71.76},"functions":{"total":16,"covered":10,"skipped":0,"pct":62.5},"statements":{"total":85,"covered":61,"skipped":0,"pct":71.76},"branches":{"total":32,"covered":22,"skipped":0,"pct":68.75}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/WidgetPropsUtils.tsx": {"lines":{"total":575,"covered":423,"skipped":0,"pct":73.57},"functions":{"total":93,"covered":65,"skipped":0,"pct":69.89},"statements":{"total":605,"covered":451,"skipped":0,"pct":74.55},"branches":{"total":510,"covered":339,"skipped":0,"pct":66.47}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/WidgetRegistry.tsx": {"lines":{"total":111,"covered":89,"skipped":0,"pct":80.18},"functions":{"total":37,"covered":15,"skipped":0,"pct":40.54},"statements":{"total":111,"covered":89,"skipped":0,"pct":80.18},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/WidgetPropsUtils.tsx": {"lines":{"total":600,"covered":448,"skipped":0,"pct":74.67},"functions":{"total":97,"covered":69,"skipped":0,"pct":71.13},"statements":{"total":631,"covered":477,"skipped":0,"pct":75.59},"branches":{"total":534,"covered":356,"skipped":0,"pct":66.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/WidgetRegistry.tsx": {"lines":{"total":117,"covered":93,"skipped":0,"pct":79.49},"functions":{"total":39,"covered":15,"skipped":0,"pct":38.46},"statements":{"total":117,"covered":93,"skipped":0,"pct":79.49},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/WorkerUtil.ts": {"lines":{"total":65,"covered":60,"skipped":0,"pct":92.31},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":79,"covered":71,"skipped":0,"pct":89.87},"branches":{"total":34,"covered":24,"skipped":0,"pct":70.59}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/canvasStructureHelpers.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":18,"covered":18,"skipped":0,"pct":100},"branches":{"total":20,"covered":19,"skipped":0,"pct":95}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/featureFlags.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/formhelpers.ts": {"lines":{"total":14,"covered":9,"skipped":0,"pct":64.29},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":19,"covered":14,"skipped":0,"pct":73.68},"branches":{"total":7,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/generators.tsx": {"lines":{"total":17,"covered":13,"skipped":0,"pct":76.47},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":27,"covered":22,"skipped":0,"pct":81.48},"branches":{"total":8,"covered":3,"skipped":0,"pct":37.5}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/helpers.tsx": {"lines":{"total":144,"covered":91,"skipped":0,"pct":63.19},"functions":{"total":31,"covered":14,"skipped":0,"pct":45.16},"statements":{"total":180,"covered":119,"skipped":0,"pct":66.11},"branches":{"total":95,"covered":36,"skipped":0,"pct":37.89}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/helpers.tsx": {"lines":{"total":151,"covered":92,"skipped":0,"pct":60.93},"functions":{"total":31,"covered":14,"skipped":0,"pct":45.16},"statements":{"total":191,"covered":122,"skipped":0,"pct":63.87},"branches":{"total":95,"covered":36,"skipped":0,"pct":37.89}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/history.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/localStorage.tsx": {"lines":{"total":55,"covered":44,"skipped":0,"pct":80},"functions":{"total":9,"covered":9,"skipped":0,"pct":100},"statements":{"total":57,"covered":46,"skipped":0,"pct":80.7},"branches":{"total":18,"covered":9,"skipped":0,"pct":50}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/storage.ts": {"lines":{"total":121,"covered":34,"skipped":0,"pct":28.1},"functions":{"total":36,"covered":5,"skipped":0,"pct":13.89},"statements":{"total":166,"covered":59,"skipped":0,"pct":35.54},"branches":{"total":22,"covered":3,"skipped":0,"pct":13.64}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/EntityDefinitions.ts": {"lines":{"total":16,"covered":7,"skipped":0,"pct":43.75},"functions":{"total":5,"covered":1,"skipped":0,"pct":20},"statements":{"total":16,"covered":7,"skipped":0,"pct":43.75},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/TernServer.ts": {"lines":{"total":374,"covered":206,"skipped":0,"pct":55.08},"functions":{"total":58,"covered":21,"skipped":0,"pct":36.21},"statements":{"total":424,"covered":214,"skipped":0,"pct":50.47},"branches":{"total":228,"covered":86,"skipped":0,"pct":37.72}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/storage.ts": {"lines":{"total":133,"covered":36,"skipped":0,"pct":27.07},"functions":{"total":39,"covered":5,"skipped":0,"pct":12.82},"statements":{"total":181,"covered":63,"skipped":0,"pct":34.81},"branches":{"total":22,"covered":3,"skipped":0,"pct":13.64}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/EntityDefinitions.ts": {"lines":{"total":29,"covered":8,"skipped":0,"pct":27.59},"functions":{"total":6,"covered":1,"skipped":0,"pct":16.67},"statements":{"total":32,"covered":9,"skipped":0,"pct":28.13},"branches":{"total":10,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/TernServer.ts": {"lines":{"total":374,"covered":206,"skipped":0,"pct":55.08},"functions":{"total":58,"covered":21,"skipped":0,"pct":36.21},"statements":{"total":424,"covered":214,"skipped":0,"pct":50.47},"branches":{"total":230,"covered":88,"skipped":0,"pct":38.26}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/customTreeTypeDefCreator.ts": {"lines":{"total":10,"covered":3,"skipped":0,"pct":30},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":11,"covered":4,"skipped":0,"pct":36.36},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/dataTreeTypeDefCreator.ts": {"lines":{"total":55,"covered":44,"skipped":0,"pct":80},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":66,"covered":55,"skipped":0,"pct":83.33},"branches":{"total":28,"covered":16,"skipped":0,"pct":57.14}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/dataTreeTypeDefCreator.ts": {"lines":{"total":69,"covered":46,"skipped":0,"pct":66.67},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":81,"covered":57,"skipped":0,"pct":70.37},"branches":{"total":32,"covered":16,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/autocomplete/dataTypeSortRules.ts": {"lines":{"total":2,"covered":2,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/dragResizeHooks.tsx": {"lines":{"total":55,"covered":52,"skipped":0,"pct":94.55},"functions":{"total":17,"covered":14,"skipped":0,"pct":82.35},"statements":{"total":67,"covered":62,"skipped":0,"pct":92.54},"branches":{"total":26,"covered":22,"skipped":0,"pct":84.62}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/localstorage.tsx": {"lines":{"total":17,"covered":4,"skipped":0,"pct":23.53},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":19,"covered":4,"skipped":0,"pct":21.05},"branches":{"total":4,"covered":0,"skipped":0,"pct":0}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useAllowEditorDragToSelect.ts": {"lines":{"total":14,"covered":14,"skipped":0,"pct":100},"functions":{"total":4,"covered":4,"skipped":0,"pct":100},"statements":{"total":15,"covered":15,"skipped":0,"pct":100},"branches":{"total":6,"covered":6,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useBlocksToBeDraggedOnCanvas.ts": {"lines":{"total":111,"covered":106,"skipped":0,"pct":95.5},"functions":{"total":22,"covered":19,"skipped":0,"pct":86.36},"statements":{"total":117,"covered":112,"skipped":0,"pct":95.73},"branches":{"total":70,"covered":60,"skipped":0,"pct":85.71}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useCanvasDragToScroll.ts": {"lines":{"total":42,"covered":41,"skipped":0,"pct":97.62},"functions":{"total":7,"covered":7,"skipped":0,"pct":100},"statements":{"total":43,"covered":42,"skipped":0,"pct":97.67},"branches":{"total":43,"covered":39,"skipped":0,"pct":90.7}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useCanvasDragging.ts": {"lines":{"total":195,"covered":180,"skipped":0,"pct":92.31},"functions":{"total":21,"covered":18,"skipped":0,"pct":85.71},"statements":{"total":199,"covered":184,"skipped":0,"pct":92.46},"branches":{"total":193,"covered":146,"skipped":0,"pct":75.65}} @@ -745,11 +766,12 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useScript.tsx": {"lines":{"total":38,"covered":10,"skipped":0,"pct":26.32},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":41,"covered":10,"skipped":0,"pct":24.39},"branches":{"total":20,"covered":4,"skipped":0,"pct":20}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/hooks/useWidgetSelection.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":12,"covered":12,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/migrations/IncorrectDynamicBindingPathLists.ts": {"lines":{"total":18,"covered":17,"skipped":0,"pct":94.44},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":19,"covered":18,"skipped":0,"pct":94.74},"branches":{"total":8,"covered":7,"skipped":0,"pct":87.5}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/migrations/MenuButtonWidget.ts": {"lines":{"total":12,"covered":2,"skipped":0,"pct":16.67},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":3,"skipped":0,"pct":23.08},"branches":{"total":12,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/migrations/TableWidget.ts": {"lines":{"total":128,"covered":101,"skipped":0,"pct":78.91},"functions":{"total":18,"covered":15,"skipped":0,"pct":83.33},"statements":{"total":142,"covered":107,"skipped":0,"pct":75.35},"branches":{"total":132,"covered":93,"skipped":0,"pct":70.45}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/migrations/MenuButtonWidget.ts": {"lines":{"total":12,"covered":8,"skipped":0,"pct":66.67},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":13,"covered":9,"skipped":0,"pct":69.23},"branches":{"total":12,"covered":8,"skipped":0,"pct":66.67}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/migrations/TableWidget.ts": {"lines":{"total":127,"covered":100,"skipped":0,"pct":78.74},"functions":{"total":18,"covered":15,"skipped":0,"pct":83.33},"statements":{"total":141,"covered":106,"skipped":0,"pct":75.18},"branches":{"total":132,"covered":93,"skipped":0,"pct":70.45}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/migrations/TextWidgetReplaceTextStyle.ts": {"lines":{"total":23,"covered":22,"skipped":0,"pct":95.65},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":24,"covered":23,"skipped":0,"pct":95.83},"branches":{"total":14,"covered":12,"skipped":0,"pct":85.71}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/validation/common.ts": {"lines":{"total":57,"covered":12,"skipped":0,"pct":21.05},"functions":{"total":3,"covered":1,"skipped":0,"pct":33.33},"statements":{"total":58,"covered":13,"skipped":0,"pct":22.41},"branches":{"total":158,"covered":25,"skipped":0,"pct":15.82}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/utils/validation/getIsSafeURL.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":3,"covered":3,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/AudioRecorderWidget.tsx": {"lines":{"total":40,"covered":19,"skipped":0,"pct":47.5},"functions":{"total":8,"covered":4,"skipped":0,"pct":50},"statements":{"total":42,"covered":20,"skipped":0,"pct":47.62},"branches":{"total":7,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/BaseWidget.tsx": {"lines":{"total":117,"covered":88,"skipped":0,"pct":75.21},"functions":{"total":32,"covered":23,"skipped":0,"pct":71.88},"statements":{"total":122,"covered":93,"skipped":0,"pct":76.23},"branches":{"total":43,"covered":19,"skipped":0,"pct":44.19}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/ButtonWidget.tsx": {"lines":{"total":49,"covered":31,"skipped":0,"pct":63.27},"functions":{"total":14,"covered":7,"skipped":0,"pct":50},"statements":{"total":50,"covered":32,"skipped":0,"pct":64},"branches":{"total":16,"covered":6,"skipped":0,"pct":37.5}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/CanvasWidget.tsx": {"lines":{"total":40,"covered":38,"skipped":0,"pct":95},"functions":{"total":8,"covered":7,"skipped":0,"pct":87.5},"statements":{"total":45,"covered":42,"skipped":0,"pct":93.33},"branches":{"total":15,"covered":10,"skipped":0,"pct":66.67}} @@ -769,7 +791,7 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/IconWidget.tsx": {"lines":{"total":23,"covered":17,"skipped":0,"pct":73.91},"functions":{"total":6,"covered":2,"skipped":0,"pct":33.33},"statements":{"total":25,"covered":18,"skipped":0,"pct":72},"branches":{"total":7,"covered":2,"skipped":0,"pct":28.57}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/IframeWidget.tsx": {"lines":{"total":35,"covered":18,"skipped":0,"pct":51.43},"functions":{"total":7,"covered":3,"skipped":0,"pct":42.86},"statements":{"total":37,"covered":19,"skipped":0,"pct":51.35},"branches":{"total":13,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/ImageWidget.tsx": {"lines":{"total":24,"covered":16,"skipped":0,"pct":66.67},"functions":{"total":7,"covered":2,"skipped":0,"pct":28.57},"statements":{"total":28,"covered":17,"skipped":0,"pct":60.71},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/InputWidget.tsx": {"lines":{"total":96,"covered":54,"skipped":0,"pct":56.25},"functions":{"total":22,"covered":13,"skipped":0,"pct":59.09},"statements":{"total":101,"covered":55,"skipped":0,"pct":54.46},"branches":{"total":70,"covered":16,"skipped":0,"pct":22.86}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/InputWidget.tsx": {"lines":{"total":97,"covered":54,"skipped":0,"pct":55.67},"functions":{"total":22,"covered":13,"skipped":0,"pct":59.09},"statements":{"total":102,"covered":55,"skipped":0,"pct":53.92},"branches":{"total":70,"covered":16,"skipped":0,"pct":22.86}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/MapWidget.tsx": {"lines":{"total":60,"covered":29,"skipped":0,"pct":48.33},"functions":{"total":17,"covered":4,"skipped":0,"pct":23.53},"statements":{"total":63,"covered":30,"skipped":0,"pct":47.62},"branches":{"total":22,"covered":2,"skipped":0,"pct":9.09}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/MenuButtonWidget.tsx": {"lines":{"total":38,"covered":18,"skipped":0,"pct":47.37},"functions":{"total":11,"covered":3,"skipped":0,"pct":27.27},"statements":{"total":40,"covered":19,"skipped":0,"pct":47.5},"branches":{"total":11,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/MetaHOC.tsx": {"lines":{"total":59,"covered":49,"skipped":0,"pct":83.05},"functions":{"total":13,"covered":12,"skipped":0,"pct":92.31},"statements":{"total":68,"covered":56,"skipped":0,"pct":82.35},"branches":{"total":19,"covered":11,"skipped":0,"pct":57.89}} @@ -778,11 +800,12 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/RadioGroupWidget.tsx": {"lines":{"total":26,"covered":22,"skipped":0,"pct":84.62},"functions":{"total":8,"covered":5,"skipped":0,"pct":62.5},"statements":{"total":28,"covered":23,"skipped":0,"pct":82.14},"branches":{"total":5,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/RichTextEditorWidget.tsx": {"lines":{"total":37,"covered":27,"skipped":0,"pct":72.97},"functions":{"total":12,"covered":6,"skipped":0,"pct":50},"statements":{"total":39,"covered":28,"skipped":0,"pct":71.79},"branches":{"total":9,"covered":2,"skipped":0,"pct":22.22}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/SkeletonWidget.tsx": {"lines":{"total":15,"covered":13,"skipped":0,"pct":86.67},"functions":{"total":4,"covered":2,"skipped":0,"pct":50},"statements":{"total":16,"covered":14,"skipped":0,"pct":87.5},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/StatboxWidget.tsx": {"lines":{"total":18,"covered":12,"skipped":0,"pct":66.67},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":19,"covered":13,"skipped":0,"pct":68.42},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/SwitchWidget.tsx": {"lines":{"total":25,"covered":23,"skipped":0,"pct":92},"functions":{"total":8,"covered":6,"skipped":0,"pct":75},"statements":{"total":27,"covered":25,"skipped":0,"pct":92.59},"branches":{"total":5,"covered":3,"skipped":0,"pct":60}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/TextWidget.tsx": {"lines":{"total":17,"covered":16,"skipped":0,"pct":94.12},"functions":{"total":5,"covered":4,"skipped":0,"pct":80},"statements":{"total":18,"covered":17,"skipped":0,"pct":94.44},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/VideoWidget.tsx": {"lines":{"total":36,"covered":27,"skipped":0,"pct":75},"functions":{"total":13,"covered":5,"skipped":0,"pct":38.46},"statements":{"total":44,"covered":28,"skipped":0,"pct":63.64},"branches":{"total":5,"covered":2,"skipped":0,"pct":40}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/ChartWidget/index.tsx": {"lines":{"total":25,"covered":23,"skipped":0,"pct":92},"functions":{"total":9,"covered":7,"skipped":0,"pct":77.78},"statements":{"total":27,"covered":25,"skipped":0,"pct":92.59},"branches":{"total":3,"covered":2,"skipped":0,"pct":66.67}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/ChartWidget/propertyConfig.ts": {"lines":{"total":10,"covered":10,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":10,"covered":10,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/ChartWidget/propertyConfig.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/ListWidget/ListComponent.tsx": {"lines":{"total":15,"covered":14,"skipped":0,"pct":93.33},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":15,"covered":14,"skipped":0,"pct":93.33},"branches":{"total":18,"covered":12,"skipped":0,"pct":66.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/ListWidget/ListPagination.tsx": {"lines":{"total":9,"covered":6,"skipped":0,"pct":66.67},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":9,"covered":6,"skipped":0,"pct":66.67},"branches":{"total":6,"covered":2,"skipped":0,"pct":33.33}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/ListWidget/ListPropertyPaneConfig.ts": {"lines":{"total":13,"covered":7,"skipped":0,"pct":53.85},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":7,"skipped":0,"pct":53.85},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} @@ -790,21 +813,21 @@ ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/ListWidget/derived.js": {"lines":{"total":47,"covered":30,"skipped":0,"pct":63.83},"functions":{"total":8,"covered":5,"skipped":0,"pct":62.5},"statements":{"total":50,"covered":33,"skipped":0,"pct":66},"branches":{"total":24,"covered":10,"skipped":0,"pct":41.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/ListWidget/parseDerivedProperties.ts": {"lines":{"total":13,"covered":5,"skipped":0,"pct":38.46},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":5,"skipped":0,"pct":38.46},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/RateWidget/index.tsx": {"lines":{"total":42,"covered":22,"skipped":0,"pct":52.38},"functions":{"total":9,"covered":5,"skipped":0,"pct":55.56},"statements":{"total":44,"covered":23,"skipped":0,"pct":52.27},"branches":{"total":20,"covered":0,"skipped":0,"pct":0}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/TableWidget/TablePropertyPaneConfig.ts": {"lines":{"total":117,"covered":35,"skipped":0,"pct":29.91},"functions":{"total":21,"covered":10,"skipped":0,"pct":47.62},"statements":{"total":122,"covered":35,"skipped":0,"pct":28.69},"branches":{"total":95,"covered":7,"skipped":0,"pct":7.37}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/TableWidget/TablePropertyPaneConfig.ts": {"lines":{"total":137,"covered":55,"skipped":0,"pct":40.15},"functions":{"total":32,"covered":21,"skipped":0,"pct":65.63},"statements":{"total":142,"covered":55,"skipped":0,"pct":38.73},"branches":{"total":98,"covered":10,"skipped":0,"pct":10.2}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/TableWidget/TableWidgetConstants.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":4,"covered":2,"skipped":0,"pct":50}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/TableWidget/derived.js": {"lines":{"total":172,"covered":93,"skipped":0,"pct":54.07},"functions":{"total":37,"covered":14,"skipped":0,"pct":37.84},"statements":{"total":188,"covered":102,"skipped":0,"pct":54.26},"branches":{"total":140,"covered":75,"skipped":0,"pct":53.57}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/TableWidget/index.tsx": {"lines":{"total":370,"covered":102,"skipped":0,"pct":27.57},"functions":{"total":51,"covered":13,"skipped":0,"pct":25.49},"statements":{"total":405,"covered":111,"skipped":0,"pct":27.41},"branches":{"total":296,"covered":18,"skipped":0,"pct":6.08}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/TableWidget/derived.js": {"lines":{"total":172,"covered":93,"skipped":0,"pct":54.07},"functions":{"total":38,"covered":15,"skipped":0,"pct":39.47},"statements":{"total":189,"covered":103,"skipped":0,"pct":54.5},"branches":{"total":140,"covered":75,"skipped":0,"pct":53.57}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/TableWidget/index.tsx": {"lines":{"total":371,"covered":101,"skipped":0,"pct":27.22},"functions":{"total":52,"covered":13,"skipped":0,"pct":25},"statements":{"total":406,"covered":110,"skipped":0,"pct":27.09},"branches":{"total":301,"covered":18,"skipped":0,"pct":5.98}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/TableWidget/parseDerivedProperties.ts": {"lines":{"total":13,"covered":5,"skipped":0,"pct":38.46},"functions":{"total":1,"covered":0,"skipped":0,"pct":0},"statements":{"total":13,"covered":5,"skipped":0,"pct":38.46},"branches":{"total":6,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/Tabs/TabsMigrator.tsx": {"lines":{"total":26,"covered":20,"skipped":0,"pct":76.92},"functions":{"total":5,"covered":2,"skipped":0,"pct":40},"statements":{"total":27,"covered":21,"skipped":0,"pct":77.78},"branches":{"total":2,"covered":0,"skipped":0,"pct":0}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/widgets/Tabs/TabsWidget.tsx": {"lines":{"total":132,"covered":89,"skipped":0,"pct":67.42},"functions":{"total":30,"covered":17,"skipped":0,"pct":56.67},"statements":{"total":140,"covered":95,"skipped":0,"pct":67.86},"branches":{"total":97,"covered":43,"skipped":0,"pct":44.33}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/Actions.ts": {"lines":{"total":101,"covered":76,"skipped":0,"pct":75.25},"functions":{"total":29,"covered":25,"skipped":0,"pct":86.21},"statements":{"total":118,"covered":90,"skipped":0,"pct":76.27},"branches":{"total":54,"covered":26,"skipped":0,"pct":48.15}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/DataTreeEvaluator.ts": {"lines":{"total":444,"covered":392,"skipped":0,"pct":88.29},"functions":{"total":70,"covered":61,"skipped":0,"pct":87.14},"statements":{"total":476,"covered":421,"skipped":0,"pct":88.45},"branches":{"total":189,"covered":144,"skipped":0,"pct":76.19}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/evaluate.ts": {"lines":{"total":66,"covered":66,"skipped":0,"pct":100},"functions":{"total":17,"covered":17,"skipped":0,"pct":100},"statements":{"total":67,"covered":67,"skipped":0,"pct":100},"branches":{"total":18,"covered":15,"skipped":0,"pct":83.33}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/Actions.ts": {"lines":{"total":105,"covered":80,"skipped":0,"pct":76.19},"functions":{"total":29,"covered":25,"skipped":0,"pct":86.21},"statements":{"total":121,"covered":93,"skipped":0,"pct":76.86},"branches":{"total":60,"covered":33,"skipped":0,"pct":55}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/DataTreeEvaluator.ts": {"lines":{"total":502,"covered":419,"skipped":0,"pct":83.47},"functions":{"total":77,"covered":64,"skipped":0,"pct":83.12},"statements":{"total":538,"covered":452,"skipped":0,"pct":84.01},"branches":{"total":234,"covered":152,"skipped":0,"pct":64.96}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/evaluate.ts": {"lines":{"total":72,"covered":68,"skipped":0,"pct":94.44},"functions":{"total":19,"covered":17,"skipped":0,"pct":89.47},"statements":{"total":73,"covered":69,"skipped":0,"pct":94.52},"branches":{"total":20,"covered":16,"skipped":0,"pct":80}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/evaluationSubstitution.ts": {"lines":{"total":59,"covered":59,"skipped":0,"pct":100},"functions":{"total":10,"covered":10,"skipped":0,"pct":100},"statements":{"total":63,"covered":63,"skipped":0,"pct":100},"branches":{"total":22,"covered":21,"skipped":0,"pct":95.45}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/evaluationUtils.ts": {"lines":{"total":187,"covered":157,"skipped":0,"pct":83.96},"functions":{"total":38,"covered":31,"skipped":0,"pct":81.58},"statements":{"total":227,"covered":192,"skipped":0,"pct":84.58},"branches":{"total":111,"covered":79,"skipped":0,"pct":71.17}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/validations.ts": {"lines":{"total":250,"covered":203,"skipped":0,"pct":81.2},"functions":{"total":26,"covered":19,"skipped":0,"pct":73.08},"statements":{"total":273,"covered":216,"skipped":0,"pct":79.12},"branches":{"total":545,"covered":381,"skipped":0,"pct":69.91}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/evaluationUtils.ts": {"lines":{"total":209,"covered":167,"skipped":0,"pct":79.9},"functions":{"total":41,"covered":32,"skipped":0,"pct":78.05},"statements":{"total":250,"covered":203,"skipped":0,"pct":81.2},"branches":{"total":123,"covered":83,"skipped":0,"pct":67.48}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/src/workers/validations.ts": {"lines":{"total":250,"covered":203,"skipped":0,"pct":81.2},"functions":{"total":26,"covered":19,"skipped":0,"pct":73.08},"statements":{"total":273,"covered":216,"skipped":0,"pct":79.12},"branches":{"total":550,"covered":381,"skipped":0,"pct":69.27}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/test/customQueries.js": {"lines":{"total":19,"covered":18,"skipped":0,"pct":94.74},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.67},"statements":{"total":20,"covered":19,"skipped":0,"pct":95},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} -,"/Users/balajisoundararajan/projects/appsmith/app/client/test/sagas.ts": {"lines":{"total":33,"covered":33,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":33,"covered":33,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/Users/balajisoundararajan/projects/appsmith/app/client/test/sagas.ts": {"lines":{"total":35,"covered":35,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":35,"covered":35,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/test/testCommon.ts": {"lines":{"total":49,"covered":49,"skipped":0,"pct":100},"functions":{"total":10,"covered":10,"skipped":0,"pct":100},"statements":{"total":60,"covered":60,"skipped":0,"pct":100},"branches":{"total":6,"covered":4,"skipped":0,"pct":66.67}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/test/testMockedWidgets.tsx": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":13,"covered":13,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/Users/balajisoundararajan/projects/appsmith/app/client/test/testUtils.tsx": {"lines":{"total":37,"covered":36,"skipped":0,"pct":97.3},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"statements":{"total":40,"covered":38,"skipped":0,"pct":95},"branches":{"total":21,"covered":18,"skipped":0,"pct":85.71}} From 92fdd6403e59a3fed280e665b7cb74bcd10575ed Mon Sep 17 00:00:00 2001 From: sbalaji1192 Date: Thu, 9 Sep 2021 14:33:09 +0530 Subject: [PATCH 11/13] Fix minor issue --- app/client/src/pages/Editor/FirstTimeUserOnboarding/Utils.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/client/src/pages/Editor/FirstTimeUserOnboarding/Utils.ts b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Utils.ts index d7eaeea3a644..98e83667b0b9 100644 --- a/app/client/src/pages/Editor/FirstTimeUserOnboarding/Utils.ts +++ b/app/client/src/pages/Editor/FirstTimeUserOnboarding/Utils.ts @@ -1,8 +1,11 @@ import { ReduxActionTypes } from "constants/ReduxActionConstants"; +import { APPLICATIONS_URL } from "constants/routes"; import { Dispatch } from "react"; import AnalyticsUtil from "utils/AnalyticsUtil"; +import history from "utils/history"; export const triggerWelcomeTour = (dispatch: Dispatch) => { AnalyticsUtil.logEvent("SIGNPOSTING_WELCOME_TOUR_CLICK"); + history.push(APPLICATIONS_URL); dispatch({ type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_ONBOARDING, payload: false, From 061a7de1466524479a1f7427769745640d01000a Mon Sep 17 00:00:00 2001 From: sbalaji1192 Date: Sun, 12 Sep 2021 23:10:48 +0530 Subject: [PATCH 12/13] i --- .../uiReducers/widgetSidebarReducer.ts | 34 ------------------- 1 file changed, 34 deletions(-) delete mode 100644 app/client/src/reducers/uiReducers/widgetSidebarReducer.ts diff --git a/app/client/src/reducers/uiReducers/widgetSidebarReducer.ts b/app/client/src/reducers/uiReducers/widgetSidebarReducer.ts deleted file mode 100644 index 7490d3a0c703..000000000000 --- a/app/client/src/reducers/uiReducers/widgetSidebarReducer.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { createReducer } from "utils/AppsmithUtils"; -import { WidgetCardProps } from "widgets/BaseWidget"; -import WidgetSidebarResponse from "mockResponses/WidgetSidebarResponse"; -import { - LoadWidgetSidebarPayload, - ReduxAction, - ReduxActionTypes, -} from "constants/ReduxActionConstants"; -import { EditorReduxState } from "./editorReducer"; - -export interface WidgetSidebarReduxState { - cards: WidgetCardProps[]; - forceOpen: boolean; -} - -const initialState: WidgetSidebarReduxState = { - cards: WidgetSidebarResponse, - forceOpen: false, -}; - -export const widgetSidebarReducer = createReducer(initialState, { - [ReduxActionTypes.FETCH_WIDGET_CARDS_SUCCESS]: ( - state: EditorReduxState, - action: ReduxAction, - ) => { - return { ...state, ...action.payload }; - }, - [ReduxActionTypes.SET_FORCE_WIDGET_PANEL_OPEN]: ( - state: EditorReduxState, - action: ReduxAction, - ) => { - return { ...state, forceOpen: action.payload }; - }, -}); From e50525ad1596b1b7b5542239a88a20f915703e2e Mon Sep 17 00:00:00 2001 From: sbalaji1192 Date: Mon, 13 Sep 2021 11:30:23 +0530 Subject: [PATCH 13/13] Fix CR comments --- .../GeneratePageForm/GeneratePageForm.tsx | 19 +++++++++++-------- app/client/src/sagas/ApplicationSagas.tsx | 2 +- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx b/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx index 0a862d9e9ea6..23b9cd0d4057 100644 --- a/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx +++ b/app/client/src/pages/Editor/GeneratePage/components/GeneratePageForm/GeneratePageForm.tsx @@ -59,6 +59,7 @@ import { Bold, Label, SelectWrapper } from "./styles"; import { GeneratePagePayload } from "./types"; import Icon from "components/ads/Icon"; import { ReduxActionTypes } from "constants/ReduxActionConstants"; +import { getIsFirstTimeUserOnboardingEnabled } from "selectors/onboardingSelectors"; // ---------- Styles ---------- @@ -243,6 +244,10 @@ function GeneratePageForm() { isFetchingBucketList, } = useS3BucketList(); + const isFirstTimeUserOnboardingEnabled = useSelector( + getIsFirstTimeUserOnboardingEnabled, + ); + const onSelectDataSource = useCallback( ( datasource: string | undefined, @@ -501,14 +506,12 @@ function GeneratePageForm() { AnalyticsUtil.logEvent("GEN_CRUD_PAGE_FORM_SUBMIT"); dispatch(generateTemplateToUpdatePage(payload)); - dispatch({ - type: ReduxActionTypes.SET_ENABLE_FIRST_TIME_USER_ONBOARDING, - payload: true, - }); - dispatch({ - type: ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, - payload: "", - }); + if (isFirstTimeUserOnboardingEnabled) { + dispatch({ + type: ReduxActionTypes.SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID, + payload: "", + }); + } }; const handleFormSubmit = () => { diff --git a/app/client/src/sagas/ApplicationSagas.tsx b/app/client/src/sagas/ApplicationSagas.tsx index 28b96daa7099..f3d7b112a45c 100644 --- a/app/client/src/sagas/ApplicationSagas.tsx +++ b/app/client/src/sagas/ApplicationSagas.tsx @@ -477,7 +477,7 @@ export function* createApplicationSaga( let pageURL; if ( isFirstTimeUserOnboardingEnabled && - FirstTimeUserOnboardingApplicationId == "" + FirstTimeUserOnboardingApplicationId === "" ) { yield put({ type: