PromucFlow_constructor/app/client/cypress/integration/Regression_TestSuite/ClientSideTests
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
..
ActionExecution feat: Action selector (#21582) 2023-04-06 22:19:12 +05:30
AdminSettings chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
AppNavigation fix: Combine app navigation tests where possible to reduce Cypress cloud costs (#21868) 2023-03-29 18:37:07 +05:30
AuditLogs chore: Add cypress.env.json to gitIgnore (#21413) 2023-03-16 10:14:32 +05:30
Autocomplete feat: show lint errors in async functions bound to sync fields (#21187) 2023-04-03 16:11:15 +05:30
Binding feat: Action selector (#21582) 2023-04-06 22:19:12 +05:30
Branding chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
BugTests feat: Action selector (#21582) 2023-04-06 22:19:12 +05:30
CodeComment chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
DynamicHeight feat: Action selector (#21582) 2023-04-06 22:19:12 +05:30
EmbedSettings feat: Improved App Navigation (#19312) 2023-03-23 17:11:58 +05:30
ExplorerTests test: test: Cypress - Automated tests for Elasticsearch datasource (#22101) 2023-04-06 09:37:04 +05:30
FormNativeToRawTests chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
Git fix: [Git] Avoid 404 when checking out a branch (#21894) 2023-04-04 10:29:00 +05:30
Github chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
Google chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
IDE feat: Action selector (#21582) 2023-04-06 22:19:12 +05:30
JSLibrary fix: JSPDF output API crash (#20544) 2023-02-10 13:13:22 +05:30
JSObject feat: JSObject variable as a state (JSObject variable mutation) (#19926) 2023-04-07 13:11:36 +05:30
Linting feat: show lint errors in async functions bound to sync fields (#21187) 2023-04-03 16:11:15 +05:30
Onboarding feat: Action selector (#21582) 2023-04-06 22:19:12 +05:30
OtherUIFeatures chore: Updating tests which will fail on app invites getting merged (#21949) 2023-03-31 17:07:09 +05:30
PeekOverlay chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
PropertyPane test: Cypress - Updating to TED Random api (#21615) 2023-03-22 01:22:39 +05:30
Refactoring test: Cypress - Automated basic tests for MsSQL DS (#21446) 2023-03-16 23:58:32 +05:30
SettingsPane test: Flaky test fix (#21120) 2023-03-05 08:52:42 +05:30
Templates chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
ThemingTests feat: Improved App Navigation (#19312) 2023-03-23 17:11:58 +05:30
VisualTests chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
Widgets fix: add select options field to new row (#22003) 2023-04-06 23:58:24 +05:30
Workspace fix: Adding a permission check for creating new datasource on generate page (#22085) 2023-04-05 17:22:43 +05:30