PromucFlow_constructor/app/client/cypress/e2e/Regression/ClientSide
Rahul Barwal 6507f90e05
fix: Incorrect updation of selctedRowIndex when primary column is set. (#36393)
## Description
<ins> Problem statement </ins>
1. Table should have a primary column set.
2. The table should be filtered(via search or client side filters)
3. there should be a selectedRow in table
a. One way to ensure is add a text widget and bind it to table's
`selectedRowIndex` property.

If you now run a query that updates the data behind the table: the
`selectedRow` is updated to (seemingly) random row and selectedRowIndex
is updated as well

<ins> Rootcause </ins>
We have a mechanism of preserving `selectedRow` when data updates
happen.
Underlying logic gets the previous selected row and tries to find it in
the new data using the primary key.
* If it finds it, it updates the selectedRowIndex to the
`__original_index__` of the found row i.e. its position in the original
data before any filters were applied.

<ins> Solution </ins>
We update the selectedRowIndex to the index in the new filtered data.

<ins> How to test </ins>
1. Create a table with a primary key
2. Add a text widget and bind it to table's `selectedRowIndex` property
3. Filter the table
4. Click on a row to select it
5. Run a query that updates the data behind the table
6. Assert that the selected row is the same and that the
selectedRowIndex is updated to the new index


Fixes #36080
_or_  
Fixes `Issue URL`
> [!WARNING]  
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._

## Automation

/ok-to-test tags="@tag.Table, @tag.Binding, @tag.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/10953679202>
> Commit: 1a2d64467e453229940b67b29da1ce9d0e9ac24d
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=10953679202&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Table, @tag.Binding, @tag.Sanity`
> Spec:
> <hr>Fri, 20 Sep 2024 06:30:08 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **Improvements**
- Enhanced the efficiency of the TableWidgetV2 by streamlining the
method for retrieving the index of selected rows.
- Improved code readability and maintainability without altering the
overall functionality.

- **New Features**
- Introduced new test cases to validate filtering and searching
functionalities within the Table Widget V2.
- Added a JSON configuration for a data-driven table interface,
supporting sorting, filtering, and dynamic data binding.
- Introduced fixture data for testing, allowing for comprehensive
validation of table behavior under various conditions.
- Added a JavaScript object containing employee data to facilitate
filtering and display in the table.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-09-20 12:25:23 +05:30
..
ActionExecution chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
AdminSettings chore: Make edit launch buttons as links & add upgrade ramps for session timeout setting (#31862) 2024-03-21 15:37:13 +05:30
Anvil fix: disable anvil snapshots tests (#36422) 2024-09-19 14:22:21 +03:00
AppNavigation chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
AuditLogs chore: Make edit launch buttons as links & add upgrade ramps for session timeout setting (#31862) 2024-03-21 15:37:13 +05:30
Autocomplete chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
Binding chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
Branding test: Updating the locator for upgrade button on admin settings (#33872) 2024-05-31 21:07:28 +05:30
BugTests chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
CodeComment test: Cypress - added tag - @tag.AutoHeight, @tag.IDE (#29670) 2023-12-18 12:45:44 +05:30
CommunityTemplate fix: default port numbers for the datasources (#32901) 2024-04-30 13:15:11 +05:30
Debugger chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
DynamicHeight chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
Editor test: Cypress - separated exclude airgap cases and tagged them (#30588) 2024-01-24 16:47:58 +05:30
EmbedSettings test: Cypress | Added Dynamic checks for Flaky fix + Cypress upgrade (#30840) 2024-02-02 16:01:59 +05:30
ExplorerTests chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
Fork chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
FormLogin chore: change snapshot package (#35867) 2024-09-12 11:09:42 +03:00
FormNativeToRawTests fix: commands title changed to command for each datasource query editor forms (#32526) 2024-04-10 17:05:01 +05:30
Git chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
Github chore: Updating the login and signup page for cloud hosting as per new design (#32641) 2024-04-17 21:46:44 +05:30
Google chore: Updating the login and signup page for cloud hosting as per new design (#32641) 2024-04-17 21:46:44 +05:30
Homepage feat: Homepage experience v2 changes (#29282) 2024-01-25 19:11:48 +05:30
IDE test:Fix canvas context prop01 (#36391) 2024-09-19 11:39:44 +05:30
JSLibrary feat: enabled editor pane sidebar (#29882) 2024-01-12 20:13:58 +05:30
JSObject test: fix JsObjectMutation flaky test (#32936) 2024-04-26 18:19:22 +05:30
Linting fix: show linting errors on browser API added (#32732) 2024-04-18 18:49:15 +05:30
MobileResponsiveTests test: updated tests with aghelper table methods (#33737) 2024-05-31 14:01:06 +05:30
Onboarding chore: Remove unnecessary flag ab_show_templates_instead_of_blank_canvas_enabled (#33313) 2024-05-13 09:32:00 +05:30
OneClickBinding chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
OtherUIFeatures chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
PartialImportExport test: PartialExport_Widgets_spec - updated test validation logic (#33371) 2024-05-21 18:40:02 +05:30
PeekOverlay feat: enabled editor pane sidebar (#29882) 2024-01-12 20:13:58 +05:30
Performance feat: enabled editor pane sidebar (#29882) 2024-01-12 20:13:58 +05:30
ProductRamps chore: rm dr ce (#34765) 2024-07-31 08:24:51 +05:30
PropertyPane test: Cypress - added tags - @tag.JS, @tag.Perf, @tag.Settings, @tag.PropertyPane, @tag.Theme (#29682) 2023-12-18 17:18:23 +05:30
PublishedApps test: Cypress - added tags - @tag.JS, @tag.Perf, @tag.Settings, @tag.PropertyPane, @tag.Theme (#29682) 2023-12-18 17:18:23 +05:30
Refactoring feat: enabled editor pane sidebar (#29882) 2024-01-12 20:13:58 +05:30
SetProperty chore: Add evalTreeWithDiff to evalWorkerAction (#34403) 2024-06-27 12:08:53 +05:30
SettingsPane chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
Templates chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30
ThemingTests fix: Theming Selected new Font is reverted whenever Color is removed (#36119) 2024-09-06 12:46:51 +05:30
UserProfile feat: Homepage experience v2 changes (#29282) 2024-01-25 19:11:48 +05:30
VisualTests chore: change snapshot package (#35867) 2024-09-12 11:09:42 +03:00
Widgets fix: Incorrect updation of selctedRowIndex when primary column is set. (#36393) 2024-09-20 12:25:23 +05:30
Workspace chore: Added sanity and tags for blank tag specs (#36421) 2024-09-19 18:21:58 +05:30