From e06e2f3244d4ada5eefc1931f3e86ba93bc3d54d Mon Sep 17 00:00:00 2001 From: Ankita Kinger Date: Fri, 19 Jan 2024 16:01:22 +0530 Subject: [PATCH] fix: Adding a new redux action to clear debugger errors on environment switch (#30460) ## Description Adding a new redux action to clear debugger errors on environment switch #### PR fixes following issue(s) Fixes [#30461](https://github.com/appsmithorg/appsmith/issues/30461) #### Type of change - Bug fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [x] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress ## Checklist: #### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag #### QA activity: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed ## Summary by CodeRabbit - **New Features** - Implemented the ability to switch environments seamlessly within the app. - **Bug Fixes** - Fixed an issue ensuring the debugger state resets correctly after changing environments. --- app/client/src/ce/constants/ReduxActionConstants.tsx | 1 + app/client/src/reducers/uiReducers/debuggerReducer.ts | 5 +++++ app/client/src/sagas/ActionExecution/PluginActionSaga.ts | 1 + 3 files changed, 7 insertions(+) diff --git a/app/client/src/ce/constants/ReduxActionConstants.tsx b/app/client/src/ce/constants/ReduxActionConstants.tsx index cdfc100c77..fc02ab7163 100644 --- a/app/client/src/ce/constants/ReduxActionConstants.tsx +++ b/app/client/src/ce/constants/ReduxActionConstants.tsx @@ -926,6 +926,7 @@ const ActionTypes = { UPDATE_THEME_SETTING: "UPDATE_THEME_SETTING", SET_IDE_EDITOR_VIEW_MODE: "SET_IDE_EDITOR_VIEW_MODE", SET_IDE_EDITOR_PAGES_ACTIVE_STATUS: "SET_IDE_EDITOR_PAGES_ACTIVE_STATUS", + SWITCH_ENVIRONMENT_SUCCESS: "SWITCH_ENVIRONMENT_SUCCESS", }; export const ReduxActionTypes = { diff --git a/app/client/src/reducers/uiReducers/debuggerReducer.ts b/app/client/src/reducers/uiReducers/debuggerReducer.ts index de9c9d504c..9ac2c506ec 100644 --- a/app/client/src/reducers/uiReducers/debuggerReducer.ts +++ b/app/client/src/reducers/uiReducers/debuggerReducer.ts @@ -5,6 +5,7 @@ import { ReduxActionTypes } from "@appsmith/constants/ReduxActionConstants"; import { omit, isUndefined, isEmpty } from "lodash"; import equal from "fast-deep-equal"; import { ActionExecutionResizerHeight } from "pages/Editor/APIEditor/constants"; +import { klona } from "klona"; export const DefaultDebuggerContext = { scrollPosition: 0, @@ -159,6 +160,10 @@ const debuggerReducer = createImmerReducer(initialState, { ) => { state.context = action.context; }, + // Resetting debugger state after env switch + [ReduxActionTypes.SWITCH_ENVIRONMENT_SUCCESS]: () => { + return klona(initialState); + }, }); export interface DebuggerReduxState { diff --git a/app/client/src/sagas/ActionExecution/PluginActionSaga.ts b/app/client/src/sagas/ActionExecution/PluginActionSaga.ts index 7b3528a55a..f836ff51e4 100644 --- a/app/client/src/sagas/ActionExecution/PluginActionSaga.ts +++ b/app/client/src/sagas/ActionExecution/PluginActionSaga.ts @@ -1617,6 +1617,7 @@ function* softRefreshActionsSaga() { toast.show(createMessage(SWITCH_ENVIRONMENT_SUCCESS, currentEnvName), { kind: "success", }); + yield put({ type: ReduxActionTypes.SWITCH_ENVIRONMENT_SUCCESS }); } function* handleUpdateActionData(