PromucFlow_constructor/app/client/cypress
Rishabh Rathod d6372d0b81
feat: JSObject variable as a state (JSObject variable mutation) (#19926)
Fixes #19653 
Fixes #14568 
Fixes #17199
Fixes #14989

In this PR, we introduce a new feature in JSObject where the `variables`
are now state and widgets are reactive to the change in the variable
value.
- It means that `JSObject.myVar1 = "Hello world"` would show `Hello
world` where ever a binding `{{JSObject.myVar1}}` is used.

Further changes
- JSObject run functionality, executes all the functions in async
evaluation.
    - `executeSyncJS` flow is removed 
-  `resolvedFunctions` state is moved to JSCollection class.
- unEval JSObject value i.e., currentJSCollectionState is moved to
JSCollection class.
- `evalTreeWithChanges` is introduced - A new flow to trigger evaluation
from the worker and send the updated dataTree to mainThread.
- This would open up a new possibility of features in evaluation
mentioned
[here](https://www.notion.so/appsmith/RFC-Dependent-Property-in-Widgets-f3b29ad652b549dd8c49189f48dbbc4b)
- Introduction of `updateDataTreeHandler` to accept new dataTree from
the worker.
## Type of change

- New feature (non-breaking change which adds functionality)

## How Has This Been Tested?

### Jest Test
- `Mutation.test.ts` 
- `JSVariableProxy.test.ts`
-  `removeProxy.test.ts`

### Cypress test
- Mutation with 
   - numbers
   - array
   - object
   - map
   - set

### Test Plan
- https://github.com/appsmithorg/TestSmith/issues/2186

### Issues raised during DP testing

- https://github.com/appsmithorg/appsmith/pull/19926#issuecomment-1453275688
- https://github.com/appsmithorg/appsmith/pull/19926#issuecomment-1478975487
- https://github.com/appsmithorg/appsmith/pull/19926#issuecomment-1482929425
- https://github.com/appsmithorg/appsmith/pull/19926#issuecomment-1486611858

Co-authored-by: Rimil Dey <rimildeyjsr@gmail.com>
Co-authored-by: Rimil Dey <rimil@appsmith.com>
Co-authored-by: arunvjn <32433245+arunvjn@users.noreply.github.com>
2023-04-07 13:11:36 +05:30
..
fixtures feat: JSObject variable as a state (JSObject variable mutation) (#19926) 2023-04-07 13:11:36 +05:30
integration feat: JSObject variable as a state (JSObject variable mutation) (#19926) 2023-04-07 13:11:36 +05:30
locators test: Cypress - Automated tests for Firestore datasource (#22057) 2023-04-04 21:26:57 +05:30
manual_TestSuite test: Disable the gsheet test (#22111) 2023-04-05 14:34:24 +05:30
patches test: Script updates for flaky fixes (#16143) 2022-08-24 19:53:41 +05:30
plugins Cypress version upgrade for timeout issue resolution (#15917) 2022-08-16 09:31:16 +05:30
snapshots/Smoke_TestSuite/ClientSideTests/VisualTests feat: editor header UI update (#19414) 2023-01-09 19:52:23 +05:30
support feat: Action selector (#21582) 2023-04-06 22:19:12 +05:30
.eslintrc.json chore: improve husky and lint-staged checks (#21679) 2023-03-23 17:02:18 +05:30
apply-patches.js ci: CI optimisation to reduce ci-test run time and modularise docker image building (#21219) 2023-03-10 12:51:32 +05:30
cypress-docker-compose.yml ci: Add lint check to the build step (#21442) 2023-03-20 22:50:44 +05:30
index.ts
init-mssql-dump-for-test.sql test: Cypress - Automated basic tests for MsSQL DS (#21446) 2023-03-16 23:58:32 +05:30
init-mysql-dump-for-test.sql
init-pg-dump-for-test.sql
package.json test: fixing cypress dependency issues (#21323) 2023-03-10 15:06:36 +05:30
setup-test-ci.sh ci: run fat container docker inside perf tests and update setup-perf-test workflow to use localhost for accessing dev environment (#20280) 2023-02-07 15:56:41 +05:30
setup-test.sh test: Cypress migration to TED GITEA (#18799) 2023-02-15 01:12:45 +05:30
test.sh test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
tsconfig.json ci: Add lint check to the build step (#21442) 2023-03-20 22:50:44 +05:30
xataadd.sh ci: Comment failing tests to PR (#18450) 2022-12-19 16:23:39 +05:30
xatadel.sh ci: Comment failing tests to PR (#18450) 2022-12-19 16:23:39 +05:30