@testing-library/react-native 12.4.5 → 12.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/README.md +10 -7
  2. package/build/act.js.map +1 -1
  3. package/build/cleanup.js.map +1 -1
  4. package/build/config.js.map +1 -1
  5. package/build/fire-event.d.ts +3 -3
  6. package/build/fire-event.js +1 -3
  7. package/build/fire-event.js.map +1 -1
  8. package/build/flush-micro-tasks.js.map +1 -1
  9. package/build/helpers/{accessiblity.d.ts → accessibility.d.ts} +1 -1
  10. package/build/helpers/{accessiblity.js → accessibility.js} +3 -3
  11. package/build/helpers/accessibility.js.map +1 -0
  12. package/build/helpers/component-tree.js.map +1 -1
  13. package/build/helpers/debug-deep.js.map +1 -1
  14. package/build/helpers/debug-shallow.js.map +1 -1
  15. package/build/helpers/deprecation.js.map +1 -1
  16. package/build/helpers/errors.js.map +1 -1
  17. package/build/helpers/find-all.js +2 -2
  18. package/build/helpers/find-all.js.map +1 -1
  19. package/build/helpers/format-default.js.map +1 -1
  20. package/build/helpers/format.js +1 -1
  21. package/build/helpers/format.js.map +1 -1
  22. package/build/helpers/host-component-names.js +1 -1
  23. package/build/helpers/host-component-names.js.map +1 -1
  24. package/build/helpers/matchers/match-accessibility-state.js +3 -3
  25. package/build/helpers/matchers/match-accessibility-state.js.map +1 -1
  26. package/build/helpers/matchers/match-accessibility-value.js +2 -2
  27. package/build/helpers/matchers/match-accessibility-value.js.map +1 -1
  28. package/build/helpers/matchers/match-array-prop.js.map +1 -1
  29. package/build/helpers/matchers/match-label-text.js +3 -3
  30. package/build/helpers/matchers/match-label-text.js.map +1 -1
  31. package/build/helpers/matchers/match-object-prop.js.map +1 -1
  32. package/build/helpers/matchers/match-string-prop.js.map +1 -1
  33. package/build/helpers/matchers/match-text-content.js.map +1 -1
  34. package/build/helpers/object.js.map +1 -1
  35. package/build/helpers/pointer-events.js.map +1 -1
  36. package/build/helpers/query-name.js.map +1 -1
  37. package/build/helpers/string-validation.js.map +1 -1
  38. package/build/helpers/text-content.js.map +1 -1
  39. package/build/helpers/text-input.js.map +1 -1
  40. package/build/helpers/timers.js.map +1 -1
  41. package/build/helpers/wrap-async.js +4 -3
  42. package/build/helpers/wrap-async.js.map +1 -1
  43. package/build/index.flow.js +3 -0
  44. package/build/index.js.map +1 -1
  45. package/build/matchers/extend-expect.js.map +1 -1
  46. package/build/matchers/index.js.map +1 -1
  47. package/build/matchers/to-be-busy.js +2 -2
  48. package/build/matchers/to-be-busy.js.map +1 -1
  49. package/build/matchers/to-be-checked.js +4 -4
  50. package/build/matchers/to-be-checked.js.map +1 -1
  51. package/build/matchers/to-be-collapsed.js +2 -2
  52. package/build/matchers/to-be-collapsed.js.map +1 -1
  53. package/build/matchers/to-be-disabled.js.map +1 -1
  54. package/build/matchers/to-be-empty-element.js.map +1 -1
  55. package/build/matchers/to-be-expanded.js +2 -2
  56. package/build/matchers/to-be-expanded.js.map +1 -1
  57. package/build/matchers/to-be-on-the-screen.js.map +1 -1
  58. package/build/matchers/to-be-partially-checked.js +4 -4
  59. package/build/matchers/to-be-partially-checked.js.map +1 -1
  60. package/build/matchers/to-be-selected.js +2 -2
  61. package/build/matchers/to-be-selected.js.map +1 -1
  62. package/build/matchers/to-be-visible.js +2 -2
  63. package/build/matchers/to-be-visible.js.map +1 -1
  64. package/build/matchers/to-contain-element.js.map +1 -1
  65. package/build/matchers/to-have-accessibility-value.js +2 -2
  66. package/build/matchers/to-have-accessibility-value.js.map +1 -1
  67. package/build/matchers/to-have-accessible-name.js +2 -2
  68. package/build/matchers/to-have-accessible-name.js.map +1 -1
  69. package/build/matchers/to-have-display-value.js.map +1 -1
  70. package/build/matchers/to-have-prop.js.map +1 -1
  71. package/build/matchers/to-have-style.js.map +1 -1
  72. package/build/matchers/to-have-text-content.js.map +1 -1
  73. package/build/matchers/types.js.map +1 -1
  74. package/build/matchers/utils.js +1 -1
  75. package/build/matchers/utils.js.map +1 -1
  76. package/build/matches.js.map +1 -1
  77. package/build/pure.d.ts +1 -1
  78. package/build/pure.js +3 -3
  79. package/build/pure.js.map +1 -1
  80. package/build/queries/accessibility-state.js +2 -2
  81. package/build/queries/accessibility-state.js.map +1 -1
  82. package/build/queries/accessibility-value.js +2 -2
  83. package/build/queries/accessibility-value.js.map +1 -1
  84. package/build/queries/display-value.js.map +1 -1
  85. package/build/queries/hint-text.js.map +1 -1
  86. package/build/queries/label-text.js.map +1 -1
  87. package/build/queries/make-queries.js.map +1 -1
  88. package/build/queries/options.js.map +1 -1
  89. package/build/queries/placeholder-text.js.map +1 -1
  90. package/build/queries/role.d.ts +10 -8
  91. package/build/queries/role.js +4 -4
  92. package/build/queries/role.js.map +1 -1
  93. package/build/queries/test-id.js.map +1 -1
  94. package/build/queries/text.js.map +1 -1
  95. package/build/queries/unsafe-props.js.map +1 -1
  96. package/build/queries/unsafe-type.js.map +1 -1
  97. package/build/react-versions.js +1 -1
  98. package/build/react-versions.js.map +1 -1
  99. package/build/render-act.d.ts +1 -1
  100. package/build/render-act.js +4 -2
  101. package/build/render-act.js.map +1 -1
  102. package/build/render-hook.js.map +1 -1
  103. package/build/render.d.ts +14 -50
  104. package/build/render.js +16 -18
  105. package/build/render.js.map +1 -1
  106. package/build/screen.js.map +1 -1
  107. package/build/shallow.js +1 -1
  108. package/build/shallow.js.map +1 -1
  109. package/build/test-utils/events.js.map +1 -1
  110. package/build/test-utils/index.js.map +1 -1
  111. package/build/types.d.ts +1 -0
  112. package/build/types.js +2 -0
  113. package/build/types.js.map +1 -0
  114. package/build/user-event/clear.js.map +1 -1
  115. package/build/user-event/event-builder/base.d.ts +3 -0
  116. package/build/user-event/event-builder/base.js +22 -0
  117. package/build/user-event/event-builder/base.js.map +1 -0
  118. package/build/user-event/event-builder/common.d.ts +67 -10
  119. package/build/user-event/event-builder/common.js +7 -9
  120. package/build/user-event/event-builder/common.js.map +1 -1
  121. package/build/user-event/event-builder/index.d.ts +179 -26
  122. package/build/user-event/event-builder/index.js.map +1 -1
  123. package/build/user-event/event-builder/scroll-view.d.ts +14 -2
  124. package/build/user-event/event-builder/scroll-view.js +3 -3
  125. package/build/user-event/event-builder/scroll-view.js.map +1 -1
  126. package/build/user-event/event-builder/text-input.d.ts +98 -14
  127. package/build/user-event/event-builder/text-input.js +15 -21
  128. package/build/user-event/event-builder/text-input.js.map +1 -1
  129. package/build/user-event/index.js.map +1 -1
  130. package/build/user-event/press/constants.js.map +1 -1
  131. package/build/user-event/press/index.js.map +1 -1
  132. package/build/user-event/press/press.js +5 -1
  133. package/build/user-event/press/press.js.map +1 -1
  134. package/build/user-event/scroll/index.js.map +1 -1
  135. package/build/user-event/scroll/scroll-to.js.map +1 -1
  136. package/build/user-event/scroll/state.js.map +1 -1
  137. package/build/user-event/scroll/utils.js.map +1 -1
  138. package/build/user-event/setup/index.js.map +1 -1
  139. package/build/user-event/setup/setup.js.map +1 -1
  140. package/build/user-event/type/index.js.map +1 -1
  141. package/build/user-event/type/parse-keys.js.map +1 -1
  142. package/build/user-event/type/type.js.map +1 -1
  143. package/build/user-event/utils/content-size.js.map +1 -1
  144. package/build/user-event/utils/dispatch-event.js.map +1 -1
  145. package/build/user-event/utils/index.js.map +1 -1
  146. package/build/user-event/utils/text-range.js.map +1 -1
  147. package/build/user-event/utils/wait.js.map +1 -1
  148. package/build/user-event/utils/warn-about-real-timers.js.map +1 -1
  149. package/build/wait-for-element-to-be-removed.js.map +1 -1
  150. package/build/wait-for.js.map +1 -1
  151. package/build/within.d.ts +6 -24
  152. package/build/within.js.map +1 -1
  153. package/package.json +12 -12
  154. package/typings/index.flow.js +3 -0
  155. package/build/helpers/accessiblity.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@testing-library/react-native",
