From c29a7e171260fe888eabda0c8b0dcc84cb11b49a Mon Sep 17 00:00:00 2001 From: Rishabh Rathod Date: Mon, 11 Dec 2023 13:14:27 +0530 Subject: [PATCH] chore: CE changes for JSModule execution (#29489) ## Description - Add `isAnyJSAction` method to check for JSAction and JSModule in EE #### PR fixes following issue(s) #### Type of change - Chore ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] 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** - Enhanced the evaluation logic to include a broader range of JavaScript actions. - **Refactor** - Streamlined JavaScript action checks within the evaluation process for dynamic bound values. - **Documentation** - Updated function descriptions to reflect the new evaluation capabilities. --- app/client/src/ce/workers/Evaluation/evaluationUtils.ts | 8 ++++++++ app/client/src/workers/common/DataTreeEvaluator/index.ts | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/client/src/ce/workers/Evaluation/evaluationUtils.ts b/app/client/src/ce/workers/Evaluation/evaluationUtils.ts index d80551057c..258ab304e3 100644 --- a/app/client/src/ce/workers/Evaluation/evaluationUtils.ts +++ b/app/client/src/ce/workers/Evaluation/evaluationUtils.ts @@ -394,6 +394,14 @@ export function isJSAction(entity: DataTreeEntity): entity is JSActionEntity { entity.ENTITY_TYPE === ENTITY_TYPE_VALUE.JSACTION ); } +/** + * + * isAnyJSAction checks if the entity is a JSAction ( or a JSModuleInstance on EE ) + */ +export function isAnyJSAction(entity: DataTreeEntity) { + return isJSAction(entity); +} + export function isJSActionConfig( entity: DataTreeEntityConfig, ): entity is JSActionEntityConfig { diff --git a/app/client/src/workers/common/DataTreeEvaluator/index.ts b/app/client/src/workers/common/DataTreeEvaluator/index.ts index 062dc112db..af664eaf4b 100644 --- a/app/client/src/workers/common/DataTreeEvaluator/index.ts +++ b/app/client/src/workers/common/DataTreeEvaluator/index.ts @@ -59,6 +59,7 @@ import { DataTreeDiffEvent, resetValidationErrorsForEntityProperty, isAPathDynamicBindingPath, + isAnyJSAction, } from "@appsmith/workers/Evaluation/evaluationUtils"; import { difference, @@ -1395,7 +1396,7 @@ export default class DataTreeEvaluator { const { errors: evalErrors, result } = this.evaluateDynamicBoundValue( toBeSentForEval, data, - !!entity && isJSAction(entity), + !!entity && isAnyJSAction(entity), contextData, callBackData, );