@testing-library/react-native 12.4.0 → 12.4.1
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.
- package/build/helpers/accessiblity.d.ts +14 -1
- package/build/helpers/accessiblity.js +23 -2
- package/build/helpers/accessiblity.js.map +1 -1
- package/build/matchers/extend-expect.d.ts +1 -2
- package/build/matchers/extend-expect.js +0 -2
- package/build/matchers/extend-expect.js.map +1 -1
- package/build/matchers/types.d.ts +38 -0
- package/build/matchers/types.js +2 -0
- package/build/matchers/types.js.map +1 -0
- package/build/user-event/event-builder/common.d.ts +19 -12
- package/build/user-event/event-builder/common.js +12 -7
- package/build/user-event/event-builder/common.js.map +1 -1
- package/build/user-event/event-builder/index.d.ts +35 -12
- package/build/user-event/event-builder/scroll-view.d.ts +2 -0
- package/build/user-event/event-builder/scroll-view.js +3 -1
- package/build/user-event/event-builder/scroll-view.js.map +1 -1
- package/build/user-event/event-builder/text-input.d.ts +14 -0
- package/build/user-event/event-builder/text-input.js +21 -7
- package/build/user-event/event-builder/text-input.js.map +1 -1
- package/package.json +16 -16
- package/build/matchers/extend-expect.d.js +0 -2
- package/build/matchers/extend-expect.d.js.map +0 -1
- package/src/matchers/extend-expect.d.ts +0 -40
|
@@ -9,7 +9,20 @@ export declare function isHiddenFromAccessibility(element: ReactTestInstance | n
|
|
|
9
9
|
/** RTL-compatitibility alias for `isHiddenFromAccessibility` */
|
|
10
10
|
export declare const isInaccessible: typeof isHiddenFromAccessibility;
|
|
11
11
|
export declare function isAccessibilityElement(element: ReactTestInstance | null): boolean;
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Returns the accessibility role for given element. It will return explicit
|
|
14
|
+
* role from either `role` or `accessibilityRole` props if set.
|
|
15
|
+
*
|
|
16
|
+
* If explicit role is not available, it would try to return default element
|
|
17
|
+
* role:
|
|
18
|
+
* - `text` for `Text` elements
|
|
19
|
+
*
|
|
20
|
+
* In all other cases this functions returns `none`.
|
|
21
|
+
*
|
|
22
|
+
* @param element
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
export declare function getAccessibilityRole(element: ReactTestInstance): any;
|
|
13
26
|
export declare function getAccessibilityViewIsModal(element: ReactTestInstance): any;
|
|
14
27
|
export declare function getAccessibilityLabel(element: ReactTestInstance): string | undefined;
|
|
15
28
|
export declare function getAccessibilityLabelledBy(element: ReactTestInstance): string | undefined;
|
|
@@ -20,9 +20,9 @@ exports.isElementSelected = isElementSelected;
|
|
|
20
20
|
exports.isHiddenFromAccessibility = isHiddenFromAccessibility;
|
|
21
21
|
exports.isInaccessible = void 0;
|
|
22
22
|
var _reactNative = require("react-native");
|
|
23
|
-
var _textContent = require("./text-content");
|
|
24
23
|
var _componentTree = require("./component-tree");
|
|
25
24
|
var _hostComponentNames = require("./host-component-names");
|
|
25
|
+
var _textContent = require("./text-content");
|
|
26
26
|
const accessibilityStateKeys = exports.accessibilityStateKeys = ['disabled', 'selected', 'checked', 'busy', 'expanded'];
|
|
27
27
|
const accessiblityValueKeys = exports.accessiblityValueKeys = ['min', 'max', 'now', 'text'];
|
|
28
28
|
function isHiddenFromAccessibility(element, {
|
|
@@ -93,8 +93,29 @@ function isAccessibilityElement(element) {
|
|
|
93
93
|
const hostComponentNames = (0, _hostComponentNames.getHostComponentNames)();
|
|
94
94
|
return element?.type === hostComponentNames?.text || element?.type === hostComponentNames?.textInput || element?.type === hostComponentNames?.switch;
|
|
95
95
|
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Returns the accessibility role for given element. It will return explicit
|
|
99
|
+
* role from either `role` or `accessibilityRole` props if set.
|
|
100
|
+
*
|
|
101
|
+
* If explicit role is not available, it would try to return default element
|
|
102
|
+
* role:
|
|
103
|
+
* - `text` for `Text` elements
|
|
104
|
+
*
|
|
105
|
+
* In all other cases this functions returns `none`.
|
|
106
|
+
*
|
|
107
|
+
* @param element
|
|
108
|
+
* @returns
|
|
109
|
+
*/
|
|
96
110
|
function getAccessibilityRole(element) {
|
|
97
|
-
|
|
111
|
+
const explicitRole = element.props.role ?? element.props.accessibilityRole;
|
|
112
|
+
if (explicitRole) {
|
|
113
|
+
return explicitRole;
|
|
114
|
+
}
|
|
115
|
+
if ((0, _hostComponentNames.isHostText)(element)) {
|
|
116
|
+
return 'text';
|
|
117
|
+
}
|
|
118
|
+
return 'none';
|
|
98
119
|
}
|
|
99
120
|
function getAccessibilityViewIsModal(element) {
|
|
100
121
|
return element.props['aria-modal'] ?? element.props.accessibilityViewIsModal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessiblity.js","names":["_reactNative","require","_textContent","_componentTree","_hostComponentNames","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","role","accessibilityRole","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 {\n AccessibilityState,\n AccessibilityValue,\n StyleSheet,\n} from 'react-native';\nimport { ReactTestInstance } from 'react-test-renderer';\nimport { getTextContent } from './text-content';\nimport { getHostSiblings, getUnsafeRootElement } from './component-tree';\nimport { getHostComponentNames } from './host-component-names';\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)[] = [\n 'min',\n 'max',\n 'now',\n 'text',\n];\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(\n element: ReactTestInstance | null\n): 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\nexport function getAccessibilityRole(\n element: ReactTestInstance\n): string | undefined {\n return element.props.role ?? element.props.accessibilityRole;\n}\n\nexport function getAccessibilityViewIsModal(element: ReactTestInstance) {\n return element.props['aria-modal'] ?? element.props.accessibilityViewIsModal;\n}\n\nexport function getAccessibilityLabel(\n element: ReactTestInstance\n): string | undefined {\n return element.props['aria-label'] ?? element.props.accessibilityLabel;\n}\n\nexport function getAccessibilityLabelledBy(\n element: ReactTestInstance\n): string | undefined {\n return (\n element.props['aria-labelledby'] ?? element.props.accessibilityLabelledBy\n );\n}\n\nexport function getAccessibilityState(\n element: ReactTestInstance\n): 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(\n element: ReactTestInstance\n): 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(\n element: ReactTestInstance\n): 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(\n element: ReactTestInstance\n): 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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"}
|
|
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 {\n AccessibilityState,\n AccessibilityValue,\n StyleSheet,\n} 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)[] = [\n 'min',\n 'max',\n 'now',\n 'text',\n];\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(\n element: ReactTestInstance | null\n): 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(\n element: ReactTestInstance\n): string | undefined {\n return element.props['aria-label'] ?? element.props.accessibilityLabel;\n}\n\nexport function getAccessibilityLabelledBy(\n element: ReactTestInstance\n): string | undefined {\n return (\n element.props['aria-labelledby'] ?? element.props.accessibilityLabelledBy\n );\n}\n\nexport function getAccessibilityState(\n element: ReactTestInstance\n): 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(\n element: ReactTestInstance\n): 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(\n element: ReactTestInstance\n): 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(\n element: ReactTestInstance\n): 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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"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export {};
|
|
1
|
+
export type * from './types';
|
|
@@ -17,8 +17,6 @@ var _toHaveDisplayValue = require("./to-have-display-value");
|
|
|
17
17
|
var _toHaveProp = require("./to-have-prop");
|
|
18
18
|
var _toHaveStyle = require("./to-have-style");
|
|
19
19
|
var _toHaveTextContent = require("./to-have-text-content");
|
|
20
|
-
/// <reference path="./extend-expect.d.ts" />
|
|
21
|
-
|
|
22
20
|
expect.extend({
|
|
23
21
|
toBeOnTheScreen: _toBeOnTheScreen.toBeOnTheScreen,
|
|
24
22
|
toBeChecked: _toBeChecked.toBeChecked,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend-expect.js","names":["_toBeOnTheScreen","require","_toBeChecked","_toBeCollapsed","_toBeDisabled","_toBeBusy","_toBeEmptyElement","_toBeExpanded","_toBePartiallyChecked","_toBeSelected","_toBeVisible","_toContainElement","_toHaveAccessibilityValue","_toHaveAccessibleName","_toHaveDisplayValue","_toHaveProp","_toHaveStyle","_toHaveTextContent","expect","extend","toBeOnTheScreen","toBeChecked","toBeCollapsed","toBeDisabled","toBeBusy","toBeEmptyElement","toBeEnabled","toBeExpanded","toBePartiallyChecked","toBeSelected","toBeVisible","toContainElement","toHaveAccessibilityValue","toHaveAccessibleName","toHaveDisplayValue","toHaveProp","toHaveStyle","toHaveTextContent"],"sources":["../../src/matchers/extend-expect.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"extend-expect.js","names":["_toBeOnTheScreen","require","_toBeChecked","_toBeCollapsed","_toBeDisabled","_toBeBusy","_toBeEmptyElement","_toBeExpanded","_toBePartiallyChecked","_toBeSelected","_toBeVisible","_toContainElement","_toHaveAccessibilityValue","_toHaveAccessibleName","_toHaveDisplayValue","_toHaveProp","_toHaveStyle","_toHaveTextContent","expect","extend","toBeOnTheScreen","toBeChecked","toBeCollapsed","toBeDisabled","toBeBusy","toBeEmptyElement","toBeEnabled","toBeExpanded","toBePartiallyChecked","toBeSelected","toBeVisible","toContainElement","toHaveAccessibilityValue","toHaveAccessibleName","toHaveDisplayValue","toHaveProp","toHaveStyle","toHaveTextContent"],"sources":["../../src/matchers/extend-expect.ts"],"sourcesContent":["import { toBeOnTheScreen } from './to-be-on-the-screen';\nimport { toBeChecked } from './to-be-checked';\nimport { toBeCollapsed } from './to-be-collapsed';\nimport { toBeDisabled, toBeEnabled } from './to-be-disabled';\nimport { toBeBusy } from './to-be-busy';\nimport { toBeEmptyElement } from './to-be-empty-element';\nimport { toBeExpanded } from './to-be-expanded';\nimport { toBePartiallyChecked } from './to-be-partially-checked';\nimport { toBeSelected } from './to-be-selected';\nimport { toBeVisible } from './to-be-visible';\nimport { toContainElement } from './to-contain-element';\nimport { toHaveAccessibilityValue } from './to-have-accessibility-value';\nimport { toHaveAccessibleName } from './to-have-accessible-name';\nimport { toHaveDisplayValue } from './to-have-display-value';\nimport { toHaveProp } from './to-have-prop';\nimport { toHaveStyle } from './to-have-style';\nimport { toHaveTextContent } from './to-have-text-content';\n\nexport type * from './types';\n\nexpect.extend({\n toBeOnTheScreen,\n toBeChecked,\n toBeCollapsed,\n toBeDisabled,\n toBeBusy,\n toBeEmptyElement,\n toBeEnabled,\n toBeExpanded,\n toBePartiallyChecked,\n toBeSelected,\n toBeVisible,\n toContainElement,\n toHaveAccessibilityValue,\n toHaveAccessibleName,\n toHaveDisplayValue,\n toHaveProp,\n toHaveStyle,\n toHaveTextContent,\n});\n"],"mappings":";;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,qBAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AACA,IAAAU,iBAAA,GAAAV,OAAA;AACA,IAAAW,yBAAA,GAAAX,OAAA;AACA,IAAAY,qBAAA,GAAAZ,OAAA;AACA,IAAAa,mBAAA,GAAAb,OAAA;AACA,IAAAc,WAAA,GAAAd,OAAA;AACA,IAAAe,YAAA,GAAAf,OAAA;AACA,IAAAgB,kBAAA,GAAAhB,OAAA;AAIAiB,MAAM,CAACC,MAAM,CAAC;EACZC,eAAe,EAAfA,gCAAe;EACfC,WAAW,EAAXA,wBAAW;EACXC,aAAa,EAAbA,4BAAa;EACbC,YAAY,EAAZA,0BAAY;EACZC,QAAQ,EAARA,kBAAQ;EACRC,gBAAgB,EAAhBA,kCAAgB;EAChBC,WAAW,EAAXA,yBAAW;EACXC,YAAY,EAAZA,0BAAY;EACZC,oBAAoB,EAApBA,0CAAoB;EACpBC,YAAY,EAAZA,0BAAY;EACZC,WAAW,EAAXA,wBAAW;EACXC,gBAAgB,EAAhBA,kCAAgB;EAChBC,wBAAwB,EAAxBA,kDAAwB;EACxBC,oBAAoB,EAApBA,0CAAoB;EACpBC,kBAAkB,EAAlBA,sCAAkB;EAClBC,UAAU,EAAVA,sBAAU;EACVC,WAAW,EAAXA,wBAAW;EACXC,iBAAiB,EAAjBA;AACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { StyleProp } from 'react-native';
|
|
2
|
+
import type { ReactTestInstance } from 'react-test-renderer';
|
|
3
|
+
import { AccessibilityValueMatcher } from '../helpers/matchers/match-accessibility-value';
|
|
4
|
+
import { TextMatch, TextMatchOptions } from '../matches';
|
|
5
|
+
import { Style } from './to-have-style';
|
|
6
|
+
export interface JestNativeMatchers<R> {
|
|
7
|
+
/**
|
|
8
|
+
* Assert whether an element is present in the element tree or not.
|
|
9
|
+
*/
|
|
10
|
+
toBeOnTheScreen(): R;
|
|
11
|
+
toBeChecked(): R;
|
|
12
|
+
toBeCollapsed(): R;
|
|
13
|
+
toBeDisabled(): R;
|
|
14
|
+
toBeBusy(): R;
|
|
15
|
+
toBeEmptyElement(): R;
|
|
16
|
+
toBeEnabled(): R;
|
|
17
|
+
toBeExpanded(): R;
|
|
18
|
+
toBePartiallyChecked(): R;
|
|
19
|
+
toBeSelected(): R;
|
|
20
|
+
toBeVisible(): R;
|
|
21
|
+
toContainElement(element: ReactTestInstance | null): R;
|
|
22
|
+
toHaveAccessibilityValue(expectedValue: AccessibilityValueMatcher): R;
|
|
23
|
+
toHaveAccessibleName(expectedName?: TextMatch, options?: TextMatchOptions): R;
|
|
24
|
+
toHaveDisplayValue(expectedValue: TextMatch, options?: TextMatchOptions): R;
|
|
25
|
+
toHaveProp(name: string, expectedValue?: unknown): R;
|
|
26
|
+
toHaveStyle(style: StyleProp<Style>): R;
|
|
27
|
+
toHaveTextContent(expectedText: TextMatch, options?: TextMatchOptions): R;
|
|
28
|
+
}
|
|
29
|
+
declare global {
|
|
30
|
+
namespace jest {
|
|
31
|
+
interface Matchers<R, T = {}> extends JestNativeMatchers<R> {
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
declare module '@jest/expect' {
|
|
36
|
+
interface Matchers<R extends void | Promise<void>> extends JestNativeMatchers<R> {
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/matchers/types.ts"],"sourcesContent":["import type { StyleProp } from 'react-native';\nimport type { ReactTestInstance } from 'react-test-renderer';\nimport { AccessibilityValueMatcher } from '../helpers/matchers/match-accessibility-value';\nimport { TextMatch, TextMatchOptions } from '../matches';\nimport { Style } from './to-have-style';\n\nexport interface JestNativeMatchers<R> {\n /**\n * Assert whether an element is present in the element tree or not.\n */\n toBeOnTheScreen(): R;\n\n toBeChecked(): R;\n toBeCollapsed(): R;\n toBeDisabled(): R;\n toBeBusy(): R;\n toBeEmptyElement(): R;\n toBeEnabled(): R;\n toBeExpanded(): R;\n toBePartiallyChecked(): R;\n toBeSelected(): R;\n toBeVisible(): R;\n toContainElement(element: ReactTestInstance | null): R;\n toHaveAccessibilityValue(expectedValue: AccessibilityValueMatcher): R;\n toHaveAccessibleName(expectedName?: TextMatch, options?: TextMatchOptions): R;\n toHaveDisplayValue(expectedValue: TextMatch, options?: TextMatchOptions): R;\n toHaveProp(name: string, expectedValue?: unknown): R;\n toHaveStyle(style: StyleProp<Style>): R;\n toHaveTextContent(expectedText: TextMatch, options?: TextMatchOptions): R;\n}\n\n// Implicit Jest global `expect`.\ndeclare global {\n namespace jest {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface Matchers<R, T = {}> extends JestNativeMatchers<R> {}\n }\n}\n\n// Explicit `@jest/globals` `expect` matchers.\n// @ts-ignore\ndeclare module '@jest/expect' {\n interface Matchers<R extends void | Promise<void>>\n extends JestNativeMatchers<R> {}\n}\n"],"mappings":""}
|
|
@@ -5,10 +5,6 @@
|
|
|
5
5
|
* - Android: `{"changedTouches": [[Circular]], "identifier": 0, "locationX": 160, "locationY": 40.3636360168457, "pageX": 180, "pageY": 140.36363220214844, "target": 53, "targetSurface": -1, "timestamp": 10290805, "touches": [[Circular]]}`
|
|
6
6
|
*/
|
|
7
7
|
declare function touch(): {
|
|
8
|
-
persist: jest.Mock<any, any, any>;
|
|
9
|
-
currentTarget: {
|
|
10
|
-
measure: jest.Mock<any, any, any>;
|
|
11
|
-
};
|
|
12
8
|
nativeEvent: {
|
|
13
9
|
changedTouches: never[];
|
|
14
10
|
identifier: number;
|
|
@@ -20,6 +16,11 @@ declare function touch(): {
|
|
|
20
16
|
timestamp: number;
|
|
21
17
|
touches: never[];
|
|
22
18
|
};
|
|
19
|
+
persist: jest.Mock<any, any, any>;
|
|
20
|
+
currentTarget: {
|
|
21
|
+
measure: jest.Mock<any, any, any>;
|
|
22
|
+
};
|
|
23
|
+
target: {};
|
|
23
24
|
};
|
|
24
25
|
export declare const CommonEventBuilder: {
|
|
25
26
|
touch: typeof touch;
|
|
@@ -27,10 +28,6 @@ export declare const CommonEventBuilder: {
|
|
|
27
28
|
dispatchConfig: {
|
|
28
29
|
registrationName: string;
|
|
29
30
|
};
|
|
30
|
-
persist: jest.Mock<any, any, any>;
|
|
31
|
-
currentTarget: {
|
|
32
|
-
measure: jest.Mock<any, any, any>;
|
|
33
|
-
};
|
|
34
31
|
nativeEvent: {
|
|
35
32
|
changedTouches: never[];
|
|
36
33
|
identifier: number;
|
|
@@ -42,15 +39,16 @@ export declare const CommonEventBuilder: {
|
|
|
42
39
|
timestamp: number;
|
|
43
40
|
touches: never[];
|
|
44
41
|
};
|
|
42
|
+
persist: jest.Mock<any, any, any>;
|
|
43
|
+
currentTarget: {
|
|
44
|
+
measure: jest.Mock<any, any, any>;
|
|
45
|
+
};
|
|
46
|
+
target: {};
|
|
45
47
|
};
|
|
46
48
|
responderRelease: () => {
|
|
47
49
|
dispatchConfig: {
|
|
48
50
|
registrationName: string;
|
|
49
51
|
};
|
|
50
|
-
persist: jest.Mock<any, any, any>;
|
|
51
|
-
currentTarget: {
|
|
52
|
-
measure: jest.Mock<any, any, any>;
|
|
53
|
-
};
|
|
54
52
|
nativeEvent: {
|
|
55
53
|
changedTouches: never[];
|
|
56
54
|
identifier: number;
|
|
@@ -62,6 +60,11 @@ export declare const CommonEventBuilder: {
|
|
|
62
60
|
timestamp: number;
|
|
63
61
|
touches: never[];
|
|
64
62
|
};
|
|
63
|
+
persist: jest.Mock<any, any, any>;
|
|
64
|
+
currentTarget: {
|
|
65
|
+
measure: jest.Mock<any, any, any>;
|
|
66
|
+
};
|
|
67
|
+
target: {};
|
|
65
68
|
};
|
|
66
69
|
/**
|
|
67
70
|
* Experimental values:
|
|
@@ -72,6 +75,8 @@ export declare const CommonEventBuilder: {
|
|
|
72
75
|
nativeEvent: {
|
|
73
76
|
target: number;
|
|
74
77
|
};
|
|
78
|
+
currentTarget: {};
|
|
79
|
+
target: {};
|
|
75
80
|
};
|
|
76
81
|
/**
|
|
77
82
|
* Experimental values:
|
|
@@ -82,6 +87,8 @@ export declare const CommonEventBuilder: {
|
|
|
82
87
|
nativeEvent: {
|
|
83
88
|
target: number;
|
|
84
89
|
};
|
|
90
|
+
currentTarget: {};
|
|
91
|
+
target: {};
|
|
85
92
|
};
|
|
86
93
|
};
|
|
87
94
|
export {};
|
|
@@ -11,10 +11,6 @@ exports.CommonEventBuilder = void 0;
|
|
|
11
11
|
*/
|
|
12
12
|
function touch() {
|
|
13
13
|
return {
|
|
14
|
-
persist: jest.fn(),
|
|
15
|
-
currentTarget: {
|
|
16
|
-
measure: jest.fn()
|
|
17
|
-
},
|
|
18
14
|
nativeEvent: {
|
|
19
15
|
changedTouches: [],
|
|
20
16
|
identifier: 0,
|
|
@@ -25,7 +21,12 @@ function touch() {
|
|
|
25
21
|
target: 0,
|
|
26
22
|
timestamp: Date.now(),
|
|
27
23
|
touches: []
|
|
28
|
-
}
|
|
24
|
+
},
|
|
25
|
+
persist: jest.fn(),
|
|
26
|
+
currentTarget: {
|
|
27
|
+
measure: jest.fn()
|
|
28
|
+
},
|
|
29
|
+
target: {}
|
|
29
30
|
};
|
|
30
31
|
}
|
|
31
32
|
const CommonEventBuilder = exports.CommonEventBuilder = {
|
|
@@ -55,7 +56,9 @@ const CommonEventBuilder = exports.CommonEventBuilder = {
|
|
|
55
56
|
return {
|
|
56
57
|
nativeEvent: {
|
|
57
58
|
target: 0
|
|
58
|
-
}
|
|
59
|
+
},
|
|
60
|
+
currentTarget: {},
|
|
61
|
+
target: {}
|
|
59
62
|
};
|
|
60
63
|
},
|
|
61
64
|
/**
|
|
@@ -67,7 +70,9 @@ const CommonEventBuilder = exports.CommonEventBuilder = {
|
|
|
67
70
|
return {
|
|
68
71
|
nativeEvent: {
|
|
69
72
|
target: 0
|
|
70
|
-
}
|
|
73
|
+
},
|
|
74
|
+
currentTarget: {},
|
|
75
|
+
target: {}
|
|
71
76
|
};
|
|
72
77
|
}
|
|
73
78
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","names":["touch","
|
|
1
|
+
{"version":3,"file":"common.js","names":["touch","nativeEvent","changedTouches","identifier","locationX","locationY","pageX","pageY","target","timestamp","Date","now","touches","persist","jest","fn","currentTarget","measure","CommonEventBuilder","exports","responderGrant","dispatchConfig","registrationName","responderRelease","focus","blur"],"sources":["../../../src/user-event/event-builder/common.ts"],"sourcesContent":["/**\n * Experimental values:\n * - iOS: `{\"changedTouches\": [[Circular]], \"identifier\": 1, \"locationX\": 253, \"locationY\": 30.333328247070312, \"pageX\": 273, \"pageY\": 141.3333282470703, \"target\": 75, \"timestamp\": 875928682.0450834, \"touches\": [[Circular]]}`\n * - Android: `{\"changedTouches\": [[Circular]], \"identifier\": 0, \"locationX\": 160, \"locationY\": 40.3636360168457, \"pageX\": 180, \"pageY\": 140.36363220214844, \"target\": 53, \"targetSurface\": -1, \"timestamp\": 10290805, \"touches\": [[Circular]]}`\n */\nfunction touch() {\n return {\n nativeEvent: {\n changedTouches: [],\n identifier: 0,\n locationX: 0,\n locationY: 0,\n pageX: 0,\n pageY: 0,\n target: 0,\n timestamp: Date.now(),\n touches: [],\n },\n persist: jest.fn(),\n currentTarget: { measure: jest.fn() },\n target: {},\n };\n}\n\nexport const CommonEventBuilder = {\n touch,\n\n responderGrant: () => {\n return {\n ...touch(),\n dispatchConfig: { registrationName: 'onResponderGrant' },\n };\n },\n\n responderRelease: () => {\n return {\n ...touch(),\n dispatchConfig: { registrationName: 'onResponderRelease' },\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"eventCount\": 0, \"target\": 75, \"text\": \"\"}`\n * - Android: `{\"target\": 53}`\n */\n focus: () => {\n return {\n nativeEvent: {\n target: 0,\n },\n currentTarget: {},\n target: {},\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"eventCount\": 0, \"target\": 75, \"text\": \"\"}`\n * - Android: `{\"target\": 53}`\n */\n blur: () => {\n return {\n nativeEvent: {\n target: 0,\n },\n currentTarget: {},\n target: {},\n };\n },\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA,SAASA,KAAKA,CAAA,EAAG;EACf,OAAO;IACLC,WAAW,EAAE;MACXC,cAAc,EAAE,EAAE;MAClBC,UAAU,EAAE,CAAC;MACbC,SAAS,EAAE,CAAC;MACZC,SAAS,EAAE,CAAC;MACZC,KAAK,EAAE,CAAC;MACRC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,CAAC;MACTC,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC;MACrBC,OAAO,EAAE;IACX,CAAC;IACDC,OAAO,EAAEC,IAAI,CAACC,EAAE,CAAC,CAAC;IAClBC,aAAa,EAAE;MAAEC,OAAO,EAAEH,IAAI,CAACC,EAAE,CAAC;IAAE,CAAC;IACrCP,MAAM,EAAE,CAAC;EACX,CAAC;AACH;AAEO,MAAMU,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EAChClB,KAAK;EAELoB,cAAc,EAAEA,CAAA,KAAM;IACpB,OAAO;MACL,GAAGpB,KAAK,CAAC,CAAC;MACVqB,cAAc,EAAE;QAAEC,gBAAgB,EAAE;MAAmB;IACzD,CAAC;EACH,CAAC;EAEDC,gBAAgB,EAAEA,CAAA,KAAM;IACtB,OAAO;MACL,GAAGvB,KAAK,CAAC,CAAC;MACVqB,cAAc,EAAE;QAAEC,gBAAgB,EAAE;MAAqB;IAC3D,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;EACEE,KAAK,EAAEA,CAAA,KAAM;IACX,OAAO;MACLvB,WAAW,EAAE;QACXO,MAAM,EAAE;MACV,CAAC;MACDQ,aAAa,EAAE,CAAC,CAAC;MACjBR,MAAM,EAAE,CAAC;IACX,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;EACEiB,IAAI,EAAEA,CAAA,KAAM;IACV,OAAO;MACLxB,WAAW,EAAE;QACXO,MAAM,EAAE;MACV,CAAC;MACDQ,aAAa,EAAE,CAAC,CAAC;MACjBR,MAAM,EAAE,CAAC;IACX,CAAC;EACH;AACF,CAAC"}
|
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
export declare const EventBuilder: {
|
|
3
3
|
Common: {
|
|
4
4
|
touch: () => {
|
|
5
|
-
persist: jest.Mock<any, any, any>;
|
|
6
|
-
currentTarget: {
|
|
7
|
-
measure: jest.Mock<any, any, any>;
|
|
8
|
-
};
|
|
9
5
|
nativeEvent: {
|
|
10
6
|
changedTouches: never[];
|
|
11
7
|
identifier: number;
|
|
@@ -17,15 +13,16 @@ export declare const EventBuilder: {
|
|
|
17
13
|
timestamp: number;
|
|
18
14
|
touches: never[];
|
|
19
15
|
};
|
|
16
|
+
persist: jest.Mock<any, any, any>;
|
|
17
|
+
currentTarget: {
|
|
18
|
+
measure: jest.Mock<any, any, any>;
|
|
19
|
+
};
|
|
20
|
+
target: {};
|
|
20
21
|
};
|
|
21
22
|
responderGrant: () => {
|
|
22
23
|
dispatchConfig: {
|
|
23
24
|
registrationName: string;
|
|
24
25
|
};
|
|
25
|
-
persist: jest.Mock<any, any, any>;
|
|
26
|
-
currentTarget: {
|
|
27
|
-
measure: jest.Mock<any, any, any>;
|
|
28
|
-
};
|
|
29
26
|
nativeEvent: {
|
|
30
27
|
changedTouches: never[];
|
|
31
28
|
identifier: number;
|
|
@@ -37,15 +34,16 @@ export declare const EventBuilder: {
|
|
|
37
34
|
timestamp: number;
|
|
38
35
|
touches: never[];
|
|
39
36
|
};
|
|
37
|
+
persist: jest.Mock<any, any, any>;
|
|
38
|
+
currentTarget: {
|
|
39
|
+
measure: jest.Mock<any, any, any>;
|
|
40
|
+
};
|
|
41
|
+
target: {};
|
|
40
42
|
};
|
|
41
43
|
responderRelease: () => {
|
|
42
44
|
dispatchConfig: {
|
|
43
45
|
registrationName: string;
|
|
44
46
|
};
|
|
45
|
-
persist: jest.Mock<any, any, any>;
|
|
46
|
-
currentTarget: {
|
|
47
|
-
measure: jest.Mock<any, any, any>;
|
|
48
|
-
};
|
|
49
47
|
nativeEvent: {
|
|
50
48
|
changedTouches: never[];
|
|
51
49
|
identifier: number;
|
|
@@ -57,16 +55,25 @@ export declare const EventBuilder: {
|
|
|
57
55
|
timestamp: number;
|
|
58
56
|
touches: never[];
|
|
59
57
|
};
|
|
58
|
+
persist: jest.Mock<any, any, any>;
|
|
59
|
+
currentTarget: {
|
|
60
|
+
measure: jest.Mock<any, any, any>;
|
|
61
|
+
};
|
|
62
|
+
target: {};
|
|
60
63
|
};
|
|
61
64
|
focus: () => {
|
|
62
65
|
nativeEvent: {
|
|
63
66
|
target: number;
|
|
64
67
|
};
|
|
68
|
+
currentTarget: {};
|
|
69
|
+
target: {};
|
|
65
70
|
};
|
|
66
71
|
blur: () => {
|
|
67
72
|
nativeEvent: {
|
|
68
73
|
target: number;
|
|
69
74
|
};
|
|
75
|
+
currentTarget: {};
|
|
76
|
+
target: {};
|
|
70
77
|
};
|
|
71
78
|
};
|
|
72
79
|
ScrollView: {
|
|
@@ -97,6 +104,8 @@ export declare const EventBuilder: {
|
|
|
97
104
|
x: number;
|
|
98
105
|
};
|
|
99
106
|
};
|
|
107
|
+
currentTarget: {};
|
|
108
|
+
target: {};
|
|
100
109
|
};
|
|
101
110
|
};
|
|
102
111
|
TextInput: {
|
|
@@ -106,23 +115,31 @@ export declare const EventBuilder: {
|
|
|
106
115
|
target: number;
|
|
107
116
|
eventCount: number;
|
|
108
117
|
};
|
|
118
|
+
currentTarget: {};
|
|
119
|
+
target: {};
|
|
109
120
|
};
|
|
110
121
|
keyPress: (key: string) => {
|
|
111
122
|
nativeEvent: {
|
|
112
123
|
key: string;
|
|
113
124
|
};
|
|
125
|
+
currentTarget: {};
|
|
126
|
+
target: {};
|
|
114
127
|
};
|
|
115
128
|
submitEditing: (text: string) => {
|
|
116
129
|
nativeEvent: {
|
|
117
130
|
text: string;
|
|
118
131
|
target: number;
|
|
119
132
|
};
|
|
133
|
+
currentTarget: {};
|
|
134
|
+
target: {};
|
|
120
135
|
};
|
|
121
136
|
endEditing: (text: string) => {
|
|
122
137
|
nativeEvent: {
|
|
123
138
|
text: string;
|
|
124
139
|
target: number;
|
|
125
140
|
};
|
|
141
|
+
currentTarget: {};
|
|
142
|
+
target: {};
|
|
126
143
|
};
|
|
127
144
|
selectionChange: ({ start, end }: import("../utils").TextRange) => {
|
|
128
145
|
nativeEvent: {
|
|
@@ -131,6 +148,8 @@ export declare const EventBuilder: {
|
|
|
131
148
|
end: number;
|
|
132
149
|
};
|
|
133
150
|
};
|
|
151
|
+
currentTarget: {};
|
|
152
|
+
target: {};
|
|
134
153
|
};
|
|
135
154
|
textInput: (text: string, previousText: string) => {
|
|
136
155
|
nativeEvent: {
|
|
@@ -142,6 +161,8 @@ export declare const EventBuilder: {
|
|
|
142
161
|
};
|
|
143
162
|
target: number;
|
|
144
163
|
};
|
|
164
|
+
currentTarget: {};
|
|
165
|
+
target: {};
|
|
145
166
|
};
|
|
146
167
|
contentSizeChange: ({ width, height }: import("../utils").ContentSize) => {
|
|
147
168
|
nativeEvent: {
|
|
@@ -151,6 +172,8 @@ export declare const EventBuilder: {
|
|
|
151
172
|
};
|
|
152
173
|
target: number;
|
|
153
174
|
};
|
|
175
|
+
currentTarget: {};
|
|
176
|
+
target: {};
|
|
154
177
|
};
|
|
155
178
|
};
|
|
156
179
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-view.js","names":["ScrollViewEventBuilder","exports","scroll","offset","y","x","nativeEvent","contentInset","bottom","left","right","top","contentOffset","contentSize","height","width","layoutMeasurement","responderIgnoreScroll","target","velocity"],"sources":["../../../src/user-event/event-builder/scroll-view.ts"],"sourcesContent":["/**\n * Experimental values:\n * - iOS: `{\"contentInset\": {\"bottom\": 0, \"left\": 0, \"right\": 0, \"top\": 0}, \"contentOffset\": {\"x\": 0, \"y\": 5.333333333333333}, \"contentSize\": {\"height\": 1676.6666259765625, \"width\": 390}, \"layoutMeasurement\": {\"height\": 753, \"width\": 390}, \"zoomScale\": 1}`\n * - Android: `{\"contentInset\": {\"bottom\": 0, \"left\": 0, \"right\": 0, \"top\": 0}, \"contentOffset\": {\"x\": 0, \"y\": 31.619047164916992}, \"contentSize\": {\"height\": 1624.761962890625, \"width\": 411.4285583496094}, \"layoutMeasurement\": {\"height\": 785.5238037109375, \"width\": 411.4285583496094}, \"responderIgnoreScroll\": true, \"target\": 139, \"velocity\": {\"x\": -1.3633992671966553, \"y\": -1.3633992671966553}}`\n */\n\n/**\n * Scroll position of a scrollable element.\n */\nexport interface ContentOffset {\n y: number;\n x: number;\n}\n\nexport const ScrollViewEventBuilder = {\n scroll: (offset: ContentOffset = { y: 0, x: 0 }) => {\n return {\n nativeEvent: {\n contentInset: { bottom: 0, left: 0, right: 0, top: 0 },\n contentOffset: { y: offset.y, x: offset.x },\n contentSize: { height: 0, width: 0 },\n layoutMeasurement: {\n height: 0,\n width: 0,\n },\n responderIgnoreScroll: true,\n target: 0,\n velocity: { y: 0, x: 0 },\n },\n };\n },\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAMO,MAAMA,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG;EACpCE,MAAM,EAAEA,CAACC,MAAqB,GAAG;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,KAAK;IAClD,OAAO;MACLC,WAAW,EAAE;QACXC,YAAY,EAAE;UAAEC,MAAM,EAAE,CAAC;UAAEC,IAAI,EAAE,CAAC;UAAEC,KAAK,EAAE,CAAC;UAAEC,GAAG,EAAE;QAAE,CAAC;QACtDC,aAAa,EAAE;UAAER,CAAC,EAAED,MAAM,CAACC,CAAC;UAAEC,CAAC,EAAEF,MAAM,CAACE;QAAE,CAAC;QAC3CQ,WAAW,EAAE;UAAEC,MAAM,EAAE,CAAC;UAAEC,KAAK,EAAE;QAAE,CAAC;QACpCC,iBAAiB,EAAE;UACjBF,MAAM,EAAE,CAAC;UACTC,KAAK,EAAE;QACT,CAAC;QACDE,qBAAqB,EAAE,IAAI;QAC3BC,MAAM,EAAE,CAAC;QACTC,QAAQ,EAAE;UAAEf,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE;QAAE;MACzB;
|
|
1
|
+
{"version":3,"file":"scroll-view.js","names":["ScrollViewEventBuilder","exports","scroll","offset","y","x","nativeEvent","contentInset","bottom","left","right","top","contentOffset","contentSize","height","width","layoutMeasurement","responderIgnoreScroll","target","velocity","currentTarget"],"sources":["../../../src/user-event/event-builder/scroll-view.ts"],"sourcesContent":["/**\n * Experimental values:\n * - iOS: `{\"contentInset\": {\"bottom\": 0, \"left\": 0, \"right\": 0, \"top\": 0}, \"contentOffset\": {\"x\": 0, \"y\": 5.333333333333333}, \"contentSize\": {\"height\": 1676.6666259765625, \"width\": 390}, \"layoutMeasurement\": {\"height\": 753, \"width\": 390}, \"zoomScale\": 1}`\n * - Android: `{\"contentInset\": {\"bottom\": 0, \"left\": 0, \"right\": 0, \"top\": 0}, \"contentOffset\": {\"x\": 0, \"y\": 31.619047164916992}, \"contentSize\": {\"height\": 1624.761962890625, \"width\": 411.4285583496094}, \"layoutMeasurement\": {\"height\": 785.5238037109375, \"width\": 411.4285583496094}, \"responderIgnoreScroll\": true, \"target\": 139, \"velocity\": {\"x\": -1.3633992671966553, \"y\": -1.3633992671966553}}`\n */\n\n/**\n * Scroll position of a scrollable element.\n */\nexport interface ContentOffset {\n y: number;\n x: number;\n}\n\nexport const ScrollViewEventBuilder = {\n scroll: (offset: ContentOffset = { y: 0, x: 0 }) => {\n return {\n nativeEvent: {\n contentInset: { bottom: 0, left: 0, right: 0, top: 0 },\n contentOffset: { y: offset.y, x: offset.x },\n contentSize: { height: 0, width: 0 },\n layoutMeasurement: {\n height: 0,\n width: 0,\n },\n responderIgnoreScroll: true,\n target: 0,\n velocity: { y: 0, x: 0 },\n },\n currentTarget: {},\n target: {},\n };\n },\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAMO,MAAMA,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG;EACpCE,MAAM,EAAEA,CAACC,MAAqB,GAAG;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,KAAK;IAClD,OAAO;MACLC,WAAW,EAAE;QACXC,YAAY,EAAE;UAAEC,MAAM,EAAE,CAAC;UAAEC,IAAI,EAAE,CAAC;UAAEC,KAAK,EAAE,CAAC;UAAEC,GAAG,EAAE;QAAE,CAAC;QACtDC,aAAa,EAAE;UAAER,CAAC,EAAED,MAAM,CAACC,CAAC;UAAEC,CAAC,EAAEF,MAAM,CAACE;QAAE,CAAC;QAC3CQ,WAAW,EAAE;UAAEC,MAAM,EAAE,CAAC;UAAEC,KAAK,EAAE;QAAE,CAAC;QACpCC,iBAAiB,EAAE;UACjBF,MAAM,EAAE,CAAC;UACTC,KAAK,EAAE;QACT,CAAC;QACDE,qBAAqB,EAAE,IAAI;QAC3BC,MAAM,EAAE,CAAC;QACTC,QAAQ,EAAE;UAAEf,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE;QAAE;MACzB,CAAC;MACDe,aAAa,EAAE,CAAC,CAAC;MACjBF,MAAM,EAAE,CAAC;IACX,CAAC;EACH;AACF,CAAC"}
|
|
@@ -12,6 +12,8 @@ export declare const TextInputEventBuilder: {
|
|
|
12
12
|
target: number;
|
|
13
13
|
eventCount: number;
|
|
14
14
|
};
|
|
15
|
+
currentTarget: {};
|
|
16
|
+
target: {};
|
|
15
17
|
};
|
|
16
18
|
/**
|
|
17
19
|
* Experimental values:
|
|
@@ -22,6 +24,8 @@ export declare const TextInputEventBuilder: {
|
|
|
22
24
|
nativeEvent: {
|
|
23
25
|
key: string;
|
|
24
26
|
};
|
|
27
|
+
currentTarget: {};
|
|
28
|
+
target: {};
|
|
25
29
|
};
|
|
26
30
|
/**
|
|
27
31
|
* Experimental values:
|
|
@@ -33,6 +37,8 @@ export declare const TextInputEventBuilder: {
|
|
|
33
37
|
text: string;
|
|
34
38
|
target: number;
|
|
35
39
|
};
|
|
40
|
+
currentTarget: {};
|
|
41
|
+
target: {};
|
|
36
42
|
};
|
|
37
43
|
/**
|
|
38
44
|
* Experimental values:
|
|
@@ -44,6 +50,8 @@ export declare const TextInputEventBuilder: {
|
|
|
44
50
|
text: string;
|
|
45
51
|
target: number;
|
|
46
52
|
};
|
|
53
|
+
currentTarget: {};
|
|
54
|
+
target: {};
|
|
47
55
|
};
|
|
48
56
|
/**
|
|
49
57
|
* Experimental values:
|
|
@@ -57,6 +65,8 @@ export declare const TextInputEventBuilder: {
|
|
|
57
65
|
end: number;
|
|
58
66
|
};
|
|
59
67
|
};
|
|
68
|
+
currentTarget: {};
|
|
69
|
+
target: {};
|
|
60
70
|
};
|
|
61
71
|
/**
|
|
62
72
|
* Experimental values:
|
|
@@ -73,6 +83,8 @@ export declare const TextInputEventBuilder: {
|
|
|
73
83
|
};
|
|
74
84
|
target: number;
|
|
75
85
|
};
|
|
86
|
+
currentTarget: {};
|
|
87
|
+
target: {};
|
|
76
88
|
};
|
|
77
89
|
/**
|
|
78
90
|
* Experimental values:
|
|
@@ -87,5 +99,7 @@ export declare const TextInputEventBuilder: {
|
|
|
87
99
|
};
|
|
88
100
|
target: number;
|
|
89
101
|
};
|
|
102
|
+
currentTarget: {};
|
|
103
|
+
target: {};
|
|
90
104
|
};
|
|
91
105
|
};
|
|
@@ -16,7 +16,9 @@ const TextInputEventBuilder = exports.TextInputEventBuilder = {
|
|
|
16
16
|
text,
|
|
17
17
|
target: 0,
|
|
18
18
|
eventCount: 0
|
|
19
|
-
}
|
|
19
|
+
},
|
|
20
|
+
currentTarget: {},
|
|
21
|
+
target: {}
|
|
20
22
|
};
|
|
21
23
|
},
|
|
22
24
|
/**
|
|
@@ -28,7 +30,9 @@ const TextInputEventBuilder = exports.TextInputEventBuilder = {
|
|
|
28
30
|
return {
|
|
29
31
|
nativeEvent: {
|
|
30
32
|
key
|
|
31
|
-
}
|
|
33
|
+
},
|
|
34
|
+
currentTarget: {},
|
|
35
|
+
target: {}
|
|
32
36
|
};
|
|
33
37
|
},
|
|
34
38
|
/**
|
|
@@ -41,7 +45,9 @@ const TextInputEventBuilder = exports.TextInputEventBuilder = {
|
|
|
41
45
|
nativeEvent: {
|
|
42
46
|
text,
|
|
43
47
|
target: 0
|
|
44
|
-
}
|
|
48
|
+
},
|
|
49
|
+
currentTarget: {},
|
|
50
|
+
target: {}
|
|
45
51
|
};
|
|
46
52
|
},
|
|
47
53
|
/**
|
|
@@ -54,7 +60,9 @@ const TextInputEventBuilder = exports.TextInputEventBuilder = {
|
|
|
54
60
|
nativeEvent: {
|
|
55
61
|
text,
|
|
56
62
|
target: 0
|
|
57
|
-
}
|
|
63
|
+
},
|
|
64
|
+
currentTarget: {},
|
|
65
|
+
target: {}
|
|
58
66
|
};
|
|
59
67
|
},
|
|
60
68
|
/**
|
|
@@ -72,7 +80,9 @@ const TextInputEventBuilder = exports.TextInputEventBuilder = {
|
|
|
72
80
|
start,
|
|
73
81
|
end
|
|
74
82
|
}
|
|
75
|
-
}
|
|
83
|
+
},
|
|
84
|
+
currentTarget: {},
|
|
85
|
+
target: {}
|
|
76
86
|
};
|
|
77
87
|
},
|
|
78
88
|
/**
|
|
@@ -90,7 +100,9 @@ const TextInputEventBuilder = exports.TextInputEventBuilder = {
|
|
|
90
100
|
end: text.length
|
|
91
101
|
},
|
|
92
102
|
target: 0
|
|
93
|
-
}
|
|
103
|
+
},
|
|
104
|
+
currentTarget: {},
|
|
105
|
+
target: {}
|
|
94
106
|
};
|
|
95
107
|
},
|
|
96
108
|
/**
|
|
@@ -109,7 +121,9 @@ const TextInputEventBuilder = exports.TextInputEventBuilder = {
|
|
|
109
121
|
height
|
|
110
122
|
},
|
|
111
123
|
target: 0
|
|
112
|
-
}
|
|
124
|
+
},
|
|
125
|
+
currentTarget: {},
|
|
126
|
+
target: {}
|
|
113
127
|
};
|
|
114
128
|
}
|
|
115
129
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-input.js","names":["TextInputEventBuilder","exports","change","text","nativeEvent","target","eventCount","keyPress","key","submitEditing","endEditing","selectionChange","start","end","selection","textInput","previousText","range","length","contentSizeChange","width","height","contentSize"],"sources":["../../../src/user-event/event-builder/text-input.ts"],"sourcesContent":["import { ContentSize } from '../utils/content-size';\nimport { TextRange } from '../utils/text-range';\n\nexport const TextInputEventBuilder = {\n /**\n * Experimental values:\n * - iOS: `{\"eventCount\": 4, \"target\": 75, \"text\": \"Test\"}`\n * - Android: `{\"eventCount\": 6, \"target\": 53, \"text\": \"Tes\"}`\n */\n change: (text: string) => {\n return {\n nativeEvent: { text, target: 0, eventCount: 0 },\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"eventCount\": 3, \"key\": \"a\", \"target\": 75}`\n * - Android: `{\"key\": \"a\"}`\n */\n keyPress: (key: string) => {\n return {\n nativeEvent: { key },\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"eventCount\": 4, \"target\": 75, \"text\": \"Test\"}`\n * - Android: `{\"target\": 53, \"text\": \"Test\"}`\n */\n submitEditing: (text: string) => {\n return {\n nativeEvent: { text, target: 0 },\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"eventCount\": 4, \"target\": 75, \"text\": \"Test\"}`\n * - Android: `{\"target\": 53, \"text\": \"Test\"}`\n */\n endEditing: (text: string) => {\n return {\n nativeEvent: { text, target: 0 },\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"selection\": {\"end\": 4, \"start\": 4}, \"target\": 75}`\n * - Android: `{\"selection\": {\"end\": 4, \"start\": 4}}`\n */\n selectionChange: ({ start, end }: TextRange) => {\n return {\n nativeEvent: { selection: { start, end } },\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"eventCount\": 2, \"previousText\": \"Te\", \"range\": {\"end\": 2, \"start\": 2}, \"target\": 75, \"text\": \"s\"}`\n * - Android: `{\"previousText\": \"Te\", \"range\": {\"end\": 2, \"start\": 0}, \"target\": 53, \"text\": \"Tes\"}`\n */\n textInput: (text: string, previousText: string) => {\n return {\n nativeEvent: {\n text,\n previousText,\n range: { start: text.length, end: text.length },\n target: 0,\n },\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"contentSize\": {\"height\": 21.666666666666668, \"width\": 11.666666666666666}, \"target\": 75}`\n * - Android: `{\"contentSize\": {\"height\": 61.45454406738281, \"width\": 352.7272644042969}, \"target\": 53}`\n */\n contentSizeChange: ({ width, height }: ContentSize) => {\n return {\n nativeEvent: { contentSize: { width, height }, target: 0 },\n };\n },\n};\n"],"mappings":";;;;;;AAGO,MAAMA,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG;EACnC;AACF;AACA;AACA;AACA;EACEE,MAAM,EAAGC,IAAY,IAAK;IACxB,OAAO;MACLC,WAAW,EAAE;QAAED,IAAI;QAAEE,MAAM,EAAE,CAAC;QAAEC,UAAU,EAAE;MAAE;
|
|
1
|
+
{"version":3,"file":"text-input.js","names":["TextInputEventBuilder","exports","change","text","nativeEvent","target","eventCount","currentTarget","keyPress","key","submitEditing","endEditing","selectionChange","start","end","selection","textInput","previousText","range","length","contentSizeChange","width","height","contentSize"],"sources":["../../../src/user-event/event-builder/text-input.ts"],"sourcesContent":["import { ContentSize } from '../utils/content-size';\nimport { TextRange } from '../utils/text-range';\n\nexport const TextInputEventBuilder = {\n /**\n * Experimental values:\n * - iOS: `{\"eventCount\": 4, \"target\": 75, \"text\": \"Test\"}`\n * - Android: `{\"eventCount\": 6, \"target\": 53, \"text\": \"Tes\"}`\n */\n change: (text: string) => {\n return {\n nativeEvent: { text, target: 0, eventCount: 0 },\n currentTarget: {},\n target: {},\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"eventCount\": 3, \"key\": \"a\", \"target\": 75}`\n * - Android: `{\"key\": \"a\"}`\n */\n keyPress: (key: string) => {\n return {\n nativeEvent: { key },\n currentTarget: {},\n target: {},\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"eventCount\": 4, \"target\": 75, \"text\": \"Test\"}`\n * - Android: `{\"target\": 53, \"text\": \"Test\"}`\n */\n submitEditing: (text: string) => {\n return {\n nativeEvent: { text, target: 0 },\n currentTarget: {},\n target: {},\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"eventCount\": 4, \"target\": 75, \"text\": \"Test\"}`\n * - Android: `{\"target\": 53, \"text\": \"Test\"}`\n */\n endEditing: (text: string) => {\n return {\n nativeEvent: { text, target: 0 },\n currentTarget: {},\n target: {},\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"selection\": {\"end\": 4, \"start\": 4}, \"target\": 75}`\n * - Android: `{\"selection\": {\"end\": 4, \"start\": 4}}`\n */\n selectionChange: ({ start, end }: TextRange) => {\n return {\n nativeEvent: { selection: { start, end } },\n currentTarget: {},\n target: {},\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"eventCount\": 2, \"previousText\": \"Te\", \"range\": {\"end\": 2, \"start\": 2}, \"target\": 75, \"text\": \"s\"}`\n * - Android: `{\"previousText\": \"Te\", \"range\": {\"end\": 2, \"start\": 0}, \"target\": 53, \"text\": \"Tes\"}`\n */\n textInput: (text: string, previousText: string) => {\n return {\n nativeEvent: {\n text,\n previousText,\n range: { start: text.length, end: text.length },\n target: 0,\n },\n currentTarget: {},\n target: {},\n };\n },\n\n /**\n * Experimental values:\n * - iOS: `{\"contentSize\": {\"height\": 21.666666666666668, \"width\": 11.666666666666666}, \"target\": 75}`\n * - Android: `{\"contentSize\": {\"height\": 61.45454406738281, \"width\": 352.7272644042969}, \"target\": 53}`\n */\n contentSizeChange: ({ width, height }: ContentSize) => {\n return {\n nativeEvent: { contentSize: { width, height }, target: 0 },\n currentTarget: {},\n target: {},\n };\n },\n};\n"],"mappings":";;;;;;AAGO,MAAMA,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG;EACnC;AACF;AACA;AACA;AACA;EACEE,MAAM,EAAGC,IAAY,IAAK;IACxB,OAAO;MACLC,WAAW,EAAE;QAAED,IAAI;QAAEE,MAAM,EAAE,CAAC;QAAEC,UAAU,EAAE;MAAE,CAAC;MAC/CC,aAAa,EAAE,CAAC,CAAC;MACjBF,MAAM,EAAE,CAAC;IACX,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;EACEG,QAAQ,EAAGC,GAAW,IAAK;IACzB,OAAO;MACLL,WAAW,EAAE;QAAEK;MAAI,CAAC;MACpBF,aAAa,EAAE,CAAC,CAAC;MACjBF,MAAM,EAAE,CAAC;IACX,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;EACEK,aAAa,EAAGP,IAAY,IAAK;IAC/B,OAAO;MACLC,WAAW,EAAE;QAAED,IAAI;QAAEE,MAAM,EAAE;MAAE,CAAC;MAChCE,aAAa,EAAE,CAAC,CAAC;MACjBF,MAAM,EAAE,CAAC;IACX,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;EACEM,UAAU,EAAGR,IAAY,IAAK;IAC5B,OAAO;MACLC,WAAW,EAAE;QAAED,IAAI;QAAEE,MAAM,EAAE;MAAE,CAAC;MAChCE,aAAa,EAAE,CAAC,CAAC;MACjBF,MAAM,EAAE,CAAC;IACX,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;EACEO,eAAe,EAAEA,CAAC;IAAEC,KAAK;IAAEC;EAAe,CAAC,KAAK;IAC9C,OAAO;MACLV,WAAW,EAAE;QAAEW,SAAS,EAAE;UAAEF,KAAK;UAAEC;QAAI;MAAE,CAAC;MAC1CP,aAAa,EAAE,CAAC,CAAC;MACjBF,MAAM,EAAE,CAAC;IACX,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;EACEW,SAAS,EAAEA,CAACb,IAAY,EAAEc,YAAoB,KAAK;IACjD,OAAO;MACLb,WAAW,EAAE;QACXD,IAAI;QACJc,YAAY;QACZC,KAAK,EAAE;UAAEL,KAAK,EAAEV,IAAI,CAACgB,MAAM;UAAEL,GAAG,EAAEX,IAAI,CAACgB;QAAO,CAAC;QAC/Cd,MAAM,EAAE;MACV,CAAC;MACDE,aAAa,EAAE,CAAC,CAAC;MACjBF,MAAM,EAAE,CAAC;IACX,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;EACEe,iBAAiB,EAAEA,CAAC;IAAEC,KAAK;IAAEC;EAAoB,CAAC,KAAK;IACrD,OAAO;MACLlB,WAAW,EAAE;QAAEmB,WAAW,EAAE;UAAEF,KAAK;UAAEC;QAAO,CAAC;QAAEjB,MAAM,EAAE;MAAE,CAAC;MAC1DE,aAAa,EAAE,CAAC,CAAC;MACjBF,MAAM,EAAE,CAAC;IACX,CAAC;EACH;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@testing-library/react-native",
|
|
3
|
-
"version": "12.4.
|
|
3
|
+
"version": "12.4.1",
|
|
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",
|
|
@@ -34,31 +34,31 @@
|
|
|
34
34
|
"typings/index.flow.js"
|
|
35
35
|
],
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@babel/cli": "^7.
|
|
38
|
-
"@babel/core": "^7.
|
|
39
|
-
"@babel/plugin-transform-flow-strip-types": "^7.
|
|
40
|
-
"@babel/preset-env": "^7.
|
|
41
|
-
"@babel/preset-flow": "^7.
|
|
42
|
-
"@babel/preset-react": "^7.
|
|
43
|
-
"@babel/preset-typescript": "^7.
|
|
37
|
+
"@babel/cli": "^7.23.4",
|
|
38
|
+
"@babel/core": "^7.23.3",
|
|
39
|
+
"@babel/plugin-transform-flow-strip-types": "^7.23.3",
|
|
40
|
+
"@babel/preset-env": "^7.23.3",
|
|
41
|
+
"@babel/preset-flow": "^7.23.3",
|
|
42
|
+
"@babel/preset-react": "^7.23.3",
|
|
43
|
+
"@babel/preset-typescript": "^7.23.3",
|
|
44
44
|
"@callstack/eslint-config": "^14.1.0",
|
|
45
45
|
"@relmify/jest-serializer-strip-ansi": "^1.0.2",
|
|
46
|
-
"@types/jest": "^29.5.
|
|
47
|
-
"@types/react": "^18.2.
|
|
48
|
-
"@types/react-test-renderer": "^18.0.
|
|
46
|
+
"@types/jest": "^29.5.10",
|
|
47
|
+
"@types/react": "^18.2.38",
|
|
48
|
+
"@types/react-test-renderer": "^18.0.7",
|
|
49
49
|
"babel-jest": "^29.7.0",
|
|
50
|
-
"dedent": "^1.1
|
|
51
|
-
"del-cli": "^5.
|
|
52
|
-
"eslint": "^8.
|
|
50
|
+
"dedent": "^1.5.1",
|
|
51
|
+
"del-cli": "^5.1.0",
|
|
52
|
+
"eslint": "^8.54.0",
|
|
53
53
|
"eslint-plugin-flowtype": "^8.0.3",
|
|
54
54
|
"flow-bin": "~0.170.0",
|
|
55
55
|
"flow-copy-source": "^2.0.9",
|
|
56
56
|
"jest": "^29.7.0",
|
|
57
57
|
"react": "18.2.0",
|
|
58
|
-
"react-native": "0.72.
|
|
58
|
+
"react-native": "0.72.7",
|
|
59
59
|
"react-test-renderer": "18.2.0",
|
|
60
60
|
"strip-ansi": "^6.0.1",
|
|
61
|
-
"typescript": "^5.
|
|
61
|
+
"typescript": "^5.3.2"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"jest-matcher-utils": "^29.7.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extend-expect.d.js","names":[],"sources":["../../src/matchers/extend-expect.d.ts"],"sourcesContent":["import type { StyleProp } from 'react-native';\nimport type { ReactTestInstance } from 'react-test-renderer';\nimport type { TextMatch, TextMatchOptions } from '../matches';\nimport type { AccessibilityValueMatcher } from '../helpers/matchers/match-accessibility-value';\nimport type { Style } from './to-have-style';\n\nexport interface JestNativeMatchers<R> {\n toBeOnTheScreen(): R;\n toBeChecked(): R;\n toBeCollapsed(): R;\n toBeDisabled(): R;\n toBeBusy(): R;\n toBeEmptyElement(): R;\n toBeEnabled(): R;\n toBeExpanded(): R;\n toBePartiallyChecked(): R;\n toBeSelected(): R;\n toBeVisible(): R;\n toContainElement(element: ReactTestInstance | null): R;\n toHaveAccessibilityValue(expectedValue: AccessibilityValueMatcher): R;\n toHaveAccessibleName(expectedName?: TextMatch, options?: TextMatchOptions): R;\n toHaveDisplayValue(expectedValue: TextMatch, options?: TextMatchOptions): R;\n toHaveProp(name: string, expectedValue?: unknown): R;\n toHaveStyle(style: StyleProp<Style>): R;\n toHaveTextContent(expectedText: TextMatch, options?: TextMatchOptions): R;\n}\n\n// Implicit Jest global `expect`.\ndeclare global {\n namespace jest {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface Matchers<R, T = {}> extends JestNativeMatchers<R> {}\n }\n}\n\n// Explicit `@jest/globals` `expect` matchers.\ndeclare module '@jest/expect' {\n interface Matchers<R extends void | Promise<void>>\n extends JestNativeMatchers<R> {}\n}\n"],"mappings":""}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { StyleProp } from 'react-native';
|
|
2
|
-
import type { ReactTestInstance } from 'react-test-renderer';
|
|
3
|
-
import type { TextMatch, TextMatchOptions } from '../matches';
|
|
4
|
-
import type { AccessibilityValueMatcher } from '../helpers/matchers/match-accessibility-value';
|
|
5
|
-
import type { Style } from './to-have-style';
|
|
6
|
-
|
|
7
|
-
export interface JestNativeMatchers<R> {
|
|
8
|
-
toBeOnTheScreen(): R;
|
|
9
|
-
toBeChecked(): R;
|
|
10
|
-
toBeCollapsed(): R;
|
|
11
|
-
toBeDisabled(): R;
|
|
12
|
-
toBeBusy(): R;
|
|
13
|
-
toBeEmptyElement(): R;
|
|
14
|
-
toBeEnabled(): R;
|
|
15
|
-
toBeExpanded(): R;
|
|
16
|
-
toBePartiallyChecked(): R;
|
|
17
|
-
toBeSelected(): R;
|
|
18
|
-
toBeVisible(): R;
|
|
19
|
-
toContainElement(element: ReactTestInstance | null): R;
|
|
20
|
-
toHaveAccessibilityValue(expectedValue: AccessibilityValueMatcher): R;
|
|
21
|
-
toHaveAccessibleName(expectedName?: TextMatch, options?: TextMatchOptions): R;
|
|
22
|
-
toHaveDisplayValue(expectedValue: TextMatch, options?: TextMatchOptions): R;
|
|
23
|
-
toHaveProp(name: string, expectedValue?: unknown): R;
|
|
24
|
-
toHaveStyle(style: StyleProp<Style>): R;
|
|
25
|
-
toHaveTextContent(expectedText: TextMatch, options?: TextMatchOptions): R;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// Implicit Jest global `expect`.
|
|
29
|
-
declare global {
|
|
30
|
-
namespace jest {
|
|
31
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
32
|
-
interface Matchers<R, T = {}> extends JestNativeMatchers<R> {}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// Explicit `@jest/globals` `expect` matchers.
|
|
37
|
-
declare module '@jest/expect' {
|
|
38
|
-
interface Matchers<R extends void | Promise<void>>
|
|
39
|
-
extends JestNativeMatchers<R> {}
|
|
40
|
-
}
|