3
- "version": "12.4.5",
3
+ "version": "12.5.0",
4
4
  "description": "Simple and complete React Native testing utilities that encourage good testing practices.",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -69,14 +69,14 @@
69
69
  }
70
70
  },
71
71
  "devDependencies": {
72
- "@babel/cli": "^7.23.9",
73
- "@babel/core": "^7.24.0",
74
- "@babel/plugin-transform-flow-strip-types": "^7.23.3",
75
- "@babel/preset-env": "^7.24.0",
76
- "@babel/preset-flow": "^7.24.0",
77
- "@babel/preset-react": "^7.23.3",
78
- "@babel/preset-typescript": "^7.23.3",
79
- "@callstack/eslint-config": "^14.1.0",
72
+ "@babel/cli": "^7.24.5",
73
+ "@babel/core": "^7.24.5",
74
+ "@babel/plugin-transform-flow-strip-types": "^7.24.1",
75
+ "@babel/preset-env": "^7.24.5",
76
+ "@babel/preset-flow": "^7.24.1",
77
+ "@babel/preset-react": "^7.24.1",
78
+ "@babel/preset-typescript": "^7.24.1",
79
+ "@callstack/eslint-config": "^14.1.1",
80
80
  "@release-it/conventional-changelog": "^8.0.1",
81
81
  "@relmify/jest-serializer-strip-ansi": "^1.0.2",
82
82
  "@types/jest": "^29.5.12",
@@ -91,11 +91,11 @@
91
91
  "jest": "^29.7.0",
92
92
  "prettier": "^2.8.8",
93
93
  "react": "18.2.0",
94
- "react-native": "0.73.6",
94
+ "react-native": "0.74.0",
95
95
  "react-test-renderer": "18.2.0",
96
- "release-it": "^17.1.1",
96
+ "release-it": "^17.2.1",
97
97
  "strip-ansi": "^6.0.1",
98
- "typescript": "^5.4.2"
98
+ "typescript": "^5.4.5"
99
99
  },
