@testing-library/react-native 13.0.0 → 13.1.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/README.md +1 -2
- package/build/act.d.ts +1 -1
- package/build/act.js +1 -3
- package/build/act.js.map +1 -1
- package/build/config.d.ts +1 -1
- package/build/config.js.map +1 -1
- package/build/event-handler.d.ts +7 -0
- package/build/event-handler.js +30 -0
- package/build/event-handler.js.map +1 -0
- package/build/fire-event.d.ts +3 -3
- package/build/fire-event.js +4 -14
- package/build/fire-event.js.map +1 -1
- package/build/helpers/accessibility.d.ts +1 -1
- package/build/helpers/accessibility.js.map +1 -1
- package/build/helpers/component-tree.d.ts +1 -1
- package/build/helpers/component-tree.js.map +1 -1
- package/build/helpers/debug.d.ts +3 -3
- package/build/helpers/debug.js +8 -11
- package/build/helpers/debug.js.map +1 -1
- package/build/helpers/errors.js +4 -4
- package/build/helpers/errors.js.map +1 -1
- package/build/helpers/find-all.d.ts +2 -2
- package/build/helpers/find-all.js.map +1 -1
- package/build/helpers/format-element.d.ts +18 -0
- package/build/helpers/format-element.js +81 -0
- package/build/helpers/format-element.js.map +1 -0
- package/build/helpers/host-component-names.d.ts +2 -2
- package/build/helpers/host-component-names.js.map +1 -1
- package/build/helpers/logger.d.ts +6 -0
- package/build/helpers/logger.js +37 -0
- package/build/helpers/logger.js.map +1 -0
- package/build/helpers/{format-default.d.ts → map-props.d.ts} +1 -0
- package/build/helpers/{format-default.js → map-props.js} +2 -2
- package/build/helpers/map-props.js.map +1 -0
- package/build/helpers/matchers/match-accessibility-state.d.ts +1 -1
- package/build/helpers/matchers/match-accessibility-state.js.map +1 -1
- package/build/helpers/matchers/match-accessibility-value.d.ts +2 -2
- package/build/helpers/matchers/match-accessibility-value.js.map +1 -1
- package/build/helpers/matchers/match-label-text.d.ts +2 -2
- package/build/helpers/matchers/match-label-text.js.map +1 -1
- package/build/helpers/matchers/match-string-prop.d.ts +1 -1
- package/build/helpers/matchers/match-string-prop.js.map +1 -1
- package/build/helpers/matchers/match-text-content.d.ts +1 -1
- package/build/helpers/matchers/match-text-content.js.map +1 -1
- package/build/helpers/object.d.ts +1 -1
- package/build/helpers/object.js.map +1 -1
- package/build/helpers/pointer-events.d.ts +1 -1
- package/build/helpers/pointer-events.js.map +1 -1
- package/build/helpers/string-validation.d.ts +1 -1
- package/build/helpers/string-validation.js.map +1 -1
- package/build/helpers/text-input.d.ts +1 -1
- package/build/helpers/text-input.js.map +1 -1
- package/build/helpers/timers.d.ts +1 -1
- package/build/helpers/timers.js.map +1 -1
- package/build/index.flow.js +28 -32
- package/build/index.js +3 -4
- package/build/index.js.map +1 -1
- package/build/matchers/extend-expect.js +2 -2
- package/build/matchers/extend-expect.js.map +1 -1
- package/build/matchers/index.d.ts +1 -1
- package/build/matchers/index.js.map +1 -1
- package/build/matchers/to-be-busy.d.ts +1 -1
- package/build/matchers/to-be-busy.js +4 -1
- package/build/matchers/to-be-busy.js.map +1 -1
- package/build/matchers/to-be-checked.js +4 -1
- package/build/matchers/to-be-checked.js.map +1 -1
- package/build/matchers/to-be-disabled.js +5 -2
- package/build/matchers/to-be-disabled.js.map +1 -1
- package/build/matchers/to-be-empty-element.d.ts +1 -1
- package/build/matchers/to-be-empty-element.js +4 -1
- package/build/matchers/to-be-empty-element.js.map +1 -1
- package/build/matchers/to-be-expanded.d.ts +1 -1
- package/build/matchers/to-be-expanded.js +5 -2
- package/build/matchers/to-be-expanded.js.map +1 -1
- package/build/matchers/to-be-on-the-screen.js +4 -1
- package/build/matchers/to-be-on-the-screen.js.map +1 -1
- package/build/matchers/to-be-partially-checked.js +4 -1
- package/build/matchers/to-be-partially-checked.js.map +1 -1
- package/build/matchers/to-be-selected.d.ts +1 -1
- package/build/matchers/to-be-selected.js +4 -1
- package/build/matchers/to-be-selected.js.map +1 -1
- package/build/matchers/to-be-visible.js +5 -2
- package/build/matchers/to-be-visible.js.map +1 -1
- package/build/matchers/to-contain-element.d.ts +1 -1
- package/build/matchers/to-contain-element.js +4 -1
- package/build/matchers/to-contain-element.js.map +1 -1
- package/build/matchers/to-have-accessibility-value.d.ts +1 -1
- package/build/matchers/to-have-accessibility-value.js.map +1 -1
- package/build/matchers/to-have-accessible-name.d.ts +1 -1
- package/build/matchers/to-have-accessible-name.js.map +1 -1
- package/build/matchers/to-have-display-value.d.ts +1 -1
- package/build/matchers/to-have-display-value.js +1 -1
- package/build/matchers/to-have-display-value.js.map +1 -1
- package/build/matchers/to-have-prop.js.map +1 -1
- package/build/matchers/to-have-style.d.ts +1 -1
- package/build/matchers/to-have-style.js.map +1 -1
- package/build/matchers/to-have-text-content.d.ts +1 -1
- package/build/matchers/to-have-text-content.js.map +1 -1
- package/build/matchers/types.d.ts +3 -3
- package/build/matchers/types.js.map +1 -1
- package/build/matchers/utils.d.ts +1 -8
- package/build/matchers/utils.js +0 -41
- package/build/matchers/utils.js.map +1 -1
- package/build/native-state.d.ts +3 -3
- package/build/native-state.js +1 -1
- package/build/native-state.js.map +1 -1
- package/build/queries/display-value.d.ts +1 -1
- package/build/queries/display-value.js.map +1 -1
- package/build/queries/hint-text.d.ts +2 -2
- package/build/queries/hint-text.js.map +1 -1
- package/build/queries/label-text.d.ts +2 -2
- package/build/queries/label-text.js.map +1 -1
- package/build/queries/make-queries.js +5 -8
- package/build/queries/make-queries.js.map +1 -1
- package/build/queries/options.d.ts +1 -1
- package/build/queries/options.js.map +1 -1
- package/build/queries/placeholder-text.d.ts +1 -1
- package/build/queries/placeholder-text.js +1 -1
- package/build/queries/placeholder-text.js.map +1 -1
- package/build/queries/role.d.ts +5 -5
- package/build/queries/role.js.map +1 -1
- package/build/queries/test-id.d.ts +1 -1
- package/build/queries/test-id.js.map +1 -1
- package/build/queries/text.d.ts +1 -1
- package/build/queries/text.js.map +1 -1
- package/build/queries/unsafe-props.d.ts +6 -12
- package/build/queries/unsafe-props.js.map +1 -1
- package/build/queries/unsafe-type.d.ts +2 -1
- package/build/queries/unsafe-type.js +2 -0
- package/build/queries/unsafe-type.js.map +1 -1
- package/build/render-act.js +2 -2
- package/build/render-act.js.map +1 -1
- package/build/render-hook.d.ts +16 -6
- package/build/render-hook.js +21 -21
- package/build/render-hook.js.map +1 -1
- package/build/render.d.ts +12 -12
- package/build/render.js +9 -18
- package/build/render.js.map +1 -1
- package/build/screen.d.ts +1 -1
- package/build/screen.js.map +1 -1
- package/build/tsconfig.release.tsbuildinfo +1 -1
- package/build/user-event/clear.d.ts +2 -2
- package/build/user-event/clear.js +2 -2
- package/build/user-event/clear.js.map +1 -1
- package/build/user-event/event-builder/base.d.ts +2 -2
- package/build/user-event/event-builder/base.js.map +1 -1
- package/build/user-event/event-builder/scroll-view.d.ts +1 -1
- package/build/user-event/event-builder/scroll-view.js.map +1 -1
- package/build/user-event/event-builder/text-input.d.ts +2 -2
- package/build/user-event/event-builder/text-input.js.map +1 -1
- package/build/user-event/index.d.ts +4 -4
- package/build/user-event/index.js.map +1 -1
- package/build/user-event/paste.d.ts +2 -2
- package/build/user-event/paste.js.map +1 -1
- package/build/user-event/press/index.d.ts +1 -1
- package/build/user-event/press/index.js.map +1 -1
- package/build/user-event/press/press.d.ts +2 -2
- package/build/user-event/press/press.js +42 -42
- package/build/user-event/press/press.js.map +1 -1
- package/build/user-event/scroll/index.d.ts +1 -1
- package/build/user-event/scroll/index.js.map +1 -1
- package/build/user-event/scroll/scroll-to.d.ts +3 -3
- package/build/user-event/scroll/scroll-to.js +1 -1
- package/build/user-event/scroll/scroll-to.js.map +1 -1
- package/build/user-event/scroll/utils.d.ts +1 -1
- package/build/user-event/scroll/utils.js.map +1 -1
- package/build/user-event/setup/setup.d.ts +4 -4
- package/build/user-event/setup/setup.js.map +1 -1
- package/build/user-event/type/type.d.ts +2 -2
- package/build/user-event/type/type.js +3 -3
- package/build/user-event/type/type.js.map +1 -1
- package/build/user-event/utils/content-size.d.ts +1 -1
- package/build/user-event/utils/content-size.js.map +1 -1
- package/build/user-event/utils/dispatch-event.d.ts +1 -1
- package/build/user-event/utils/dispatch-event.js +2 -12
- package/build/user-event/utils/dispatch-event.js.map +1 -1
- package/build/user-event/utils/wait.d.ts +6 -2
- package/build/user-event/utils/wait.js +1 -1
- package/build/user-event/utils/wait.js.map +1 -1
- package/build/wait-for-element-to-be-removed.js +1 -1
- package/build/wait-for-element-to-be-removed.js.map +1 -1
- package/build/wait-for.js +1 -4
- package/build/wait-for.js.map +1 -1
- package/build/within.d.ts +4 -4
- package/build/within.js +5 -5
- package/build/within.js.map +1 -1
- package/package.json +15 -13
- package/typings/index.flow.js +28 -32
- package/build/helpers/format-default.js.map +0 -1
- package/build/helpers/format.d.ts +0 -7
- package/build/helpers/format.js +0 -31
- package/build/helpers/format.js.map +0 -1
package/build/wait-for.js
CHANGED
|
@@ -35,7 +35,6 @@ function waitForInternal(expectation, {
|
|
|
35
35
|
// infinite loop. However, eslint isn't smart enough to know that we're
|
|
36
36
|
// setting finished inside `onDone` which will be called when we're done
|
|
37
37
|
// waiting or when we've timed out.
|
|
38
|
-
// eslint-disable-next-line no-unmodified-loop-condition
|
|
39
38
|
let fakeTimeRemaining = timeout;
|
|
40
39
|
while (!finished) {
|
|
41
40
|
if (!(0, _timers.jestFakeTimersAreEnabled)()) {
|
|
@@ -72,7 +71,6 @@ function waitForInternal(expectation, {
|
|
|
72
71
|
// to resolve before continuing. We don't need to take advantage
|
|
73
72
|
// of parallelization so we're fine.
|
|
74
73
|
// https://stackoverflow.com/a/59243586/971592
|
|
75
|
-
// eslint-disable-next-line no-await-in-loop
|
|
76
74
|
await (0, _flushMicroTasks.flushMicroTasks)();
|
|
77
75
|
}
|
|
78
76
|
} else {
|
|
@@ -110,8 +108,7 @@ function waitForInternal(expectation, {
|
|
|
110
108
|
try {
|
|
111
109
|
const result = expectation();
|
|
112
110
|
|
|
113
|
-
// @ts-
|
|
114
|
-
// eslint-disable-next-line promise/prefer-await-to-then
|
|
111
|
+
// @ts-expect-error result can be a promise
|
|
115
112
|
if (typeof result?.then === 'function') {
|
|
116
113
|
const promiseResult = result;
|
|
117
114
|
promiseStatus = 'pending';
|
package/build/wait-for.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait-for.js","names":["_config","require","_flushMicroTasks","_errors","_timers","_wrapAsync","DEFAULT_INTERVAL","waitForInternal","expectation","timeout","getConfig","asyncUtilTimeout","interval","stackTraceError","onTimeout","TypeError","Promise","resolve","reject","lastError","intervalId","finished","promiseStatus","overallTimeoutTimer","usingFakeTimers","jestFakeTimersAreEnabled","checkExpectation","fakeTimeRemaining","error","Error","copyStackTrace","handleTimeout","jest","advanceTimersByTime","flushMicroTasks","setTimeout","setInterval","checkRealTimersCallback","onDone","done","clearTimeout","clearInterval","type","result","then","promiseResult","resolvedValue","rejectedValue","String","waitFor","options","ErrorWithStack","optionsWithStackTrace","wrapAsync"],"sources":["../src/wait-for.ts"],"sourcesContent":["/* globals jest */\nimport { getConfig } from './config';\nimport { flushMicroTasks } from './flush-micro-tasks';\nimport { ErrorWithStack, copyStackTrace } from './helpers/errors';\nimport { setTimeout, clearTimeout, jestFakeTimersAreEnabled } from './helpers/timers';\nimport { wrapAsync } from './helpers/wrap-async';\n\nconst DEFAULT_INTERVAL = 50;\n\nexport type WaitForOptions = {\n timeout?: number;\n interval?: number;\n stackTraceError?: ErrorWithStack;\n onTimeout?: (error: Error) => Error;\n};\n\nfunction waitForInternal<T>(\n expectation: () => T,\n {\n timeout = getConfig().asyncUtilTimeout,\n interval = DEFAULT_INTERVAL,\n stackTraceError,\n onTimeout,\n }: WaitForOptions,\n): Promise<T> {\n if (typeof expectation !== 'function') {\n throw new TypeError('Received `expectation` arg must be a function');\n }\n\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n let lastError: unknown, intervalId: ReturnType<typeof setTimeout>;\n let finished = false;\n let promiseStatus = 'idle';\n\n let overallTimeoutTimer: NodeJS.Timeout | null = null;\n\n const usingFakeTimers = jestFakeTimersAreEnabled();\n\n if (usingFakeTimers) {\n checkExpectation();\n // this is a dangerous rule to disable because it could lead to an\n // infinite loop. However, eslint isn't smart enough to know that we're\n // setting finished inside `onDone` which will be called when we're done\n // waiting or when we've timed out.\n // eslint-disable-next-line no-unmodified-loop-condition\n let fakeTimeRemaining = timeout;\n while (!finished) {\n if (!jestFakeTimersAreEnabled()) {\n const error = new Error(\n `Changed from using fake timers to real timers while using waitFor. This is not allowed and will result in very strange behavior. Please ensure you're awaiting all async things your test is doing before changing to real timers. For more info, please go to https://github.com/testing-library/dom-testing-library/issues/830`,\n );\n if (stackTraceError) {\n copyStackTrace(error, stackTraceError);\n }\n reject(error);\n return;\n }\n\n // when fake timers are used we want to simulate the interval time passing\n if (fakeTimeRemaining <= 0) {\n handleTimeout();\n return;\n } else {\n fakeTimeRemaining -= interval;\n }\n\n // we *could* (maybe should?) use `advanceTimersToNextTimer` but it's\n // possible that could make this loop go on forever if someone is using\n // third party code that's setting up recursive timers so rapidly that\n // the user's timer's don't get a chance to resolve. So we'll advance\n // by an interval instead. (We have a test for this case).\n jest.advanceTimersByTime(interval);\n\n // It's really important that checkExpectation is run *before* we flush\n // in-flight promises. To be honest, I'm not sure why, and I can't quite\n // think of a way to reproduce the problem in a test, but I spent\n // an entire day banging my head against a wall on this.\n checkExpectation();\n\n // In this rare case, we *need* to wait for in-flight promises\n // to resolve before continuing. We don't need to take advantage\n // of parallelization so we're fine.\n // https://stackoverflow.com/a/59243586/971592\n // eslint-disable-next-line no-await-in-loop\n await flushMicroTasks();\n }\n } else {\n overallTimeoutTimer = setTimeout(handleTimeout, timeout);\n intervalId = setInterval(checkRealTimersCallback, interval);\n checkExpectation();\n }\n\n function onDone(done: { type: 'result'; result: T } | { type: 'error'; error: unknown }) {\n finished = true;\n if (overallTimeoutTimer) {\n clearTimeout(overallTimeoutTimer);\n }\n\n if (!usingFakeTimers) {\n clearInterval(intervalId);\n }\n\n if (done.type === 'error') {\n reject(done.error);\n } else {\n resolve(done.result);\n }\n }\n\n function checkRealTimersCallback() {\n if (jestFakeTimersAreEnabled()) {\n const error = new Error(\n `Changed from using real timers to fake timers while using waitFor. This is not allowed and will result in very strange behavior. Please ensure you're awaiting all async things your test is doing before changing to fake timers. For more info, please go to https://github.com/testing-library/dom-testing-library/issues/830`,\n );\n if (stackTraceError) {\n copyStackTrace(error, stackTraceError);\n }\n return reject(error);\n } else {\n return checkExpectation();\n }\n }\n\n function checkExpectation() {\n if (promiseStatus === 'pending') return;\n try {\n const result = expectation();\n\n // @ts-ignore result can be a promise\n // eslint-disable-next-line promise/prefer-await-to-then\n if (typeof result?.then === 'function') {\n const promiseResult: Promise<T> = result as any;\n promiseStatus = 'pending';\n // eslint-disable-next-line promise/catch-or-return, promise/prefer-await-to-then\n promiseResult.then(\n (resolvedValue) => {\n promiseStatus = 'resolved';\n onDone({ type: 'result', result: resolvedValue });\n return;\n },\n (rejectedValue) => {\n promiseStatus = 'rejected';\n lastError = rejectedValue;\n return;\n },\n );\n } else {\n onDone({ type: 'result', result: result });\n }\n // If `callback` throws, wait for the next mutation, interval, or timeout.\n } catch (error) {\n // Save the most recent callback error to reject the promise with it in the event of a timeout\n lastError = error;\n }\n }\n\n function handleTimeout() {\n let error: Error;\n if (lastError) {\n if (lastError instanceof Error) {\n error = lastError;\n } else {\n error = new Error(String(lastError));\n }\n\n if (stackTraceError) {\n copyStackTrace(error, stackTraceError);\n }\n } else {\n error = new Error('Timed out in waitFor.');\n if (stackTraceError) {\n copyStackTrace(error, stackTraceError);\n }\n }\n if (typeof onTimeout === 'function') {\n const result = onTimeout(error);\n if (result) {\n error = result;\n }\n }\n onDone({ type: 'error', error });\n }\n });\n}\n\nexport default function waitFor<T>(expectation: () => T, options?: WaitForOptions): Promise<T> {\n // Being able to display a useful stack trace requires generating it before doing anything async\n const stackTraceError = new ErrorWithStack('STACK_TRACE_ERROR', waitFor);\n const optionsWithStackTrace = { stackTraceError, ...options };\n\n return wrapAsync(() => waitForInternal(expectation, optionsWithStackTrace));\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"wait-for.js","names":["_config","require","_flushMicroTasks","_errors","_timers","_wrapAsync","DEFAULT_INTERVAL","waitForInternal","expectation","timeout","getConfig","asyncUtilTimeout","interval","stackTraceError","onTimeout","TypeError","Promise","resolve","reject","lastError","intervalId","finished","promiseStatus","overallTimeoutTimer","usingFakeTimers","jestFakeTimersAreEnabled","checkExpectation","fakeTimeRemaining","error","Error","copyStackTrace","handleTimeout","jest","advanceTimersByTime","flushMicroTasks","setTimeout","setInterval","checkRealTimersCallback","onDone","done","clearTimeout","clearInterval","type","result","then","promiseResult","resolvedValue","rejectedValue","String","waitFor","options","ErrorWithStack","optionsWithStackTrace","wrapAsync"],"sources":["../src/wait-for.ts"],"sourcesContent":["/* globals jest */\nimport { getConfig } from './config';\nimport { flushMicroTasks } from './flush-micro-tasks';\nimport { copyStackTrace, ErrorWithStack } from './helpers/errors';\nimport { clearTimeout, jestFakeTimersAreEnabled, setTimeout } from './helpers/timers';\nimport { wrapAsync } from './helpers/wrap-async';\n\nconst DEFAULT_INTERVAL = 50;\n\nexport type WaitForOptions = {\n timeout?: number;\n interval?: number;\n stackTraceError?: ErrorWithStack;\n onTimeout?: (error: Error) => Error;\n};\n\nfunction waitForInternal<T>(\n expectation: () => T,\n {\n timeout = getConfig().asyncUtilTimeout,\n interval = DEFAULT_INTERVAL,\n stackTraceError,\n onTimeout,\n }: WaitForOptions,\n): Promise<T> {\n if (typeof expectation !== 'function') {\n throw new TypeError('Received `expectation` arg must be a function');\n }\n\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n let lastError: unknown, intervalId: ReturnType<typeof setTimeout>;\n let finished = false;\n let promiseStatus = 'idle';\n\n let overallTimeoutTimer: NodeJS.Timeout | null = null;\n\n const usingFakeTimers = jestFakeTimersAreEnabled();\n\n if (usingFakeTimers) {\n checkExpectation();\n // this is a dangerous rule to disable because it could lead to an\n // infinite loop. However, eslint isn't smart enough to know that we're\n // setting finished inside `onDone` which will be called when we're done\n // waiting or when we've timed out.\n let fakeTimeRemaining = timeout;\n while (!finished) {\n if (!jestFakeTimersAreEnabled()) {\n const error = new Error(\n `Changed from using fake timers to real timers while using waitFor. This is not allowed and will result in very strange behavior. Please ensure you're awaiting all async things your test is doing before changing to real timers. For more info, please go to https://github.com/testing-library/dom-testing-library/issues/830`,\n );\n if (stackTraceError) {\n copyStackTrace(error, stackTraceError);\n }\n reject(error);\n return;\n }\n\n // when fake timers are used we want to simulate the interval time passing\n if (fakeTimeRemaining <= 0) {\n handleTimeout();\n return;\n } else {\n fakeTimeRemaining -= interval;\n }\n\n // we *could* (maybe should?) use `advanceTimersToNextTimer` but it's\n // possible that could make this loop go on forever if someone is using\n // third party code that's setting up recursive timers so rapidly that\n // the user's timer's don't get a chance to resolve. So we'll advance\n // by an interval instead. (We have a test for this case).\n jest.advanceTimersByTime(interval);\n\n // It's really important that checkExpectation is run *before* we flush\n // in-flight promises. To be honest, I'm not sure why, and I can't quite\n // think of a way to reproduce the problem in a test, but I spent\n // an entire day banging my head against a wall on this.\n checkExpectation();\n\n // In this rare case, we *need* to wait for in-flight promises\n // to resolve before continuing. We don't need to take advantage\n // of parallelization so we're fine.\n // https://stackoverflow.com/a/59243586/971592\n await flushMicroTasks();\n }\n } else {\n overallTimeoutTimer = setTimeout(handleTimeout, timeout);\n intervalId = setInterval(checkRealTimersCallback, interval);\n checkExpectation();\n }\n\n function onDone(done: { type: 'result'; result: T } | { type: 'error'; error: unknown }) {\n finished = true;\n if (overallTimeoutTimer) {\n clearTimeout(overallTimeoutTimer);\n }\n\n if (!usingFakeTimers) {\n clearInterval(intervalId);\n }\n\n if (done.type === 'error') {\n reject(done.error);\n } else {\n resolve(done.result);\n }\n }\n\n function checkRealTimersCallback() {\n if (jestFakeTimersAreEnabled()) {\n const error = new Error(\n `Changed from using real timers to fake timers while using waitFor. This is not allowed and will result in very strange behavior. Please ensure you're awaiting all async things your test is doing before changing to fake timers. For more info, please go to https://github.com/testing-library/dom-testing-library/issues/830`,\n );\n if (stackTraceError) {\n copyStackTrace(error, stackTraceError);\n }\n return reject(error);\n } else {\n return checkExpectation();\n }\n }\n\n function checkExpectation() {\n if (promiseStatus === 'pending') return;\n try {\n const result = expectation();\n\n // @ts-expect-error result can be a promise\n if (typeof result?.then === 'function') {\n const promiseResult: Promise<T> = result as unknown as Promise<T>;\n promiseStatus = 'pending';\n // eslint-disable-next-line promise/catch-or-return, promise/prefer-await-to-then\n promiseResult.then(\n (resolvedValue) => {\n promiseStatus = 'resolved';\n onDone({ type: 'result', result: resolvedValue });\n return;\n },\n (rejectedValue) => {\n promiseStatus = 'rejected';\n lastError = rejectedValue;\n return;\n },\n );\n } else {\n onDone({ type: 'result', result: result });\n }\n // If `callback` throws, wait for the next mutation, interval, or timeout.\n } catch (error) {\n // Save the most recent callback error to reject the promise with it in the event of a timeout\n lastError = error;\n }\n }\n\n function handleTimeout() {\n let error: Error;\n if (lastError) {\n if (lastError instanceof Error) {\n error = lastError;\n } else {\n error = new Error(String(lastError));\n }\n\n if (stackTraceError) {\n copyStackTrace(error, stackTraceError);\n }\n } else {\n error = new Error('Timed out in waitFor.');\n if (stackTraceError) {\n copyStackTrace(error, stackTraceError);\n }\n }\n if (typeof onTimeout === 'function') {\n const result = onTimeout(error);\n if (result) {\n error = result;\n }\n }\n onDone({ type: 'error', error });\n }\n });\n}\n\nexport default function waitFor<T>(expectation: () => T, options?: WaitForOptions): Promise<T> {\n // Being able to display a useful stack trace requires generating it before doing anything async\n const stackTraceError = new ErrorWithStack('STACK_TRACE_ERROR', waitFor);\n const optionsWithStackTrace = { stackTraceError, ...options };\n\n return wrapAsync(() => waitForInternal(expectation, optionsWithStackTrace));\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/within.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { ReactTestInstance } from 'react-test-renderer';
|
|
2
2
|
export declare function within(instance: ReactTestInstance): {
|
|
3
3
|
UNSAFE_getByProps: (props: {
|
|
4
|
-
[
|
|
4
|
+
[x: string]: unknown;
|
|
5
5
|
}) => ReactTestInstance;
|
|
6
6
|
UNSAFE_getAllByProps: (props: {
|
|
7
|
-
[
|
|
7
|
+
[x: string]: unknown;
|
|
8
8
|
}) => Array<ReactTestInstance>;
|
|
9
9
|
UNSAFE_queryByProps: (props: {
|
|
10
|
-
[
|
|
10
|
+
[x: string]: unknown;
|
|
11
11
|
}) => ReactTestInstance | null;
|
|
12
12
|
UNSAFE_queryAllByProps: (props: {
|
|
13
|
-
[
|
|
13
|
+
[x: string]: unknown;
|
|
14
14
|
}) => Array<ReactTestInstance>;
|
|
15
15
|
UNSAFE_getByType: <P>(type: React.ComponentType<P>) => ReactTestInstance;
|
|
16
16
|
UNSAFE_getAllByType: <P>(type: React.ComponentType<P>) => Array<ReactTestInstance>;
|
package/build/within.js
CHANGED
|
@@ -5,15 +5,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getQueriesForElement = void 0;
|
|
7
7
|
exports.within = within;
|
|
8
|
-
var _text = require("./queries/text");
|
|
9
|
-
var _testId = require("./queries/test-id");
|
|
10
8
|
var _displayValue = require("./queries/display-value");
|
|
11
|
-
var _placeholderText = require("./queries/placeholder-text");
|
|
12
|
-
var _labelText = require("./queries/label-text");
|
|
13
9
|
var _hintText = require("./queries/hint-text");
|
|
10
|
+
var _labelText = require("./queries/label-text");
|
|
11
|
+
var _placeholderText = require("./queries/placeholder-text");
|
|
14
12
|
var _role = require("./queries/role");
|
|
15
|
-
var
|
|
13
|
+
var _testId = require("./queries/test-id");
|
|
14
|
+
var _text = require("./queries/text");
|
|
16
15
|
var _unsafeProps = require("./queries/unsafe-props");
|
|
16
|
+
var _unsafeType = require("./queries/unsafe-type");
|
|
17
17
|
function within(instance) {
|
|
18
18
|
return {
|
|
19
19
|
...(0, _text.bindByTextQueries)(instance),
|
package/build/within.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"within.js","names":["
|
|
1
|
+
{"version":3,"file":"within.js","names":["_displayValue","require","_hintText","_labelText","_placeholderText","_role","_testId","_text","_unsafeProps","_unsafeType","within","instance","bindByTextQueries","bindByTestIdQueries","bindByDisplayValueQueries","bindByPlaceholderTextQueries","bindByLabelTextQueries","bindByHintTextQueries","bindByRoleQueries","bindUnsafeByTypeQueries","bindUnsafeByPropsQueries","getQueriesForElement","exports"],"sources":["../src/within.ts"],"sourcesContent":["import type { ReactTestInstance } from 'react-test-renderer';\n\nimport { bindByDisplayValueQueries } from './queries/display-value';\nimport { bindByHintTextQueries } from './queries/hint-text';\nimport { bindByLabelTextQueries } from './queries/label-text';\nimport { bindByPlaceholderTextQueries } from './queries/placeholder-text';\nimport { bindByRoleQueries } from './queries/role';\nimport { bindByTestIdQueries } from './queries/test-id';\nimport { bindByTextQueries } from './queries/text';\nimport { bindUnsafeByPropsQueries } from './queries/unsafe-props';\nimport { bindUnsafeByTypeQueries } from './queries/unsafe-type';\n\nexport function within(instance: ReactTestInstance) {\n return {\n ...bindByTextQueries(instance),\n ...bindByTestIdQueries(instance),\n ...bindByDisplayValueQueries(instance),\n ...bindByPlaceholderTextQueries(instance),\n ...bindByLabelTextQueries(instance),\n ...bindByHintTextQueries(instance),\n ...bindByRoleQueries(instance),\n ...bindUnsafeByTypeQueries(instance),\n ...bindUnsafeByPropsQueries(instance),\n };\n}\n\nexport const getQueriesForElement = within;\n"],"mappings":";;;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AAEO,SAASS,MAAMA,CAACC,QAA2B,EAAE;EAClD,OAAO;IACL,GAAG,IAAAC,uBAAiB,EAACD,QAAQ,CAAC;IAC9B,GAAG,IAAAE,2BAAmB,EAACF,QAAQ,CAAC;IAChC,GAAG,IAAAG,uCAAyB,EAACH,QAAQ,CAAC;IACtC,GAAG,IAAAI,6CAA4B,EAACJ,QAAQ,CAAC;IACzC,GAAG,IAAAK,iCAAsB,EAACL,QAAQ,CAAC;IACnC,GAAG,IAAAM,+BAAqB,EAACN,QAAQ,CAAC;IAClC,GAAG,IAAAO,uBAAiB,EAACP,QAAQ,CAAC;IAC9B,GAAG,IAAAQ,mCAAuB,EAACR,QAAQ,CAAC;IACpC,GAAG,IAAAS,qCAAwB,EAACT,QAAQ;EACtC,CAAC;AACH;AAEO,MAAMU,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAGX,MAAM","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@testing-library/react-native",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.1.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",
|
|
@@ -47,8 +47,10 @@
|
|
|
47
47
|
"typings/index.flow.js"
|
|
48
48
|
],
|
|
49
49
|
"dependencies": {
|
|
50
|
+
"chalk": "^4.1.2",
|
|
50
51
|
"jest-matcher-utils": "^29.7.0",
|
|
51
52
|
"pretty-format": "^29.7.0",
|
|
53
|
+
"react-native-gesture-handler": "^2.23.1",
|
|
52
54
|
"redent": "^3.0.0"
|
|
53
55
|
},
|
|
54
56
|
"peerDependencies": {
|
|
@@ -71,26 +73,26 @@
|
|
|
71
73
|
"@babel/preset-react": "^7.25.9",
|
|
72
74
|
"@babel/preset-typescript": "^7.26.0",
|
|
73
75
|
"@callstack/eslint-config": "^15.0.0",
|
|
74
|
-
"@react-native/babel-preset": "0.
|
|
75
|
-
"@release-it/conventional-changelog": "^
|
|
76
|
+
"@react-native/babel-preset": "0.78.0",
|
|
77
|
+
"@release-it/conventional-changelog": "^10.0.0",
|
|
76
78
|
"@relmify/jest-serializer-strip-ansi": "^1.0.2",
|
|
77
79
|
"@types/jest": "^29.5.14",
|
|
78
|
-
"@types/react": "^
|
|
79
|
-
"@types/react-test-renderer": "^
|
|
80
|
+
"@types/react": "^19.0.0",
|
|
81
|
+
"@types/react-test-renderer": "^19.0.0",
|
|
80
82
|
"babel-jest": "^29.7.0",
|
|
81
83
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
82
84
|
"del-cli": "^6.0.0",
|
|
83
|
-
"eslint": "^
|
|
84
|
-
"eslint-plugin-
|
|
85
|
+
"eslint": "^9.17.0",
|
|
86
|
+
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
85
87
|
"flow-bin": "~0.170.0",
|
|
86
88
|
"jest": "^29.7.0",
|
|
87
89
|
"prettier": "^2.8.8",
|
|
88
|
-
"react": "
|
|
89
|
-
"react-native": "0.
|
|
90
|
-
"react-test-renderer": "
|
|
91
|
-
"release-it": "^
|
|
92
|
-
"
|
|
93
|
-
"typescript": "^
|
|
90
|
+
"react": "^19.0.0",
|
|
91
|
+
"react-native": "0.78.0",
|
|
92
|
+
"react-test-renderer": "^19.0.0",
|
|
93
|
+
"release-it": "^18.0.0",
|
|
94
|
+
"typescript": "^5.6.3",
|
|
95
|
+
"typescript-eslint": "^8.19.1"
|
|
94
96
|
},
|
|
95
97
|
"publishConfig": {
|
|
96
98
|
"registry": "https://registry.npmjs.org"
|
package/typings/index.flow.js
CHANGED
|
@@ -86,12 +86,12 @@ interface ByTextQueries {
|
|
|
86
86
|
findByText: (
|
|
87
87
|
text: TextMatch,
|
|
88
88
|
queryOptions?: ByTextOptions,
|
|
89
|
-
waitForOptions?: WaitForOptions
|
|
89
|
+
waitForOptions?: WaitForOptions,
|
|
90
90
|
) => FindReturn;
|
|
91
91
|
findAllByText: (
|
|
92
92
|
text: TextMatch,
|
|
93
93
|
queryOptions?: ByTextOptions,
|
|
94
|
-
waitForOptions?: WaitForOptions
|
|
94
|
+
waitForOptions?: WaitForOptions,
|
|
95
95
|
) => FindAllReturn;
|
|
96
96
|
}
|
|
97
97
|
|
|
@@ -105,12 +105,12 @@ interface ByTestIdQueries {
|
|
|
105
105
|
findByTestId: (
|
|
106
106
|
testID: TextMatch,
|
|
107
107
|
queryOptions?: ByTestIdOptions,
|
|
108
|
-
waitForOptions?: WaitForOptions
|
|
108
|
+
waitForOptions?: WaitForOptions,
|
|
109
109
|
) => FindReturn;
|
|
110
110
|
findAllByTestId: (
|
|
111
111
|
testID: TextMatch,
|
|
112
112
|
queryOptions?: ByTestIdOptions,
|
|
113
|
-
waitForOptions?: WaitForOptions
|
|
113
|
+
waitForOptions?: WaitForOptions,
|
|
114
114
|
) => FindAllReturn;
|
|
115
115
|
}
|
|
116
116
|
|
|
@@ -120,25 +120,25 @@ interface ByDisplayValueQueries {
|
|
|
120
120
|
getByDisplayValue: (value: TextMatch, options?: ByDisplayValueOptions) => ReactTestInstance;
|
|
121
121
|
getAllByDisplayValue: (
|
|
122
122
|
value: TextMatch,
|
|
123
|
-
options?: ByDisplayValueOptions
|
|
123
|
+
options?: ByDisplayValueOptions,
|
|
124
124
|
) => Array<ReactTestInstance>;
|
|
125
125
|
queryByDisplayValue: (
|
|
126
126
|
value: TextMatch,
|
|
127
|
-
options?: ByDisplayValueOptions
|
|
127
|
+
options?: ByDisplayValueOptions,
|
|
128
128
|
) => ReactTestInstance | null;
|
|
129
129
|
queryAllByDisplayValue: (
|
|
130
130
|
value: TextMatch,
|
|
131
|
-
options?: ByDisplayValueOptions
|
|
131
|
+
options?: ByDisplayValueOptions,
|
|
132
132
|
) => Array<ReactTestInstance> | [];
|
|
133
133
|
findByDisplayValue: (
|
|
134
134
|
value: TextMatch,
|
|
135
135
|
queryOptions?: ByDisplayValueOptions,
|
|
136
|
-
waitForOptions?: WaitForOptions
|
|
136
|
+
waitForOptions?: WaitForOptions,
|
|
137
137
|
) => FindReturn;
|
|
138
138
|
findAllByDisplayValue: (
|
|
139
139
|
value: TextMatch,
|
|
140
140
|
queryOptions?: ByDisplayValueOptions,
|
|
141
|
-
waitForOptions?: WaitForOptions
|
|
141
|
+
waitForOptions?: WaitForOptions,
|
|
142
142
|
) => FindAllReturn;
|
|
143
143
|
}
|
|
144
144
|
|
|
@@ -147,29 +147,29 @@ type ByPlaceholderTextOptions = CommonQueryOptions & TextMatchOptions;
|
|
|
147
147
|
interface ByPlaceholderTextQueries {
|
|
148
148
|
getByPlaceholderText: (
|
|
149
149
|
placeholder: TextMatch,
|
|
150
|
-
options?: ByPlaceholderTextOptions
|
|
150
|
+
options?: ByPlaceholderTextOptions,
|
|
151
151
|
) => ReactTestInstance;
|
|
152
152
|
getAllByPlaceholderText: (
|
|
153
153
|
placeholder: TextMatch,
|
|
154
|
-
options?: ByPlaceholderTextOptions
|
|
154
|
+
options?: ByPlaceholderTextOptions,
|
|
155
155
|
) => Array<ReactTestInstance>;
|
|
156
156
|
queryByPlaceholderText: (
|
|
157
157
|
placeholder: TextMatch,
|
|
158
|
-
options?: ByPlaceholderTextOptions
|
|
158
|
+
options?: ByPlaceholderTextOptions,
|
|
159
159
|
) => ReactTestInstance | null;
|
|
160
160
|
queryAllByPlaceholderText: (
|
|
161
161
|
placeholder: TextMatch,
|
|
162
|
-
options?: ByPlaceholderTextOptions
|
|
162
|
+
options?: ByPlaceholderTextOptions,
|
|
163
163
|
) => Array<ReactTestInstance> | [];
|
|
164
164
|
findByPlaceholderText: (
|
|
165
165
|
placeholder: TextMatch,
|
|
166
166
|
queryOptions?: ByPlaceholderTextOptions,
|
|
167
|
-
waitForOptions?: WaitForOptions
|
|
167
|
+
waitForOptions?: WaitForOptions,
|
|
168
168
|
) => FindReturn;
|
|
169
169
|
findAllByPlaceholderText: (
|
|
170
170
|
placeholder: TextMatch,
|
|
171
171
|
queryOptions?: ByPlaceholderTextOptions,
|
|
172
|
-
waitForOptions?: WaitForOptions
|
|
172
|
+
waitForOptions?: WaitForOptions,
|
|
173
173
|
) => FindAllReturn;
|
|
174
174
|
}
|
|
175
175
|
|
|
@@ -205,12 +205,12 @@ interface A11yAPI {
|
|
|
205
205
|
findByLabelText: (
|
|
206
206
|
matcher: TextMatch,
|
|
207
207
|
queryOptions?: ByLabelTextOptions,
|
|
208
|
-
waitForOptions?: WaitForOptions
|
|
208
|
+
waitForOptions?: WaitForOptions,
|
|
209
209
|
) => FindReturn;
|
|
210
210
|
findAllByLabelText: (
|
|
211
211
|
matcher: TextMatch,
|
|
212
212
|
queryOptions?: ByLabelTextOptions,
|
|
213
|
-
waitForOptions?: WaitForOptions
|
|
213
|
+
waitForOptions?: WaitForOptions,
|
|
214
214
|
) => FindAllReturn;
|
|
215
215
|
|
|
216
216
|
// Hint
|
|
@@ -225,22 +225,22 @@ interface A11yAPI {
|
|
|
225
225
|
findByA11yHint: (
|
|
226
226
|
matcher: TextMatch,
|
|
227
227
|
queryOptions?: ByHintTextOptions,
|
|
228
|
-
waitForOptions?: WaitForOptions
|
|
228
|
+
waitForOptions?: WaitForOptions,
|
|
229
229
|
) => FindReturn;
|
|
230
230
|
findByHintText: (
|
|
231
231
|
matcher: TextMatch,
|
|
232
232
|
queryOptions?: ByHintTextOptions,
|
|
233
|
-
waitForOptions?: WaitForOptions
|
|
233
|
+
waitForOptions?: WaitForOptions,
|
|
234
234
|
) => FindReturn;
|
|
235
235
|
findAllByA11yHint: (
|
|
236
236
|
matcher: TextMatch,
|
|
237
237
|
queryOptions?: ByHintTextOptions,
|
|
238
|
-
waitForOptions?: WaitForOptions
|
|
238
|
+
waitForOptions?: WaitForOptions,
|
|
239
239
|
) => FindAllReturn;
|
|
240
240
|
findAllByHintText: (
|
|
241
241
|
matcher: TextMatch,
|
|
242
242
|
queryOptions?: ByHintTextOptions,
|
|
243
|
-
waitForOptions?: WaitForOptions
|
|
243
|
+
waitForOptions?: WaitForOptions,
|
|
244
244
|
) => FindAllReturn;
|
|
245
245
|
|
|
246
246
|
// Role
|
|
@@ -251,12 +251,12 @@ interface A11yAPI {
|
|
|
251
251
|
findByRole: (
|
|
252
252
|
matcher: A11yRole | RegExp,
|
|
253
253
|
queryOptions?: ByRoleOptions,
|
|
254
|
-
waitForOptions?: WaitForOptions
|
|
254
|
+
waitForOptions?: WaitForOptions,
|
|
255
255
|
) => FindReturn;
|
|
256
256
|
findAllByRole: (
|
|
257
257
|
matcher: A11yRole | RegExp,
|
|
258
258
|
queryOptions?: ByRoleOptions,
|
|
259
|
-
waitForOptions?: WaitForOptions
|
|
259
|
+
waitForOptions?: WaitForOptions,
|
|
260
260
|
) => FindAllReturn;
|
|
261
261
|
}
|
|
262
262
|
|
|
@@ -266,7 +266,7 @@ interface Thenable {
|
|
|
266
266
|
|
|
267
267
|
type MapPropsFunction = (
|
|
268
268
|
props: { [string]: mixed },
|
|
269
|
-
node: ReactTestRendererJSON
|
|
269
|
+
node: ReactTestRendererJSON,
|
|
270
270
|
) => { [string]: mixed };
|
|
271
271
|
|
|
272
272
|
type DebugOptions = {
|
|
@@ -274,10 +274,6 @@ type DebugOptions = {
|
|
|
274
274
|
mapProps?: MapPropsFunction,
|
|
275
275
|
};
|
|
276
276
|
|
|
277
|
-
type Debug = {
|
|
278
|
-
(options?: DebugOptions | string): void,
|
|
279
|
-
};
|
|
280
|
-
|
|
281
277
|
type Queries = ByTextQueries &
|
|
282
278
|
ByTestIdQueries &
|
|
283
279
|
ByDisplayValueQueries &
|
|
@@ -304,7 +300,7 @@ declare module '@testing-library/react-native' {
|
|
|
304
300
|
rerender(nextElement: React.Element<any>): void;
|
|
305
301
|
unmount(nextElement?: React.Element<any>): void;
|
|
306
302
|
toJSON(): ReactTestRendererJSON[] | ReactTestRendererJSON | null;
|
|
307
|
-
debug:
|
|
303
|
+
debug(options?: DebugOptions): void;
|
|
308
304
|
root: ReactTestInstance;
|
|
309
305
|
UNSAFE_root: ReactTestInstance;
|
|
310
306
|
}
|
|
@@ -322,7 +318,7 @@ declare module '@testing-library/react-native' {
|
|
|
322
318
|
|
|
323
319
|
declare export var render: (
|
|
324
320
|
component: React.Element<any>,
|
|
325
|
-
options?: RenderOptions
|
|
321
|
+
options?: RenderOptions,
|
|
326
322
|
) => RenderResult;
|
|
327
323
|
|
|
328
324
|
declare export var screen: RenderResult;
|
|
@@ -334,7 +330,7 @@ declare module '@testing-library/react-native' {
|
|
|
334
330
|
|
|
335
331
|
declare type WaitForElementToBeRemovedFunction = <T = any>(
|
|
336
332
|
expectation: () => T,
|
|
337
|
-
options?: WaitForOptions
|
|
333
|
+
options?: WaitForOptions,
|
|
338
334
|
) => Promise<T>;
|
|
339
335
|
|
|
340
336
|
declare export var waitForElementToBeRemoved: WaitForElementToBeRemovedFunction;
|
|
@@ -375,7 +371,7 @@ declare module '@testing-library/react-native' {
|
|
|
375
371
|
|
|
376
372
|
declare type RenderHookFunction = <Result, Props>(
|
|
377
373
|
renderCallback: (props: Props) => Result,
|
|
378
|
-
options?: RenderHookOptions<Props
|
|
374
|
+
options?: RenderHookOptions<Props>,
|
|
379
375
|
) => RenderHookResult<Result, Props>;
|
|
380
376
|
|
|
381
377
|
declare export var renderHook: RenderHookFunction;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format-default.js","names":["_reactNative","require","_object","propsToDisplay","defaultMapProps","props","result","styles","StyleSheet","flatten","style","styleToDisplay","extractStyle","undefined","accessibilityState","removeUndefinedKeys","accessibilityValue","forEach","propName","display","opacity","hasAnyKeys","Object","keys","length"],"sources":["../../src/helpers/format-default.ts"],"sourcesContent":["import { StyleSheet, ViewStyle } from 'react-native';\nimport { removeUndefinedKeys } from './object';\n\nconst propsToDisplay = [\n 'accessible',\n 'accessibilityElementsHidden',\n 'accessibilityHint',\n 'accessibilityLabel',\n 'accessibilityLabelledBy',\n 'accessibilityRole',\n 'accessibilityViewIsModal',\n 'alt',\n 'aria-busy',\n 'aria-checked',\n 'aria-disabled',\n 'aria-expanded',\n 'aria-hidden',\n 'aria-label',\n 'aria-labelledby',\n 'aria-modal',\n 'aria-selected',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext',\n 'defaultValue',\n 'importantForAccessibility',\n 'nativeID',\n 'placeholder',\n 'role',\n 'testID',\n 'title',\n 'value',\n] as const;\n\n/**\n * Preserve props that are helpful in diagnosing test failures, while stripping rest\n */\nexport function defaultMapProps(props: Record<string, unknown>): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n\n const styles = StyleSheet.flatten(props.style as ViewStyle);\n const styleToDisplay = extractStyle(styles);\n if (styleToDisplay !== undefined) {\n result.style = styleToDisplay;\n }\n\n const accessibilityState = removeUndefinedKeys(props.accessibilityState);\n if (accessibilityState !== undefined) {\n result.accessibilityState = accessibilityState;\n }\n\n const accessibilityValue = removeUndefinedKeys(props.accessibilityValue);\n if (accessibilityValue !== undefined) {\n result.accessibilityValue = accessibilityValue;\n }\n\n propsToDisplay.forEach((propName) => {\n if (propName in props) {\n result[propName] = props[propName];\n }\n });\n\n return result;\n}\n\nfunction extractStyle(style: ViewStyle | undefined) {\n if (style == null) {\n return undefined;\n }\n\n const result: Record<string, unknown> = {};\n if (style.display === 'none') {\n result.display = 'none';\n }\n\n if (style.opacity === 0) {\n result.opacity = 0;\n }\n\n const hasAnyKeys = Object.keys(result).length > 0;\n return hasAnyKeys ? result : undefined;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,MAAME,cAAc,GAAG,CACrB,YAAY,EACZ,6BAA6B,EAC7B,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,EACL,WAAW,EACX,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,2BAA2B,EAC3B,UAAU,EACV,aAAa,EACb,MAAM,EACN,QAAQ,EACR,OAAO,EACP,OAAO,CACC;;AAEV;AACA;AACA;AACO,SAASC,eAAeA,CAACC,KAA8B,EAA2B;EACvF,MAAMC,MAA+B,GAAG,CAAC,CAAC;EAE1C,MAAMC,MAAM,GAAGC,uBAAU,CAACC,OAAO,CAACJ,KAAK,CAACK,KAAkB,CAAC;EAC3D,MAAMC,cAAc,GAAGC,YAAY,CAACL,MAAM,CAAC;EAC3C,IAAII,cAAc,KAAKE,SAAS,EAAE;IAChCP,MAAM,CAACI,KAAK,GAAGC,cAAc;EAC/B;EAEA,MAAMG,kBAAkB,GAAG,IAAAC,2BAAmB,EAACV,KAAK,CAACS,kBAAkB,CAAC;EACxE,IAAIA,kBAAkB,KAAKD,SAAS,EAAE;IACpCP,MAAM,CAACQ,kBAAkB,GAAGA,kBAAkB;EAChD;EAEA,MAAME,kBAAkB,GAAG,IAAAD,2BAAmB,EAACV,KAAK,CAACW,kBAAkB,CAAC;EACxE,IAAIA,kBAAkB,KAAKH,SAAS,EAAE;IACpCP,MAAM,CAACU,kBAAkB,GAAGA,kBAAkB;EAChD;EAEAb,cAAc,CAACc,OAAO,CAAEC,QAAQ,IAAK;IACnC,IAAIA,QAAQ,IAAIb,KAAK,EAAE;MACrBC,MAAM,CAACY,QAAQ,CAAC,GAAGb,KAAK,CAACa,QAAQ,CAAC;IACpC;EACF,CAAC,CAAC;EAEF,OAAOZ,MAAM;AACf;AAEA,SAASM,YAAYA,CAACF,KAA4B,EAAE;EAClD,IAAIA,KAAK,IAAI,IAAI,EAAE;IACjB,OAAOG,SAAS;EAClB;EAEA,MAAMP,MAA+B,GAAG,CAAC,CAAC;EAC1C,IAAII,KAAK,CAACS,OAAO,KAAK,MAAM,EAAE;IAC5Bb,MAAM,CAACa,OAAO,GAAG,MAAM;EACzB;EAEA,IAAIT,KAAK,CAACU,OAAO,KAAK,CAAC,EAAE;IACvBd,MAAM,CAACc,OAAO,GAAG,CAAC;EACpB;EAEA,MAAMC,UAAU,GAAGC,MAAM,CAACC,IAAI,CAACjB,MAAM,CAAC,CAACkB,MAAM,GAAG,CAAC;EACjD,OAAOH,UAAU,GAAGf,MAAM,GAAGO,SAAS;AACxC","ignoreList":[]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { ReactTestRendererJSON } from 'react-test-renderer';
|
|
2
|
-
export type MapPropsFunction = (props: Record<string, unknown>, node: ReactTestRendererJSON) => Record<string, unknown>;
|
|
3
|
-
export type FormatOptions = {
|
|
4
|
-
mapProps?: MapPropsFunction;
|
|
5
|
-
};
|
|
6
|
-
declare const format: (input: ReactTestRendererJSON | ReactTestRendererJSON[], options?: FormatOptions) => string;
|
|
7
|
-
export default format;
|
package/build/helpers/format.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _prettyFormat = _interopRequireWildcard(require("pretty-format"));
|
|
8
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
9
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
|
-
const format = (input, options = {}) => (0, _prettyFormat.default)(input, {
|
|
11
|
-
plugins: [getCustomPlugin(options.mapProps), _prettyFormat.plugins.ReactElement],
|
|
12
|
-
highlight: true,
|
|
13
|
-
printBasicPrototype: false
|
|
14
|
-
});
|
|
15
|
-
const getCustomPlugin = mapProps => {
|
|
16
|
-
return {
|
|
17
|
-
test: val => _prettyFormat.plugins.ReactTestComponent.test(val),
|
|
18
|
-
serialize: (val, config, indentation, depth, refs, printer) => {
|
|
19
|
-
let newVal = val;
|
|
20
|
-
if (mapProps && val.props) {
|
|
21
|
-
newVal = {
|
|
22
|
-
...val,
|
|
23
|
-
props: mapProps(val.props, val)
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
return _prettyFormat.plugins.ReactTestComponent.serialize(newVal, config, indentation, depth, refs, printer);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
var _default = exports.default = format;
|
|
31
|
-
//# sourceMappingURL=format.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","names":["_prettyFormat","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","format","input","options","prettyFormat","plugins","getCustomPlugin","mapProps","ReactElement","highlight","printBasicPrototype","test","val","ReactTestComponent","serialize","config","indentation","depth","refs","printer","newVal","props","_default","exports"],"sources":["../../src/helpers/format.ts"],"sourcesContent":["import type { ReactTestRendererJSON } from 'react-test-renderer';\nimport prettyFormat, { NewPlugin, plugins } from 'pretty-format';\n\nexport type MapPropsFunction = (\n props: Record<string, unknown>,\n node: ReactTestRendererJSON,\n) => Record<string, unknown>;\n\nexport type FormatOptions = {\n mapProps?: MapPropsFunction;\n};\n\nconst format = (\n input: ReactTestRendererJSON | ReactTestRendererJSON[],\n options: FormatOptions = {},\n) =>\n prettyFormat(input, {\n plugins: [getCustomPlugin(options.mapProps), plugins.ReactElement],\n highlight: true,\n printBasicPrototype: false,\n });\n\nconst getCustomPlugin = (mapProps?: MapPropsFunction): NewPlugin => {\n return {\n test: (val) => plugins.ReactTestComponent.test(val),\n serialize: (val, config, indentation, depth, refs, printer) => {\n let newVal = val;\n if (mapProps && val.props) {\n newVal = { ...val, props: mapProps(val.props, val) };\n }\n return plugins.ReactTestComponent.serialize(\n newVal,\n config,\n indentation,\n depth,\n refs,\n printer,\n );\n },\n };\n};\n\nexport default format;\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAiE,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAWjE,MAAMW,MAAM,GAAGA,CACbC,KAAsD,EACtDC,OAAsB,GAAG,CAAC,CAAC,KAE3B,IAAAC,qBAAY,EAACF,KAAK,EAAE;EAClBG,OAAO,EAAE,CAACC,eAAe,CAACH,OAAO,CAACI,QAAQ,CAAC,EAAEF,qBAAO,CAACG,YAAY,CAAC;EAClEC,SAAS,EAAE,IAAI;EACfC,mBAAmB,EAAE;AACvB,CAAC,CAAC;AAEJ,MAAMJ,eAAe,GAAIC,QAA2B,IAAgB;EAClE,OAAO;IACLI,IAAI,EAAGC,GAAG,IAAKP,qBAAO,CAACQ,kBAAkB,CAACF,IAAI,CAACC,GAAG,CAAC;IACnDE,SAAS,EAAEA,CAACF,GAAG,EAAEG,MAAM,EAAEC,WAAW,EAAEC,KAAK,EAAEC,IAAI,EAAEC,OAAO,KAAK;MAC7D,IAAIC,MAAM,GAAGR,GAAG;MAChB,IAAIL,QAAQ,IAAIK,GAAG,CAACS,KAAK,EAAE;QACzBD,MAAM,GAAG;UAAE,GAAGR,GAAG;UAAES,KAAK,EAAEd,QAAQ,CAACK,GAAG,CAACS,KAAK,EAAET,GAAG;QAAE,CAAC;MACtD;MACA,OAAOP,qBAAO,CAACQ,kBAAkB,CAACC,SAAS,CACzCM,MAAM,EACNL,MAAM,EACNC,WAAW,EACXC,KAAK,EACLC,IAAI,EACJC,OACF,CAAC;IACH;EACF,CAAC;AACH,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAApC,OAAA,GAEac,MAAM","ignoreList":[]}
|