PromucFlow_constructor/app/client/cypress/e2e/Regression/ClientSide/Widgets
Rahul Barwal d64361e225
fix: Refactor validation logic in TableWidgetV2 to improve clarity and correctness (#40679)
## Description
<ins>Problem</ins>

The table widget skipped validations for number columns when users typed
quickly and pressed Enter, accepting invalid values despite min/max
constraints.

<ins>Root cause</ins>

The validation logic had an early exit if the value was empty and the
column wasn't required. This incorrectly allowed empty values even when
min/max constraints were set. Due to async evaluations and timing
differences, a quick backspace followed by a new input and Enter led to
premature validation success.

<ins>Solution</ins>

This PR handles a refactor of the validation logic in `TableWidgetV2` to
improve clarity and correctness.
- Consolidates checks for required fields and regex validations.  
- Ensures column type validations accurately reflect constraints like
min/max.
- Prevents premature validation passes caused by async evaluation race
conditions.

Fixes #`Issue Number`  
_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"

### 🔍 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/15160290045>
> Commit: b3022119656954765a79b1e03c5af2a4338a89c4
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=15160290045&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Table`
> Spec:
> <hr>Wed, 21 May 2025 11:35:27 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

- **Bug Fixes**
- Enhanced validation for editable table cells to better enforce
required fields and regex patterns.
- Improved handling of empty values in required and non-required cells
for more accurate validation feedback.
- **Tests**
- Refactored and reorganized validation test suites for improved clarity
and maintainability without changing validation behavior.
- Updated end-to-end tests to improve timing and synchronization by
removing fixed waits and relying on automatic retries.
- Adjusted inline editing validation tests to reflect updated error
visibility expectations during editing.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-21 18:45:24 +05:30
..
Audio chore: AppIDE Folder Structure (#39165) 2025-02-17 10:34:23 +03:00
Button chore: update select component (#38954) 2025-02-06 13:10:25 +05:30
Camera chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Chart chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Checkbox feat: Add programmatic state change validation for Checkbox widget (#39980) 2025-03-31 16:44:20 +05:30
CodeScanner chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
CurrencyInput chore: update select component (#38954) 2025-02-06 13:10:25 +05:30
Custom test: fix cypress tests for custom widgets (#39905) 2025-03-28 18:06:05 +05:30
Datepicker test: datepicker3 test fix (#39019) 2025-02-14 08:38:01 +05:30
Divider chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
DocumentViewer chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Dropdown chore: Removing the feature flag for using Entity Item component from ADS templates (#39093) 2025-03-14 17:40:02 +05:30
Filepicker chore: update select component (#38954) 2025-02-06 13:10:25 +05:30
Form chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Iframe fix: Fix iframe and widget test case for clicking (#38039) 2024-12-09 19:00:43 +05:30
Image chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Input fix: stop tooltip from overflowing out of view in preview and deployed mode. (#39159) 2025-02-24 12:36:54 +01:00
JSONForm feat: Trigger autocomplete even outside bindings (#39446) 2025-03-07 13:35:16 +05:30
List chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
ListV2 fix: infinite render loop in List Widget when hiding/unhiding with selected item (#39262) 2025-02-17 11:43:24 +01:00
Map chore: added tag to exclude from map widget spec from airgap (#39645) 2025-03-10 14:55:02 +05:30
Modal chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Multiselect chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Others fix: map widget marker onClick duplication (#39517) 2025-03-05 15:25:52 +01:00
PhoneInput chore: update select component (#38954) 2025-02-06 13:10:25 +05:30
Radio test: new test cases framework functions and Action selector (#37566) 2024-12-16 16:41:54 +05:30
Rating chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
RTE chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Select chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Sliders test: new test cases framework functions and Action selector (#37566) 2024-12-16 16:41:54 +05:30
Statbox chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Switch chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Tab test: fix tabs skipped test CE (#37023) 2024-10-25 21:21:57 +05:30
TableV2 fix: Refactor validation logic in TableWidgetV2 to improve clarity and correctness (#40679) 2025-05-21 18:45:24 +05:30
Text chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
TreeSelect chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Video chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Container_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
ContainerTest2_spec.ts chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
deprecatedWidgets_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Disabled_Widgets_drag_validation_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Migration_Spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Tab_reset_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
WidgetCanvas_spec.js test: Cypress - @tag.Video, @tag.Container, @tag.Switch, @tag.Slider, @tag.Tab, @tag.Table, @tag.Select (#29698) 2023-12-18 17:05:27 +05:30
WidgetCopyPaste_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
WidgetGrouping_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Widgets_Labels_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
WidgetSelection_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30