100
100
  "publishConfig": {
101
101
  "registry": "https://registry.npmjs.org"
@@ -348,6 +348,9 @@ declare module '@testing-library/react-native' {
348
348
  wrapper?: React.ComponentType<any>;
349
349
  createNodeMock?: (element: React.Element<any>) => any;
350
350
  unstable_validateStringsRenderedWithinText?: boolean;
351
+ unstable_isConcurrent?: boolean;
352
+ unstable_strictMode?: boolean;
353
+ unstable_concurrentUpdatesByDefault?: boolean;
351
354
  }
352
355
 
353
356
  declare export var render: (
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessiblity.js","names":["_reactNative","require","_componentTree","_hostComponentNames","_textContent","accessibilityStateKeys","exports","accessiblityValueKeys","isHiddenFromAccessibility","element","cache","current","isCurrentSubtreeInaccessible","get","undefined","isSubtreeInaccessible","set","parent","isInaccessible","props","accessibilityElementsHidden","importantForAccessibility","flatStyle","StyleSheet","flatten","style","display","hostSiblings","getHostSiblings","some","sibling","getAccessibilityViewIsModal","isAccessibilityElement","accessible","hostComponentNames","getHostComponentNames","type","text","textInput","switch","getAccessibilityRole","explicitRole","role","accessibilityRole","isHostText","accessibilityViewIsModal","getAccessibilityLabel","accessibilityLabel","getAccessibilityLabelledBy","accessibilityLabelledBy","getAccessibilityState","accessibilityState","ariaBusy","ariaChecked","ariaDisabled","ariaExpanded","ariaSelected","hasAnyAccessibilityStateProps","busy","checked","disabled","expanded","selected","getAccessibilityCheckedState","getAccessibilityValue","accessibilityValue","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","hasAnyAccessibilityValueProps","max","min","now","isElementBusy","isElementCollapsed","isElementExpanded","isElementSelected","getAccessibleName","label","labelElementId","rootElement","getUnsafeRootElement","labelElement","findByProps","nativeID","getTextContent"],"sources":["../../src/helpers/accessiblity.ts"],"sourcesContent":["import { AccessibilityState, AccessibilityValue, StyleSheet } from 'react-native';\nimport { ReactTestInstance } from 'react-test-renderer';\nimport { getHostSiblings, getUnsafeRootElement } from './component-tree';\nimport { getHostComponentNames, isHostText } from './host-component-names';\nimport { getTextContent } from './text-content';\n\ntype IsInaccessibleOptions = {\n cache?: WeakMap<ReactTestInstance, boolean>;\n};\n\nexport const accessibilityStateKeys: (keyof AccessibilityState)[] = [\n 'disabled',\n 'selected',\n 'checked',\n 'busy',\n 'expanded',\n];\n\nexport const accessiblityValueKeys: (keyof AccessibilityValue)[] = ['min', 'max', 'now', 'text'];\n\nexport function isHiddenFromAccessibility(\n element: ReactTestInstance | null,\n { cache }: IsInaccessibleOptions = {},\n): boolean {\n if (element == null) {\n return true;\n }\n\n let current: ReactTestInstance | null = element;\n while (current) {\n let isCurrentSubtreeInaccessible = cache?.get(current);\n\n if (isCurrentSubtreeInaccessible === undefined) {\n isCurrentSubtreeInaccessible = isSubtreeInaccessible(current);\n cache?.set(current, isCurrentSubtreeInaccessible);\n }\n\n if (isCurrentSubtreeInaccessible) {\n return true;\n }\n\n current = current.parent;\n }\n\n return false;\n}\n\n/** RTL-compatitibility alias for `isHiddenFromAccessibility` */\nexport const isInaccessible = isHiddenFromAccessibility;\n\nfunction isSubtreeInaccessible(element: ReactTestInstance): boolean {\n // Null props can happen for React.Fragments\n if (element.props == null) {\n return false;\n }\n\n // See: https://reactnative.dev/docs/accessibility#aria-hidden\n if (element.props['aria-hidden']) {\n return true;\n }\n\n // iOS: accessibilityElementsHidden\n // See: https://reactnative.dev/docs/accessibility#accessibilityelementshidden-ios\n if (element.props.accessibilityElementsHidden) {\n return true;\n }\n\n // Android: importantForAccessibility\n // See: https://reactnative.dev/docs/accessibility#importantforaccessibility-android\n if (element.props.importantForAccessibility === 'no-hide-descendants') {\n return true;\n }\n\n // Note that `opacity: 0` is not treated as inaccessible on iOS\n const flatStyle = StyleSheet.flatten(element.props.style) ?? {};\n if (flatStyle.display === 'none') return true;\n\n // iOS: accessibilityViewIsModal or aria-modal\n // See: https://reactnative.dev/docs/accessibility#accessibilityviewismodal-ios\n const hostSiblings = getHostSiblings(element);\n if (hostSiblings.some((sibling) => getAccessibilityViewIsModal(sibling))) {\n return true;\n }\n\n return false;\n}\n\nexport function isAccessibilityElement(element: ReactTestInstance | null): boolean {\n if (element == null) {\n return false;\n }\n\n if (element.props.accessible !== undefined) {\n return element.props.accessible;\n }\n\n const hostComponentNames = getHostComponentNames();\n return (\n element?.type === hostComponentNames?.text ||\n element?.type === hostComponentNames?.textInput ||\n element?.type === hostComponentNames?.switch\n );\n}\n\n/**\n * Returns the accessibility role for given element. It will return explicit\n * role from either `role` or `accessibilityRole` props if set.\n *\n * If explicit role is not available, it would try to return default element\n * role:\n * - `text` for `Text` elements\n *\n * In all other cases this functions returns `none`.\n *\n * @param element\n * @returns\n */\nexport function getAccessibilityRole(element: ReactTestInstance) {\n const explicitRole = element.props.role ?? element.props.accessibilityRole;\n if (explicitRole) {\n return explicitRole;\n }\n\n if (isHostText(element)) {\n return 'text';\n }\n\n return 'none';\n}\n\nexport function getAccessibilityViewIsModal(element: ReactTestInstance) {\n return element.props['aria-modal'] ?? element.props.accessibilityViewIsModal;\n}\n\nexport function getAccessibilityLabel(element: ReactTestInstance): string | undefined {\n return element.props['aria-label'] ?? element.props.accessibilityLabel;\n}\n\nexport function getAccessibilityLabelledBy(element: ReactTestInstance): string | undefined {\n return element.props['aria-labelledby'] ?? element.props.accessibilityLabelledBy;\n}\n\nexport function getAccessibilityState(element: ReactTestInstance): AccessibilityState | undefined {\n const {\n accessibilityState,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-selected': ariaSelected,\n } = element.props;\n\n const hasAnyAccessibilityStateProps =\n accessibilityState != null ||\n ariaBusy != null ||\n ariaChecked != null ||\n ariaDisabled != null ||\n ariaExpanded != null ||\n ariaSelected != null;\n\n if (!hasAnyAccessibilityStateProps) {\n return undefined;\n }\n\n return {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n}\n\nexport function getAccessibilityCheckedState(\n element: ReactTestInstance,\n): AccessibilityState['checked'] {\n const { accessibilityState, 'aria-checked': ariaChecked } = element.props;\n return ariaChecked ?? accessibilityState?.checked;\n}\n\nexport function getAccessibilityValue(element: ReactTestInstance): AccessibilityValue | undefined {\n const {\n accessibilityValue,\n 'aria-valuemax': ariaValueMax,\n 'aria-valuemin': ariaValueMin,\n 'aria-valuenow': ariaValueNow,\n 'aria-valuetext': ariaValueText,\n } = element.props;\n\n const hasAnyAccessibilityValueProps =\n accessibilityValue != null ||\n ariaValueMax != null ||\n ariaValueMin != null ||\n ariaValueNow != null ||\n ariaValueText != null;\n\n if (!hasAnyAccessibilityValueProps) {\n return undefined;\n }\n\n return {\n max: ariaValueMax ?? accessibilityValue?.max,\n min: ariaValueMin ?? accessibilityValue?.min,\n now: ariaValueNow ?? accessibilityValue?.now,\n text: ariaValueText ?? accessibilityValue?.text,\n };\n}\n\nexport function isElementBusy(element: ReactTestInstance): NonNullable<AccessibilityState['busy']> {\n const { accessibilityState, 'aria-busy': ariaBusy } = element.props;\n return ariaBusy ?? accessibilityState?.busy ?? false;\n}\n\nexport function isElementCollapsed(\n element: ReactTestInstance,\n): NonNullable<AccessibilityState['expanded']> {\n const { accessibilityState, 'aria-expanded': ariaExpanded } = element.props;\n return (ariaExpanded ?? accessibilityState?.expanded) === false;\n}\n\nexport function isElementExpanded(\n element: ReactTestInstance,\n): NonNullable<AccessibilityState['expanded']> {\n const { accessibilityState, 'aria-expanded': ariaExpanded } = element.props;\n return ariaExpanded ?? accessibilityState?.expanded ?? false;\n}\n\nexport function isElementSelected(\n element: ReactTestInstance,\n): NonNullable<AccessibilityState['selected']> {\n const { accessibilityState, 'aria-selected': ariaSelected } = element.props;\n return ariaSelected ?? accessibilityState?.selected ?? false;\n}\n\nexport function getAccessibleName(element: ReactTestInstance): string | undefined {\n const label = getAccessibilityLabel(element);\n if (label) {\n return label;\n }\n\n const labelElementId = getAccessibilityLabelledBy(element);\n if (labelElementId) {\n const rootElement = getUnsafeRootElement(element);\n const labelElement = rootElement?.findByProps({ nativeID: labelElementId });\n if (labelElement) {\n return getTextContent(labelElement);\n }\n }\n\n return getTextContent(element);\n}\n"],"mappings":"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"}