PromucFlow_constructor/app/client
Rahul Barwal 4159380ed5
fix: email validation in input widget v2 (#40708)
## Description
<ins>Problem</ins>

Inbuilt email validation was not functioning correctly for all valid
email formats (e.g. `rahul+3@appsmith.com`), leading to incorrect
validation failures in the Input widget.

<ins>Root cause</ins>

Outdated or overly restrictive email validation regex in
`InputWidgetV2`.

<ins>Solution</ins>

This PR handles updating the email validation regex in `InputWidgetV2`
to support modern and valid email formats.
It also refactors and enhances the validation test suite to improve
coverage across input types (NUMBER, TEXT, EMAIL, PASSWORD) and
validation scenarios (required, custom, and regex), improving accuracy,
readability, and maintainability.


Fixes #`Issue Number`  
_or_  
Fixes https://github.com/appsmithorg/appsmith-ee/issues/7550
> [!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.Input"

### 🔍 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/15133467577>
> Commit: 35d061427857620e3c3a4a2b6e5a7d1b532652aa
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=15133467577&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Input`
> Spec:
> <hr>Tue, 20 May 2025 09:29:25 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**
- Improved email validation to support a wider range of valid email
formats.

- **Tests**
- Expanded and reorganized input validation tests to cover more input
types and edge cases, ensuring more robust validation across NUMBER,
TEXT, EMAIL, and PASSWORD fields.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-20 15:41:27 +05:30
..
.husky chore: adds depandabot.yml (#40521) 2025-05-01 05:44:04 +00:00
.yarn
config fix: sourcemaps (#39301) 2025-02-16 20:05:50 +03:00
cypress ci: Fixing partial export spec (#40611) 2025-05-08 17:22:05 +05:30
docker/templates chore: add grafana faro sdk (CE) (#38301) 2024-12-26 10:37:41 +05:30
generators
packages chore: Updating the dropdown width for the run behavior settings of JS object (#40691) 2025-05-19 19:33:27 +05:30
public chore: add maximum-scale to avoid zoom on inputs in iOS (#40171) 2025-04-08 19:16:31 +05:30
scripts chore: Eject CRA (#39264) 2025-02-14 14:24:41 +05:30
src fix: email validation in input widget v2 (#40708) 2025-05-20 15:41:27 +05:30
test chore: added automatic option to run behaviour behind feature flag (#40608) 2025-05-16 16:29:31 +05:30
typings
.babelrc chore: Eject CRA (#39264) 2025-02-14 14:24:41 +05:30
.dockerignore
.editorconfig
.eslintrc.base.json
.eslintrc.js
.fork-ts-checkerrc
.gitignore
.lintstagedrc.json chore: update import of AppState to DefaultReduxState (#40494) 2025-05-01 15:53:37 +05:30
.nvmrc
.prettierignore
.prettierrc
.sentryclirc
.yarnrc.yml
build.sh fix: sourcemaps (#39301) 2025-02-16 20:05:50 +03:00
cypress_ci_custom.config.ts
cypress_ci_hosted.config.ts
cypress_ci.config.ts
cypress-add-tags.js
cypress.config.ts
download-assets.js
jest.config.js chore: add grafana faro sdk (CE) (#38301) 2024-12-26 10:37:41 +05:30
knip.json chore: Eject CRA (#39264) 2025-02-14 14:24:41 +05:30
package.json chore: update import of AppState to DefaultReduxState (#40494) 2025-05-01 15:53:37 +05:30
README.md
README.old.md
start-caddy.sh
start-https.sh chore: convert consolidated api etag to a weak one (#38939) 2025-01-31 16:35:20 +05:30
tailwind.config.js
tsconfig.json
tsconfig.path.json
vercel.json
yarn.lock chore: downgrade tinymce from 7.7.1 to 6.8.3 in package.json (#40465) 2025-04-29 10:24:01 +05:30

Appsmith Client

This project was bootstrapped with Create React App.

For details on setting up your development machine, please refer to the Setup Guide