diff --git a/app/client/cypress/integration/Smoke_TestSuite/ApiPaneTests/API_All_Verb_spec.js b/app/client/cypress/integration/Smoke_TestSuite/ApiPaneTests/API_All_Verb_spec.js index d755ed2d9e..a5a9c85f6f 100644 --- a/app/client/cypress/integration/Smoke_TestSuite/ApiPaneTests/API_All_Verb_spec.js +++ b/app/client/cypress/integration/Smoke_TestSuite/ApiPaneTests/API_All_Verb_spec.js @@ -110,6 +110,7 @@ describe("API Panel Test Functionality", function() { cy.CreateAPI(apiname); cy.log("Creation of API Action successful"); cy.enterDatasourceAndPath(testdata.baseUrl, testdata.methods); + cy.WaitAutoSave(); cy.RunAPI(); cy.ResponseStatusCheck(testdata.successStatusCode); cy.log("Response code check successful"); @@ -135,6 +136,7 @@ describe("API Panel Test Functionality", function() { cy.CreateAPI("ThirdAPI"); cy.log("Creation of API Action successful"); cy.enterDatasourceAndPath(testdata.baseUrl, testdata.queryAndValue); + cy.WaitAutoSave(); cy.RunAPI(); cy.ResponseStatusCheck("200 OK"); cy.log("Response code check successful"); @@ -153,6 +155,7 @@ describe("API Panel Test Functionality", function() { testdata.queryKey, testdata.queryValue, ); + cy.WaitAutoSave(); cy.RunAPI(); cy.ResponseStatusCheck("5000"); cy.log("Response code check successful"); diff --git a/app/client/cypress/integration/Smoke_TestSuite/ApiPaneTests/API_Edit_spec.js b/app/client/cypress/integration/Smoke_TestSuite/ApiPaneTests/API_Edit_spec.js index 9311ff7005..7629cee44e 100644 --- a/app/client/cypress/integration/Smoke_TestSuite/ApiPaneTests/API_Edit_spec.js +++ b/app/client/cypress/integration/Smoke_TestSuite/ApiPaneTests/API_Edit_spec.js @@ -9,7 +9,8 @@ describe("API Panel Test Functionality", function() { cy.CreateAPI("FirstAPI"); cy.log("Creation of FirstAPI Action successful"); cy.enterDatasourceAndPath(testdata.baseUrl, testdata.methods); - cy.SaveAndRunAPI(); + cy.WaitAutoSave(); + cy.RunAPI(); cy.ResponseStatusCheck(testdata.successStatusCode); cy.get(apiwidget.createApiOnSideBar) .first() diff --git a/app/client/src/actions/actionActions.ts b/app/client/src/actions/actionActions.ts index 531538fd58..0696e1d3d1 100644 --- a/app/client/src/actions/actionActions.ts +++ b/app/client/src/actions/actionActions.ts @@ -68,10 +68,10 @@ export const runAction = (id: string, paginationField?: PaginationField) => { }; export const updateAction = (payload: { id: string }) => { - return { + return batchAction({ type: ReduxActionTypes.UPDATE_ACTION_INIT, payload, - }; + }); }; export const updateActionSuccess = (payload: { data: Action }) => { diff --git a/app/client/src/sagas/ActionSagas.ts b/app/client/src/sagas/ActionSagas.ts index 0665c7e69e..e1c2231df8 100644 --- a/app/client/src/sagas/ActionSagas.ts +++ b/app/client/src/sagas/ActionSagas.ts @@ -10,7 +10,6 @@ import { select, takeEvery, takeLatest, - debounce, } from "redux-saga/effects"; import ActionAPI, { ActionCreateUpdateResponse, Property } from "api/ActionAPI"; import _ from "lodash"; @@ -481,7 +480,7 @@ export function* watchActionSagas() { fetchActionsForViewModeSaga, ), takeEvery(ReduxActionTypes.CREATE_ACTION_INIT, createActionSaga), - debounce(500, ReduxActionTypes.UPDATE_ACTION_INIT, updateActionSaga), + takeLatest(ReduxActionTypes.UPDATE_ACTION_INIT, updateActionSaga), takeLatest(ReduxActionTypes.DELETE_ACTION_INIT, deleteActionSaga), takeLatest(ReduxActionTypes.SAVE_API_NAME, saveApiNameSaga), takeLatest(ReduxActionTypes.MOVE_ACTION_INIT, moveActionSaga), diff --git a/app/client/src/sagas/BatchSagas.tsx b/app/client/src/sagas/BatchSagas.tsx index 8afcc5379a..effb2100e7 100644 --- a/app/client/src/sagas/BatchSagas.tsx +++ b/app/client/src/sagas/BatchSagas.tsx @@ -25,9 +25,13 @@ const BATCH_PRIORITY = { needsSaga: true, }, [ReduxActionTypes.UPDATE_ACTION_PROPERTY]: { - priority: 1, + priority: 0, needsSaga: false, }, + [ReduxActionTypes.UPDATE_ACTION_INIT]: { + priority: 1, + needsSaga: true, + }, }; const batches: ReduxAction[][] = [];