@testing-library/react-native 12.2.2 → 12.3.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.
- package/build/config.d.ts +1 -0
- package/build/config.js.map +1 -1
- package/build/fireEvent.js +2 -1
- package/build/fireEvent.js.map +1 -1
- package/build/helpers/accessiblity.d.ts +7 -0
- package/build/helpers/accessiblity.js +73 -2
- package/build/helpers/accessiblity.js.map +1 -1
- package/build/helpers/component-tree.d.ts +7 -0
- package/build/helpers/component-tree.js +18 -0
- package/build/helpers/component-tree.js.map +1 -1
- package/build/helpers/format-default.d.ts +1 -2
- package/build/helpers/format-default.js +22 -13
- package/build/helpers/format-default.js.map +1 -1
- package/build/helpers/format.js +1 -4
- package/build/helpers/format.js.map +1 -1
- package/build/helpers/host-component-names.d.ts +5 -0
- package/build/helpers/host-component-names.js +13 -1
- package/build/helpers/host-component-names.js.map +1 -1
- package/build/helpers/matchers/accessibilityState.js +3 -3
- package/build/helpers/matchers/accessibilityState.js.map +1 -1
- package/build/helpers/matchers/accessibilityValue.js +3 -2
- package/build/helpers/matchers/accessibilityValue.js.map +1 -1
- package/build/helpers/matchers/matchLabelText.d.ts +1 -1
- package/build/helpers/matchers/matchLabelText.js +5 -8
- package/build/helpers/matchers/matchLabelText.js.map +1 -1
- package/build/helpers/matchers/matchTextContent.js +2 -2
- package/build/helpers/matchers/matchTextContent.js.map +1 -1
- package/build/helpers/{getTextContent.js → text-content.js} +1 -1
- package/build/helpers/text-content.js.map +1 -0
- package/build/helpers/text-input.d.ts +3 -0
- package/build/helpers/text-input.js +21 -0
- package/build/helpers/text-input.js.map +1 -0
- package/build/matchers/extend-expect.d.js +2 -0
- package/build/matchers/extend-expect.d.js.map +1 -0
- package/build/matchers/extend-expect.d.ts +2 -0
- package/build/matchers/extend-expect.js +26 -0
- package/build/matchers/extend-expect.js.map +1 -0
- package/build/matchers/index.d.ts +9 -0
- package/build/matchers/index.js +75 -0
- package/build/matchers/index.js.map +1 -0
- package/build/matchers/to-be-checked.d.ts +6 -0
- package/build/matchers/to-be-checked.js +31 -0
- package/build/matchers/to-be-checked.js.map +1 -0
- package/build/matchers/to-be-disabled.d.ts +10 -0
- package/build/matchers/to-be-disabled.js +52 -0
- package/build/matchers/to-be-disabled.js.map +1 -0
- package/build/matchers/to-be-empty-element.d.ts +6 -0
- package/build/matchers/to-be-empty-element.js +20 -0
- package/build/matchers/to-be-empty-element.js.map +1 -0
- package/build/matchers/to-be-on-the-screen.d.ts +6 -0
- package/build/matchers/to-be-on-the-screen.js +29 -0
- package/build/matchers/to-be-on-the-screen.js.map +1 -0
- package/build/matchers/to-be-partially-checked.d.ts +6 -0
- package/build/matchers/to-be-partially-checked.js +28 -0
- package/build/matchers/to-be-partially-checked.js.map +1 -0
- package/build/matchers/to-be-visible.d.ts +6 -0
- package/build/matchers/to-be-visible.js +56 -0
- package/build/matchers/to-be-visible.js.map +1 -0
- package/build/matchers/to-have-display-value.d.ts +7 -0
- package/build/matchers/to-have-display-value.js +26 -0
- package/build/matchers/to-have-display-value.js.map +1 -0
- package/build/matchers/to-have-prop.d.ts +6 -0
- package/build/matchers/to-have-prop.js +35 -0
- package/build/matchers/to-have-prop.js.map +1 -0
- package/build/matchers/to-have-text-content.d.ts +7 -0
- package/build/matchers/to-have-text-content.js +21 -0
- package/build/matchers/to-have-text-content.js.map +1 -0
- package/build/matchers/utils.d.ts +18 -0
- package/build/matchers/utils.js +90 -0
- package/build/matchers/utils.js.map +1 -0
- package/build/matches.d.ts +1 -1
- package/build/matches.js.map +1 -1
- package/build/queries/displayValue.js +4 -3
- package/build/queries/displayValue.js.map +1 -1
- package/build/queries/labelText.js +2 -2
- package/build/queries/labelText.js.map +1 -1
- package/build/queries/role.js +1 -1
- package/build/queries/role.js.map +1 -1
- package/build/render.d.ts +12 -48
- package/build/user-event/clear.js +2 -1
- package/build/user-event/clear.js.map +1 -1
- package/build/user-event/press/press.js +2 -1
- package/build/user-event/press/press.js.map +1 -1
- package/build/user-event/type/type.js +2 -1
- package/build/user-event/type/type.js.map +1 -1
- package/build/user-event/utils/index.d.ts +0 -1
- package/build/user-event/utils/index.js +0 -11
- package/build/user-event/utils/index.js.map +1 -1
- package/package.json +5 -21
- package/build/helpers/getTextContent.js.map +0 -1
- package/build/user-event/utils/host-components.d.ts +0 -2
- package/build/user-event/utils/host-components.js +0 -11
- package/build/user-event/utils/host-components.js.map +0 -1
- /package/build/helpers/{getTextContent.d.ts → text-content.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"press.js","names":["_act","_interopRequireDefault","require","_componentTree","_pointerEvents","_hostComponentNames","_eventBuilder","_utils","_constants","obj","__esModule","default","press","element","basePress","config","type","duration","longPress","options","isPressableText","emitTextPressEvents","
|
|
1
|
+
{"version":3,"file":"press.js","names":["_act","_interopRequireDefault","require","_componentTree","_textInput","_pointerEvents","_hostComponentNames","_eventBuilder","_utils","_constants","obj","__esModule","default","press","element","basePress","config","type","duration","longPress","options","isPressableText","emitTextPressEvents","isHostTextInput","isTextInputEditable","isPointerEventEnabled","emitTextInputPressEvents","isEnabledTouchResponder","emitPressablePressEvents","hostParentElement","getHostParent","warnAboutRealTimersIfNeeded","wait","act","dispatchEvent","EventBuilder","Common","responderGrant","responderRelease","DEFAULT_MIN_PRESS_DURATION","props","onStartShouldSetResponder","hasPressEventHandler","Boolean","onPress","onLongPress","onPressIn","onPressOut","isHostText","disabled","touch"],"sources":["../../../src/user-event/press/press.ts"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport act from '../../act';\nimport { getHostParent } from '../../helpers/component-tree';\nimport { isTextInputEditable } from '../../helpers/text-input';\nimport { isPointerEventEnabled } from '../../helpers/pointer-events';\nimport {\n isHostText,\n isHostTextInput,\n} from '../../helpers/host-component-names';\nimport { EventBuilder } from '../event-builder';\nimport { UserEventConfig, UserEventInstance } from '../setup';\nimport { dispatchEvent, wait, warnAboutRealTimersIfNeeded } from '../utils';\nimport { DEFAULT_MIN_PRESS_DURATION } from './constants';\n\nexport interface PressOptions {\n duration?: number;\n}\n\nexport async function press(\n this: UserEventInstance,\n element: ReactTestInstance\n): Promise<void> {\n await basePress(this.config, element, {\n type: 'press',\n duration: 0,\n });\n}\n\nexport async function longPress(\n this: UserEventInstance,\n element: ReactTestInstance,\n options?: PressOptions\n): Promise<void> {\n await basePress(this.config, element, {\n type: 'longPress',\n duration: options?.duration ?? 500,\n });\n}\n\ninterface BasePressOptions {\n type: 'press' | 'longPress';\n duration: number;\n}\n\nconst basePress = async (\n config: UserEventConfig,\n element: ReactTestInstance,\n options: BasePressOptions\n): Promise<void> => {\n if (isPressableText(element)) {\n await emitTextPressEvents(config, element, options);\n return;\n }\n\n if (\n isHostTextInput(element) &&\n isTextInputEditable(element) &&\n isPointerEventEnabled(element)\n ) {\n await emitTextInputPressEvents(config, element, options);\n return;\n }\n\n if (isEnabledTouchResponder(element)) {\n await emitPressablePressEvents(config, element, options);\n return;\n }\n\n const hostParentElement = getHostParent(element);\n if (!hostParentElement) {\n return;\n }\n\n await basePress(config, hostParentElement, options);\n};\n\nconst emitPressablePressEvents = async (\n config: UserEventConfig,\n element: ReactTestInstance,\n options: BasePressOptions\n) => {\n warnAboutRealTimersIfNeeded();\n\n await wait(config);\n\n await act(async () => {\n dispatchEvent(\n element,\n 'responderGrant',\n EventBuilder.Common.responderGrant()\n );\n\n await wait(config, options.duration);\n\n dispatchEvent(\n element,\n 'responderRelease',\n EventBuilder.Common.responderRelease()\n );\n\n // React Native will wait for minimal delay of DEFAULT_MIN_PRESS_DURATION\n // before emitting the `pressOut` event. We need to wait here, so that\n // `press()` function does not return before that.\n if (DEFAULT_MIN_PRESS_DURATION - options.duration > 0) {\n await wait(config, DEFAULT_MIN_PRESS_DURATION - options.duration);\n }\n });\n};\n\nconst isEnabledTouchResponder = (element: ReactTestInstance) => {\n return (\n isPointerEventEnabled(element) &&\n element.props.onStartShouldSetResponder?.()\n );\n};\n\nconst isPressableText = (element: ReactTestInstance) => {\n const hasPressEventHandler = Boolean(\n element.props.onPress ||\n element.props.onLongPress ||\n element.props.onPressIn ||\n element.props.onPressOut\n );\n\n return (\n isHostText(element) &&\n isPointerEventEnabled(element) &&\n !element.props.disabled &&\n hasPressEventHandler\n );\n};\n\n/**\n * Dispatches a press event sequence for Text.\n */\nasync function emitTextPressEvents(\n config: UserEventConfig,\n element: ReactTestInstance,\n options: BasePressOptions\n) {\n await wait(config);\n dispatchEvent(element, 'pressIn', EventBuilder.Common.touch());\n\n // Emit either `press` or `longPress`.\n dispatchEvent(element, options.type, EventBuilder.Common.touch());\n\n await wait(config, options.duration);\n dispatchEvent(element, 'pressOut', EventBuilder.Common.touch());\n}\n\n/**\n * Dispatches a press event sequence for TextInput.\n */\nasync function emitTextInputPressEvents(\n config: UserEventConfig,\n element: ReactTestInstance,\n options: BasePressOptions\n) {\n await wait(config);\n dispatchEvent(element, 'pressIn', EventBuilder.Common.touch());\n\n // Note: TextInput does not have `onPress`/`onLongPress` props.\n\n await wait(config, options.duration);\n dispatchEvent(element, 'pressOut', EventBuilder.Common.touch());\n}\n"],"mappings":";;;;;;;AACA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAIA,IAAAK,aAAA,GAAAL,OAAA;AAEA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AAAyD,SAAAD,uBAAAS,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAMlD,eAAeG,KAAKA,CAEzBC,OAA0B,EACX;EACf,MAAMC,SAAS,CAAC,IAAI,CAACC,MAAM,EAAEF,OAAO,EAAE;IACpCG,IAAI,EAAE,OAAO;IACbC,QAAQ,EAAE;EACZ,CAAC,CAAC;AACJ;AAEO,eAAeC,SAASA,CAE7BL,OAA0B,EAC1BM,OAAsB,EACP;EACf,MAAML,SAAS,CAAC,IAAI,CAACC,MAAM,EAAEF,OAAO,EAAE;IACpCG,IAAI,EAAE,WAAW;IACjBC,QAAQ,EAAEE,OAAO,EAAEF,QAAQ,IAAI;EACjC,CAAC,CAAC;AACJ;AAOA,MAAMH,SAAS,GAAG,MAAAA,CAChBC,MAAuB,EACvBF,OAA0B,EAC1BM,OAAyB,KACP;EAClB,IAAIC,eAAe,CAACP,OAAO,CAAC,EAAE;IAC5B,MAAMQ,mBAAmB,CAACN,MAAM,EAAEF,OAAO,EAAEM,OAAO,CAAC;IACnD;EACF;EAEA,IACE,IAAAG,mCAAe,EAACT,OAAO,CAAC,IACxB,IAAAU,8BAAmB,EAACV,OAAO,CAAC,IAC5B,IAAAW,oCAAqB,EAACX,OAAO,CAAC,EAC9B;IACA,MAAMY,wBAAwB,CAACV,MAAM,EAAEF,OAAO,EAAEM,OAAO,CAAC;IACxD;EACF;EAEA,IAAIO,uBAAuB,CAACb,OAAO,CAAC,EAAE;IACpC,MAAMc,wBAAwB,CAACZ,MAAM,EAAEF,OAAO,EAAEM,OAAO,CAAC;IACxD;EACF;EAEA,MAAMS,iBAAiB,GAAG,IAAAC,4BAAa,EAAChB,OAAO,CAAC;EAChD,IAAI,CAACe,iBAAiB,EAAE;IACtB;EACF;EAEA,MAAMd,SAAS,CAACC,MAAM,EAAEa,iBAAiB,EAAET,OAAO,CAAC;AACrD,CAAC;AAED,MAAMQ,wBAAwB,GAAG,MAAAA,CAC/BZ,MAAuB,EACvBF,OAA0B,EAC1BM,OAAyB,KACtB;EACH,IAAAW,kCAA2B,EAAC,CAAC;EAE7B,MAAM,IAAAC,WAAI,EAAChB,MAAM,CAAC;EAElB,MAAM,IAAAiB,YAAG,EAAC,YAAY;IACpB,IAAAC,oBAAa,EACXpB,OAAO,EACP,gBAAgB,EAChBqB,0BAAY,CAACC,MAAM,CAACC,cAAc,CAAC,CACrC,CAAC;IAED,MAAM,IAAAL,WAAI,EAAChB,MAAM,EAAEI,OAAO,CAACF,QAAQ,CAAC;IAEpC,IAAAgB,oBAAa,EACXpB,OAAO,EACP,kBAAkB,EAClBqB,0BAAY,CAACC,MAAM,CAACE,gBAAgB,CAAC,CACvC,CAAC;;IAED;IACA;IACA;IACA,IAAIC,qCAA0B,GAAGnB,OAAO,CAACF,QAAQ,GAAG,CAAC,EAAE;MACrD,MAAM,IAAAc,WAAI,EAAChB,MAAM,EAAEuB,qCAA0B,GAAGnB,OAAO,CAACF,QAAQ,CAAC;IACnE;EACF,CAAC,CAAC;AACJ,CAAC;AAED,MAAMS,uBAAuB,GAAIb,OAA0B,IAAK;EAC9D,OACE,IAAAW,oCAAqB,EAACX,OAAO,CAAC,IAC9BA,OAAO,CAAC0B,KAAK,CAACC,yBAAyB,GAAG,CAAC;AAE/C,CAAC;AAED,MAAMpB,eAAe,GAAIP,OAA0B,IAAK;EACtD,MAAM4B,oBAAoB,GAAGC,OAAO,CAClC7B,OAAO,CAAC0B,KAAK,CAACI,OAAO,IACnB9B,OAAO,CAAC0B,KAAK,CAACK,WAAW,IACzB/B,OAAO,CAAC0B,KAAK,CAACM,SAAS,IACvBhC,OAAO,CAAC0B,KAAK,CAACO,UAClB,CAAC;EAED,OACE,IAAAC,8BAAU,EAAClC,OAAO,CAAC,IACnB,IAAAW,oCAAqB,EAACX,OAAO,CAAC,IAC9B,CAACA,OAAO,CAAC0B,KAAK,CAACS,QAAQ,IACvBP,oBAAoB;AAExB,CAAC;;AAED;AACA;AACA;AACA,eAAepB,mBAAmBA,CAChCN,MAAuB,EACvBF,OAA0B,EAC1BM,OAAyB,EACzB;EACA,MAAM,IAAAY,WAAI,EAAChB,MAAM,CAAC;EAClB,IAAAkB,oBAAa,EAACpB,OAAO,EAAE,SAAS,EAAEqB,0BAAY,CAACC,MAAM,CAACc,KAAK,CAAC,CAAC,CAAC;;EAE9D;EACA,IAAAhB,oBAAa,EAACpB,OAAO,EAAEM,OAAO,CAACH,IAAI,EAAEkB,0BAAY,CAACC,MAAM,CAACc,KAAK,CAAC,CAAC,CAAC;EAEjE,MAAM,IAAAlB,WAAI,EAAChB,MAAM,EAAEI,OAAO,CAACF,QAAQ,CAAC;EACpC,IAAAgB,oBAAa,EAACpB,OAAO,EAAE,UAAU,EAAEqB,0BAAY,CAACC,MAAM,CAACc,KAAK,CAAC,CAAC,CAAC;AACjE;;AAEA;AACA;AACA;AACA,eAAexB,wBAAwBA,CACrCV,MAAuB,EACvBF,OAA0B,EAC1BM,OAAyB,EACzB;EACA,MAAM,IAAAY,WAAI,EAAChB,MAAM,CAAC;EAClB,IAAAkB,oBAAa,EAACpB,OAAO,EAAE,SAAS,EAAEqB,0BAAY,CAACC,MAAM,CAACc,KAAK,CAAC,CAAC,CAAC;;EAE9D;;EAEA,MAAM,IAAAlB,WAAI,EAAChB,MAAM,EAAEI,OAAO,CAACF,QAAQ,CAAC;EACpC,IAAAgB,oBAAa,EAACpB,OAAO,EAAE,UAAU,EAAEqB,0BAAY,CAACC,MAAM,CAACc,KAAK,CAAC,CAAC,CAAC;AACjE"}
|
|
@@ -8,6 +8,7 @@ exports.type = type;
|
|
|
8
8
|
var _hostComponentNames = require("../../helpers/host-component-names");
|
|
9
9
|
var _eventBuilder = require("../event-builder");
|
|
10
10
|
var _errors = require("../../helpers/errors");
|
|
11
|
+
var _textInput = require("../../helpers/text-input");
|
|
11
12
|
var _pointerEvents = require("../../helpers/pointer-events");
|
|
12
13
|
var _utils = require("../utils");
|
|
13
14
|
var _parseKeys = require("./parseKeys");
|
|
@@ -17,7 +18,7 @@ async function type(element, text, options) {
|
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
// Skip events if the element is disabled
|
|
20
|
-
if (element
|
|
21
|
+
if (!(0, _textInput.isTextInputEditable)(element) || !(0, _pointerEvents.isPointerEventEnabled)(element)) {
|
|
21
22
|
return;
|
|
22
23
|
}
|
|
23
24
|
const keys = (0, _parseKeys.parseKeys)(text);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.js","names":["_hostComponentNames","require","_eventBuilder","_errors","_pointerEvents","_utils","_parseKeys","type","element","text","options","isHostTextInput","ErrorWithStack","
|
|
1
|
+
{"version":3,"file":"type.js","names":["_hostComponentNames","require","_eventBuilder","_errors","_textInput","_pointerEvents","_utils","_parseKeys","type","element","text","options","isHostTextInput","ErrorWithStack","isTextInputEditable","isPointerEventEnabled","keys","parseKeys","skipPress","dispatchEvent","EventBuilder","Common","touch","focus","wait","config","currentText","props","value","defaultValue","key","previousText","applyKey","emitTypingEvents","finalText","submitEditing","TextInput","endEditing","blur","isMultiline","multiline","keyPress","textInput","change","selectionRange","start","length","end","selectionChange","contentSize","getTextContentSize","contentSizeChange","slice"],"sources":["../../../src/user-event/type/type.ts"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport { isHostTextInput } from '../../helpers/host-component-names';\nimport { EventBuilder } from '../event-builder';\nimport { ErrorWithStack } from '../../helpers/errors';\nimport { isTextInputEditable } from '../../helpers/text-input';\nimport { isPointerEventEnabled } from '../../helpers/pointer-events';\nimport { UserEventConfig, UserEventInstance } from '../setup';\nimport { dispatchEvent, wait, getTextContentSize } from '../utils';\nimport { parseKeys } from './parseKeys';\n\nexport interface TypeOptions {\n skipPress?: boolean;\n submitEditing?: boolean;\n}\n\nexport async function type(\n this: UserEventInstance,\n element: ReactTestInstance,\n text: string,\n options?: TypeOptions\n): Promise<void> {\n if (!isHostTextInput(element)) {\n throw new ErrorWithStack(\n `type() works only with host \"TextInput\" elements. Passed element has type \"${element.type}\".`,\n type\n );\n }\n\n // Skip events if the element is disabled\n if (!isTextInputEditable(element) || !isPointerEventEnabled(element)) {\n return;\n }\n\n const keys = parseKeys(text);\n\n if (!options?.skipPress) {\n dispatchEvent(element, 'pressIn', EventBuilder.Common.touch());\n }\n\n dispatchEvent(element, 'focus', EventBuilder.Common.focus());\n\n if (!options?.skipPress) {\n await wait(this.config);\n dispatchEvent(element, 'pressOut', EventBuilder.Common.touch());\n }\n\n let currentText = element.props.value ?? element.props.defaultValue ?? '';\n for (const key of keys) {\n const previousText = element.props.value ?? currentText;\n currentText = applyKey(previousText, key);\n\n await emitTypingEvents(\n this.config,\n element,\n key,\n currentText,\n previousText\n );\n }\n\n const finalText = element.props.value ?? currentText;\n await wait(this.config);\n\n if (options?.submitEditing) {\n dispatchEvent(\n element,\n 'submitEditing',\n EventBuilder.TextInput.submitEditing(finalText)\n );\n }\n\n dispatchEvent(\n element,\n 'endEditing',\n EventBuilder.TextInput.endEditing(finalText)\n );\n\n dispatchEvent(element, 'blur', EventBuilder.Common.blur());\n}\n\nexport async function emitTypingEvents(\n config: UserEventConfig,\n element: ReactTestInstance,\n key: string,\n currentText: string,\n previousText: string\n) {\n const isMultiline = element.props.multiline === true;\n\n await wait(config);\n dispatchEvent(element, 'keyPress', EventBuilder.TextInput.keyPress(key));\n\n // According to the docs only multiline TextInput emits textInput event\n // @see: https://github.com/facebook/react-native/blob/42a2898617da1d7a98ef574a5b9e500681c8f738/packages/react-native/Libraries/Components/TextInput/TextInput.d.ts#L754\n if (isMultiline) {\n dispatchEvent(\n element,\n 'textInput',\n EventBuilder.TextInput.textInput(currentText, previousText)\n );\n }\n\n dispatchEvent(element, 'change', EventBuilder.TextInput.change(currentText));\n dispatchEvent(element, 'changeText', currentText);\n\n const selectionRange = {\n start: currentText.length,\n end: currentText.length,\n };\n dispatchEvent(\n element,\n 'selectionChange',\n EventBuilder.TextInput.selectionChange(selectionRange)\n );\n\n // According to the docs only multiline TextInput emits contentSizeChange event\n // @see: https://reactnative.dev/docs/textinput#oncontentsizechange\n if (isMultiline) {\n const contentSize = getTextContentSize(currentText);\n dispatchEvent(\n element,\n 'contentSizeChange',\n EventBuilder.TextInput.contentSizeChange(contentSize)\n );\n }\n}\n\nfunction applyKey(text: string, key: string) {\n if (key === 'Enter') {\n return `${text}\\n`;\n }\n\n if (key === 'Backspace') {\n return text.slice(0, -1);\n }\n\n return text + key;\n}\n"],"mappings":"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"}
|
|
@@ -25,17 +25,6 @@ Object.keys(_dispatchEvent).forEach(function (key) {
|
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
|
-
var _hostComponents = require("./host-components");
|
|
29
|
-
Object.keys(_hostComponents).forEach(function (key) {
|
|
30
|
-
if (key === "default" || key === "__esModule") return;
|
|
31
|
-
if (key in exports && exports[key] === _hostComponents[key]) return;
|
|
32
|
-
Object.defineProperty(exports, key, {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
get: function () {
|
|
35
|
-
return _hostComponents[key];
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
28
|
var _textRange = require("./text-range");
|
|
40
29
|
Object.keys(_textRange).forEach(function (key) {
|
|
41
30
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_contentSize","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_dispatchEvent","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_contentSize","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_dispatchEvent","_textRange","_wait","_warnAboutRealTimers"],"sources":["../../../src/user-event/utils/index.ts"],"sourcesContent":["export * from './content-size';\nexport * from './dispatch-event';\nexport * from './text-range';\nexport * from './wait';\nexport * from './warn-about-real-timers';\n"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,YAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,YAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,YAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,cAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,cAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,cAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,cAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,UAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,UAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,UAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,KAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,KAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,KAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,KAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,oBAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,oBAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,oBAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,oBAAA,CAAAR,GAAA;IAAA;EAAA;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@testing-library/react-native",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.3.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",
|
|
@@ -34,14 +34,13 @@
|
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@babel/cli": "^7.19.3",
|
|
36
36
|
"@babel/core": "^7.20.2",
|
|
37
|
-
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
38
37
|
"@babel/plugin-transform-flow-strip-types": "^7.19.0",
|
|
39
38
|
"@babel/preset-env": "^7.20.2",
|
|
40
39
|
"@babel/preset-flow": "^7.18.6",
|
|
41
40
|
"@babel/preset-react": "^7.18.6",
|
|
42
41
|
"@babel/preset-typescript": "^7.18.6",
|
|
43
42
|
"@callstack/eslint-config": "^13.0.1",
|
|
44
|
-
"@
|
|
43
|
+
"@relmify/jest-serializer-strip-ansi": "^1.0.2",
|
|
45
44
|
"@types/jest": "^29.2.3",
|
|
46
45
|
"@types/react": "^18.2.15",
|
|
47
46
|
"@types/react-test-renderer": "^18.0.0",
|
|
@@ -59,7 +58,9 @@
|
|
|
59
58
|
"typescript": "^5.0.2"
|
|
60
59
|
},
|
|
61
60
|
"dependencies": {
|
|
62
|
-
"
|
|
61
|
+
"jest-matcher-utils": "^29.6.2",
|
|
62
|
+
"pretty-format": "^29.6.2",
|
|
63
|
+
"redent": "^3.0.0"
|
|
63
64
|
},
|
|
64
65
|
"peerDependencies": {
|
|
65
66
|
"jest": ">=28.0.0",
|
|
@@ -88,22 +89,5 @@
|
|
|
88
89
|
"build:ts:watch": "yarn build:ts --watch --preserveWatchOutput",
|
|
89
90
|
"build": "yarn clean && yarn build:js && yarn build:ts && yarn copy-flowtypes",
|
|
90
91
|
"prepare": "yarn build"
|
|
91
|
-
},
|
|
92
|
-
"jest": {
|
|
93
|
-
"preset": "./jest-preset",
|
|
94
|
-
"setupFilesAfterEnv": [
|
|
95
|
-
"./jest-setup.ts"
|
|
96
|
-
],
|
|
97
|
-
"testPathIgnorePatterns": [
|
|
98
|
-
"timerUtils",
|
|
99
|
-
"examples/",
|
|
100
|
-
"experiments-app/",
|
|
101
|
-
"experiments-rtl/"
|
|
102
|
-
],
|
|
103
|
-
"testTimeout": 60000,
|
|
104
|
-
"transformIgnorePatterns": [
|
|
105
|
-
"/node_modules/(?!(@react-native|react-native)/).*/"
|
|
106
|
-
],
|
|
107
|
-
"clearMocks": true
|
|
108
92
|
}
|
|
109
93
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getTextContent.js","names":["getTextContent","element","result","children","forEach","child","push","join"],"sources":["../../src/helpers/getTextContent.ts"],"sourcesContent":["import type { ReactTestInstance } from 'react-test-renderer';\n\nexport function getTextContent(\n element: ReactTestInstance | string | null\n): string {\n if (!element) {\n return '';\n }\n\n if (typeof element === 'string') {\n return element;\n }\n\n const result: string[] = [];\n element.children?.forEach((child) => {\n result.push(getTextContent(child));\n });\n\n return result.join('');\n}\n"],"mappings":";;;;;;AAEO,SAASA,cAAcA,CAC5BC,OAA0C,EAClC;EACR,IAAI,CAACA,OAAO,EAAE;IACZ,OAAO,EAAE;EACX;EAEA,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;IAC/B,OAAOA,OAAO;EAChB;EAEA,MAAMC,MAAgB,GAAG,EAAE;EAC3BD,OAAO,CAACE,QAAQ,EAAEC,OAAO,CAAEC,KAAK,IAAK;IACnCH,MAAM,CAACI,IAAI,CAACN,cAAc,CAACK,KAAK,CAAC,CAAC;EACpC,CAAC,CAAC;EAEF,OAAOH,MAAM,CAACK,IAAI,CAAC,EAAE,CAAC;AACxB"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.isEditableTextInput = isEditableTextInput;
|
|
7
|
-
var _hostComponentNames = require("../../helpers/host-component-names");
|
|
8
|
-
function isEditableTextInput(element) {
|
|
9
|
-
return (0, _hostComponentNames.isHostTextInput)(element) && element.props.editable !== false;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=host-components.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"host-components.js","names":["_hostComponentNames","require","isEditableTextInput","element","isHostTextInput","props","editable"],"sources":["../../../src/user-event/utils/host-components.ts"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport { isHostTextInput } from '../../helpers/host-component-names';\n\nexport function isEditableTextInput(element: ReactTestInstance) {\n return isHostTextInput(element) && element.props.editable !== false;\n}\n"],"mappings":";;;;;;AACA,IAAAA,mBAAA,GAAAC,OAAA;AAEO,SAASC,mBAAmBA,CAACC,OAA0B,EAAE;EAC9D,OAAO,IAAAC,mCAAe,EAACD,OAAO,CAAC,IAAIA,OAAO,CAACE,KAAK,CAACC,QAAQ,KAAK,KAAK;AACrE"}
|
|
File without changes
|