-
Notifications
You must be signed in to change notification settings - Fork 274
feat: simulated native TextInput state #1653
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a great idea! I like the implementation as well but I have one concern, when using debug or snapshots, native state would not be visible right? I don't know how it could be visible unless the element props we directly updated. Have you considered this solution?
@pierrezimmermannbam the native state by it's nature it's not touching props (like |
Oh I see so you don't want to modify props directly because they're not modified in reality, that's a fair point. In that case the only way to make them visible would be to implement a custom snapshot matcher, which could be interesting |
….2 (#6076) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@testing-library/react-native](https://callstack.github.io/react-native-testing-library) ([source](https://redirect.github.com/callstack/react-native-testing-library)) | [`^12.4.5` -> `^12.7.2`](https://renovatebot.com/diffs/npm/@testing-library%2freact-native/12.4.5/12.7.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>callstack/react-native-testing-library (@​testing-library/react-native)</summary> ### [`v12.7.2`](https://redirect.github.com/callstack/react-native-testing-library/releases/tag/v12.7.2): (2024-09-12) [Compare Source](https://redirect.github.com/callstack/react-native-testing-library/compare/v12.7.1...v12.7.2) #### What's Changed ##### Features - feat: simulated native TextInput state by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1653](https://redirect.github.com/callstack/react-native-testing-library/pull/1653) - feat: support Switch checked state by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1657](https://redirect.github.com/callstack/react-native-testing-library/pull/1657) - feat: support `Image` with `alt` prop as label by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1665](https://redirect.github.com/callstack/react-native-testing-library/pull/1665) ##### Bug Fixes - fix: use native state across the queries and matchers by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1667](https://redirect.github.com/callstack/react-native-testing-library/pull/1667) ##### Other - refactor: accessibility handling by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1658](https://redirect.github.com/callstack/react-native-testing-library/pull/1658) - refactor: scroll view native state by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1661](https://redirect.github.com/callstack/react-native-testing-library/pull/1661) - refactor: simplify native state management by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1662](https://redirect.github.com/callstack/react-native-testing-library/pull/1662) - chore(deps-dev): bump [@​callstack/eslint-config](https://redirect.github.com/callstack/eslint-config) from 14.2.0 to 15.0.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/callstack/react-native-testing-library/pull/1650](https://redirect.github.com/callstack/react-native-testing-library/pull/1650) #### New Contributors - [@​amandeepmittal](https://redirect.github.com/amandeepmittal) made their first contribution in [https://github.com/callstack/react-native-testing-library/pull/1660](https://redirect.github.com/callstack/react-native-testing-library/pull/1660) **Full Changelog**: callstack/react-native-testing-library@v12.6.1...v12.7.1 ### [`v12.7.1`](https://redirect.github.com/callstack/react-native-testing-library/releases/tag/v12.7.1): (2024-09-12) [Compare Source](https://redirect.github.com/callstack/react-native-testing-library/compare/v12.7.0...v12.7.1) #### What's Changed ##### Features - feat: simulated native TextInput state by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1653](https://redirect.github.com/callstack/react-native-testing-library/pull/1653) - feat: support Switch checked state by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1657](https://redirect.github.com/callstack/react-native-testing-library/pull/1657) - feat: support `Image` with `alt` prop as label by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1665](https://redirect.github.com/callstack/react-native-testing-library/pull/1665) ##### Other - refactor: accessibility handling by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1658](https://redirect.github.com/callstack/react-native-testing-library/pull/1658) - refactor: scroll view native state by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1661](https://redirect.github.com/callstack/react-native-testing-library/pull/1661) - refactor: simplify native state management by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1662](https://redirect.github.com/callstack/react-native-testing-library/pull/1662) - chore(deps-dev): bump [@​callstack/eslint-config](https://redirect.github.com/callstack/eslint-config) from 14.2.0 to 15.0.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/callstack/react-native-testing-library/pull/1650](https://redirect.github.com/callstack/react-native-testing-library/pull/1650) #### New Contributors - [@​amandeepmittal](https://redirect.github.com/amandeepmittal) made their first contribution in [https://github.com/callstack/react-native-testing-library/pull/1660](https://redirect.github.com/callstack/react-native-testing-library/pull/1660) **Full Changelog**: callstack/react-native-testing-library@v12.6.1...v12.7.1 ### [`v12.7.0`](https://redirect.github.com/callstack/react-native-testing-library/releases/tag/v12.7.0): (2024-09-12) [Compare Source](https://redirect.github.com/callstack/react-native-testing-library/compare/v12.6.1...v12.7.0) #### What's Changed ##### Features - feat: simulated native TextInput state by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1653](https://redirect.github.com/callstack/react-native-testing-library/pull/1653) - feat: support Switch checked state by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1657](https://redirect.github.com/callstack/react-native-testing-library/pull/1657) - feat: support `Image` with `alt` prop as label by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1665](https://redirect.github.com/callstack/react-native-testing-library/pull/1665) ##### Other - refactor: accessibility handling by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1658](https://redirect.github.com/callstack/react-native-testing-library/pull/1658) - refactor: scroll view native state by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1661](https://redirect.github.com/callstack/react-native-testing-library/pull/1661) - refactor: simplify native state management by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1662](https://redirect.github.com/callstack/react-native-testing-library/pull/1662) - chore(deps-dev): bump [@​callstack/eslint-config](https://redirect.github.com/callstack/eslint-config) from 14.2.0 to 15.0.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/callstack/react-native-testing-library/pull/1650](https://redirect.github.com/callstack/react-native-testing-library/pull/1650) #### New Contributors - [@​amandeepmittal](https://redirect.github.com/amandeepmittal) made their first contribution in [https://github.com/callstack/react-native-testing-library/pull/1660](https://redirect.github.com/callstack/react-native-testing-library/pull/1660) **Full Changelog**: callstack/react-native-testing-library@v12.6.1...v12.7.0 ### [`v12.6.1`](https://redirect.github.com/callstack/react-native-testing-library/releases/tag/v12.6.1): (2024-08-28) [Compare Source](https://redirect.github.com/callstack/react-native-testing-library/compare/v12.6.0...v12.6.1) #### What's Changed - refactor: remove real timers warning in User Event by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1654](https://redirect.github.com/callstack/react-native-testing-library/pull/1654) **Full Changelog**: callstack/react-native-testing-library@v12.6.0...v12.6.1 ### [`v12.6.0`](https://redirect.github.com/callstack/react-native-testing-library/releases/tag/v12.6.0): (2024-08-16) [Compare Source](https://redirect.github.com/callstack/react-native-testing-library/compare/v12.5.3...v12.6.0) ##### What's changed ##### Features - update `type()` events to match RN 0.75 (remove 'textInput' event) ([#​1645](https://redirect.github.com/callstack/react-native-testing-library/issues/1645)) ([f0df299](https://redirect.github.com/callstack/react-native-testing-library/commit/f0df2994df90357060ac0cfa8e8ef049b4dd9a9c)) - User Event `paste()` interaction ([#​1646](https://redirect.github.com/callstack/react-native-testing-library/issues/1646)) ([38bceed](https://redirect.github.com/callstack/react-native-testing-library/commit/38bceed25b8f84ccaa6c0938f7ab21b112c209e2)) ### [`v12.5.3`](https://redirect.github.com/callstack/react-native-testing-library/releases/tag/v12.5.3): (2024-08-09) [Compare Source](https://redirect.github.com/callstack/react-native-testing-library/compare/v12.5.2...v12.5.3) #### What's Changed - fix: Respect maxLength prop in type() function by [@​joshuayoes](https://redirect.github.com/joshuayoes) in [https://github.com/callstack/react-native-testing-library/pull/1641](https://redirect.github.com/callstack/react-native-testing-library/pull/1641) - chore: remove broken `experiments-rtl` app by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1642](https://redirect.github.com/callstack/react-native-testing-library/pull/1642) #### New Contributors - [@​joshuayoes](https://redirect.github.com/joshuayoes) made their first contribution in [https://github.com/callstack/react-native-testing-library/pull/1641](https://redirect.github.com/callstack/react-native-testing-library/pull/1641) **Full Changelog**: callstack/react-native-testing-library@v12.5.2...v12.5.3 ### [`v12.5.2`](https://redirect.github.com/callstack/react-native-testing-library/releases/tag/v12.5.2) [Compare Source](https://redirect.github.com/callstack/react-native-testing-library/compare/v12.5.1...v12.5.2) ##### Bug Fixes - toBeVisible edge case for style values ([#​1640](https://redirect.github.com/callstack/react-native-testing-library/issues/1640)) ([be31579](https://redirect.github.com/callstack/react-native-testing-library/commit/be3157999108f08babc39db25b0721c64c4fbb24)) ### [`v12.5.1`](https://redirect.github.com/callstack/react-native-testing-library/releases/tag/v12.5.1) [Compare Source](https://redirect.github.com/callstack/react-native-testing-library/compare/v12.5.0...v12.5.1) ##### Bug Fixes - immediate setState in useEffect for unstable_validateStringsRenderedWithinText ([#​1612](https://redirect.github.com/callstack/react-native-testing-library/issues/1612)) ([76de7d2](https://redirect.github.com/callstack/react-native-testing-library/commit/76de7d2b2e814ab2c9d6b30331cc138f2659bc7e)) ### [`v12.5.0`](https://redirect.github.com/callstack/react-native-testing-library/releases/tag/v12.5.0) [Compare Source](https://redirect.github.com/callstack/react-native-testing-library/compare/v12.4.5...v12.5.0) ##### Features - `*ByRole` TypeScript hints by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1596](https://redirect.github.com/callstack/react-native-testing-library/pull/1596) ##### Bug Fixes - User Event: expose common base synthetic event methods by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1589](https://redirect.github.com/callstack/react-native-testing-library/pull/1589) - proper `act` usage by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1592](https://redirect.github.com/callstack/react-native-testing-library/pull/1592) - pass through Test Renderer options by [@​mdjastrzebski](https://redirect.github.com/mdjastrzebski) in [https://github.com/callstack/react-native-testing-library/pull/1594](https://redirect.github.com/callstack/react-native-testing-library/pull/1594) #### New Contributors - [@​iaurg](https://redirect.github.com/iaurg) made their first contribution in [https://github.com/callstack/react-native-testing-library/pull/1591](https://redirect.github.com/callstack/react-native-testing-library/pull/1591) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone America/Los_Angeles, Automerge - "after 5pm,every weekend" in timezone America/Los_Angeles. 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/valora-inc/wallet). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsibnBtIiwicmVub3ZhdGUiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Summary
This PR introduces the concept of simulated native view state. The PR supports tracking the value of host
TextInput
elements.This PR supports setting native state value through
fireEvent.changeText
and User Eventtype()
,clear()
andpaste()
methods.When
TextInput
is managed throughvalue
prop, that value takes precedence over simulated native value.Test plan
Add