@react-native-harness/runtime 1.0.0-alpha.21 → 1.0.0-alpha.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/dist/NativeHarness.d.ts +41 -0
  2. package/dist/NativeHarness.d.ts.map +1 -0
  3. package/dist/NativeHarness.js +2 -0
  4. package/dist/client/factory.d.ts.map +1 -1
  5. package/dist/client/factory.js +8 -2
  6. package/dist/client/store.d.ts +4 -0
  7. package/dist/client/store.d.ts.map +1 -0
  8. package/dist/client/store.js +10 -0
  9. package/dist/expect/expect.d.ts +9 -0
  10. package/dist/expect/expect.d.ts.map +1 -0
  11. package/dist/expect/expect.js +77 -0
  12. package/dist/expect/index.d.ts +1 -8
  13. package/dist/expect/index.d.ts.map +1 -1
  14. package/dist/expect/index.js +1 -73
  15. package/dist/expect/matchers/toMatchImageSnapshot.d.ts +13 -0
  16. package/dist/expect/matchers/toMatchImageSnapshot.d.ts.map +1 -0
  17. package/dist/expect/matchers/toMatchImageSnapshot.js +23 -0
  18. package/dist/globals.d.ts +10 -0
  19. package/dist/globals.d.ts.map +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/render/TestComponentOverlay.d.ts.map +1 -1
  24. package/dist/render/TestComponentOverlay.js +21 -2
  25. package/dist/render/index.d.ts.map +1 -1
  26. package/dist/render/index.js +8 -6
  27. package/dist/render/queries.d.ts +7 -0
  28. package/dist/render/queries.d.ts.map +1 -0
  29. package/dist/render/queries.js +99 -0
  30. package/dist/runHarnessTestsInModule.d.ts +9 -0
  31. package/dist/runHarnessTestsInModule.d.ts.map +1 -0
  32. package/dist/runHarnessTestsInModule.js +57 -0
  33. package/dist/runner/context.d.ts +10 -0
  34. package/dist/runner/context.d.ts.map +1 -0
  35. package/dist/runner/context.js +6 -0
  36. package/dist/runner/factory.d.ts.map +1 -1
  37. package/dist/runner/factory.js +6 -1
  38. package/dist/runner/index.d.ts +1 -0
  39. package/dist/runner/index.d.ts.map +1 -1
  40. package/dist/runner/index.js +1 -0
  41. package/dist/runner/runSuite.d.ts +3 -0
  42. package/dist/runner/runSuite.d.ts.map +1 -1
  43. package/dist/runner/types.d.ts +6 -1
  44. package/dist/runner/types.d.ts.map +1 -1
  45. package/dist/screen/index.d.ts +50 -0
  46. package/dist/screen/index.d.ts.map +1 -0
  47. package/dist/screen/index.js +46 -0
  48. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  49. package/dist/ui/ReadyScreen.d.ts.map +1 -1
  50. package/dist/ui/ReadyScreen.js +1 -1
  51. package/dist/userEvent/index.d.ts +16 -0
  52. package/dist/userEvent/index.d.ts.map +1 -0
  53. package/dist/userEvent/index.js +31 -0
  54. package/out-tsc/vitest/src/__tests__/collector.test.d.ts +2 -0
  55. package/out-tsc/vitest/src/__tests__/collector.test.d.ts.map +1 -0
  56. package/out-tsc/vitest/src/__tests__/error-handling.test.d.ts +2 -0
  57. package/out-tsc/vitest/src/__tests__/error-handling.test.d.ts.map +1 -0
  58. package/out-tsc/vitest/src/__tests__/expect.test.d.ts +2 -0
  59. package/out-tsc/vitest/src/__tests__/expect.test.d.ts.map +1 -0
  60. package/out-tsc/vitest/src/__tests__/initialize.test.d.ts +2 -0
  61. package/out-tsc/vitest/src/__tests__/initialize.test.d.ts.map +1 -0
  62. package/out-tsc/vitest/src/__tests__/spy.test.d.ts +2 -0
  63. package/out-tsc/vitest/src/__tests__/spy.test.d.ts.map +1 -0
  64. package/out-tsc/vitest/src/bundler/bundle.d.ts +2 -0
  65. package/out-tsc/vitest/src/bundler/bundle.d.ts.map +1 -0
  66. package/out-tsc/vitest/src/bundler/errors.d.ts +15 -0
  67. package/out-tsc/vitest/src/bundler/errors.d.ts.map +1 -0
  68. package/out-tsc/vitest/src/bundler/evaluate.d.ts +2 -0
  69. package/out-tsc/vitest/src/bundler/evaluate.d.ts.map +1 -0
  70. package/out-tsc/vitest/src/bundler/factory.d.ts +3 -0
  71. package/out-tsc/vitest/src/bundler/factory.d.ts.map +1 -0
  72. package/out-tsc/vitest/src/bundler/index.d.ts +4 -0
  73. package/out-tsc/vitest/src/bundler/index.d.ts.map +1 -0
  74. package/out-tsc/vitest/src/bundler/types.d.ts +7 -0
  75. package/out-tsc/vitest/src/bundler/types.d.ts.map +1 -0
  76. package/out-tsc/vitest/src/client/factory.d.ts +2 -0
  77. package/out-tsc/vitest/src/client/factory.d.ts.map +1 -0
  78. package/out-tsc/vitest/src/client/getDeviceDescriptor.d.ts +8 -0
  79. package/out-tsc/vitest/src/client/getDeviceDescriptor.d.ts.map +1 -0
  80. package/out-tsc/vitest/src/client/getWSServer.d.ts +2 -0
  81. package/out-tsc/vitest/src/client/getWSServer.d.ts.map +1 -0
  82. package/out-tsc/vitest/src/client/index.d.ts +2 -0
  83. package/out-tsc/vitest/src/client/index.d.ts.map +1 -0
  84. package/out-tsc/vitest/src/client/setup-files.d.ts +12 -0
  85. package/out-tsc/vitest/src/client/setup-files.d.ts.map +1 -0
  86. package/out-tsc/vitest/src/client/store.d.ts +4 -0
  87. package/out-tsc/vitest/src/client/store.d.ts.map +1 -0
  88. package/out-tsc/vitest/src/collector/errors.d.ts +8 -0
  89. package/out-tsc/vitest/src/collector/errors.d.ts.map +1 -0
  90. package/out-tsc/vitest/src/collector/factory.d.ts +3 -0
  91. package/out-tsc/vitest/src/collector/factory.d.ts.map +1 -0
  92. package/out-tsc/vitest/src/collector/functions.d.ts +22 -0
  93. package/out-tsc/vitest/src/collector/functions.d.ts.map +1 -0
  94. package/out-tsc/vitest/src/collector/index.d.ts +5 -0
  95. package/out-tsc/vitest/src/collector/index.d.ts.map +1 -0
  96. package/out-tsc/vitest/src/collector/types.d.ts +10 -0
  97. package/out-tsc/vitest/src/collector/types.d.ts.map +1 -0
  98. package/out-tsc/vitest/src/collector/validation.d.ts +4 -0
  99. package/out-tsc/vitest/src/collector/validation.d.ts.map +1 -0
  100. package/out-tsc/vitest/src/constants.d.ts +2 -0
  101. package/out-tsc/vitest/src/constants.d.ts.map +1 -0
  102. package/out-tsc/vitest/src/disableHMRWhenReady.d.ts +2 -0
  103. package/out-tsc/vitest/src/disableHMRWhenReady.d.ts.map +1 -0
  104. package/out-tsc/vitest/src/entry-point.d.ts +2 -0
  105. package/out-tsc/vitest/src/entry-point.d.ts.map +1 -0
  106. package/out-tsc/vitest/src/errors.d.ts +6 -0
  107. package/out-tsc/vitest/src/errors.d.ts.map +1 -0
  108. package/out-tsc/vitest/src/expect/expect.d.ts +9 -0
  109. package/out-tsc/vitest/src/expect/expect.d.ts.map +1 -0
  110. package/out-tsc/vitest/src/expect/index.d.ts +2 -0
  111. package/out-tsc/vitest/src/expect/index.d.ts.map +1 -0
  112. package/out-tsc/vitest/src/expect/matchers/toMatchImageSnapshot.d.ts +18 -0
  113. package/out-tsc/vitest/src/expect/matchers/toMatchImageSnapshot.d.ts.map +1 -0
  114. package/out-tsc/vitest/src/expect/setup.d.ts +2 -0
  115. package/out-tsc/vitest/src/expect/setup.d.ts.map +1 -0
  116. package/out-tsc/vitest/src/filtering/index.d.ts +2 -0
  117. package/out-tsc/vitest/src/filtering/index.d.ts.map +1 -0
  118. package/out-tsc/vitest/src/filtering/testNameFilter.d.ts +12 -0
  119. package/out-tsc/vitest/src/filtering/testNameFilter.d.ts.map +1 -0
  120. package/out-tsc/vitest/src/globals.d.ts +9 -0
  121. package/out-tsc/vitest/src/globals.d.ts.map +1 -0
  122. package/out-tsc/vitest/src/index.d.ts +11 -0
  123. package/out-tsc/vitest/src/index.d.ts.map +1 -0
  124. package/out-tsc/vitest/src/initialize.d.ts +2 -0
  125. package/out-tsc/vitest/src/initialize.d.ts.map +1 -0
  126. package/out-tsc/vitest/src/jest-mock.d.ts +2 -0
  127. package/out-tsc/vitest/src/jest-mock.d.ts.map +1 -0
  128. package/out-tsc/vitest/src/mocker/index.d.ts +2 -0
  129. package/out-tsc/vitest/src/mocker/index.d.ts.map +1 -0
  130. package/out-tsc/vitest/src/mocker/registry.d.ts +6 -0
  131. package/out-tsc/vitest/src/mocker/registry.d.ts.map +1 -0
  132. package/out-tsc/vitest/src/mocker/types.d.ts +6 -0
  133. package/out-tsc/vitest/src/mocker/types.d.ts.map +1 -0
  134. package/out-tsc/vitest/src/namespace.d.ts +18 -0
  135. package/out-tsc/vitest/src/namespace.d.ts.map +1 -0
  136. package/out-tsc/vitest/src/polyfills.d.ts +11 -0
  137. package/out-tsc/vitest/src/polyfills.d.ts.map +1 -0
  138. package/out-tsc/vitest/src/render/ErrorBoundary.d.ts +17 -0
  139. package/out-tsc/vitest/src/render/ErrorBoundary.d.ts.map +1 -0
  140. package/out-tsc/vitest/src/render/TestComponentOverlay.d.ts +3 -0
  141. package/out-tsc/vitest/src/render/TestComponentOverlay.d.ts.map +1 -0
  142. package/out-tsc/vitest/src/render/cleanup.d.ts +2 -0
  143. package/out-tsc/vitest/src/render/cleanup.d.ts.map +1 -0
  144. package/out-tsc/vitest/src/render/index.d.ts +6 -0
  145. package/out-tsc/vitest/src/render/index.d.ts.map +1 -0
  146. package/out-tsc/vitest/src/render/setup.d.ts +2 -0
  147. package/out-tsc/vitest/src/render/setup.d.ts.map +1 -0
  148. package/out-tsc/vitest/src/render/types.d.ts +12 -0
  149. package/out-tsc/vitest/src/render/types.d.ts.map +1 -0
  150. package/out-tsc/vitest/src/runner/context.d.ts +10 -0
  151. package/out-tsc/vitest/src/runner/context.d.ts.map +1 -0
  152. package/out-tsc/vitest/src/runner/errors.d.ts +11 -0
  153. package/out-tsc/vitest/src/runner/errors.d.ts.map +1 -0
  154. package/out-tsc/vitest/src/runner/factory.d.ts +3 -0
  155. package/out-tsc/vitest/src/runner/factory.d.ts.map +1 -0
  156. package/out-tsc/vitest/src/runner/hooks.d.ts +4 -0
  157. package/out-tsc/vitest/src/runner/hooks.d.ts.map +1 -0
  158. package/out-tsc/vitest/src/runner/index.d.ts +5 -0
  159. package/out-tsc/vitest/src/runner/index.d.ts.map +1 -0
  160. package/out-tsc/vitest/src/runner/runSuite.d.ts +7 -0
  161. package/out-tsc/vitest/src/runner/runSuite.d.ts.map +1 -0
  162. package/out-tsc/vitest/src/runner/types.d.ts +18 -0
  163. package/out-tsc/vitest/src/runner/types.d.ts.map +1 -0
  164. package/out-tsc/vitest/src/screen/index.d.ts +8 -0
  165. package/out-tsc/vitest/src/screen/index.d.ts.map +1 -0
  166. package/out-tsc/vitest/src/spy/index.d.ts +2 -0
  167. package/out-tsc/vitest/src/spy/index.d.ts.map +1 -0
  168. package/out-tsc/vitest/src/symbolicate.d.ts +3 -0
  169. package/out-tsc/vitest/src/symbolicate.d.ts.map +1 -0
  170. package/out-tsc/vitest/src/ui/ReadyScreen.d.ts +2 -0
  171. package/out-tsc/vitest/src/ui/ReadyScreen.d.ts.map +1 -0
  172. package/out-tsc/vitest/src/ui/WrongEnvironmentScreen.d.ts +2 -0
  173. package/out-tsc/vitest/src/ui/WrongEnvironmentScreen.d.ts.map +1 -0
  174. package/out-tsc/vitest/src/ui/index.d.ts +2 -0
  175. package/out-tsc/vitest/src/ui/index.d.ts.map +1 -0
  176. package/out-tsc/vitest/src/ui/state.d.ts +20 -0
  177. package/out-tsc/vitest/src/ui/state.d.ts.map +1 -0
  178. package/out-tsc/vitest/src/userEvent/index.d.ts +6 -0
  179. package/out-tsc/vitest/src/userEvent/index.d.ts.map +1 -0
  180. package/out-tsc/vitest/src/utils/dev-server.d.ts +2 -0
  181. package/out-tsc/vitest/src/utils/dev-server.d.ts.map +1 -0
  182. package/out-tsc/vitest/src/utils/emitter.d.ts +16 -0
  183. package/out-tsc/vitest/src/utils/emitter.d.ts.map +1 -0
  184. package/out-tsc/vitest/src/waitFor.d.ts +21 -0
  185. package/out-tsc/vitest/src/waitFor.d.ts.map +1 -0
  186. package/out-tsc/vitest/tsconfig.spec.tsbuildinfo +1 -0
  187. package/out-tsc/vitest/vite.config.d.ts +3 -0
  188. package/out-tsc/vitest/vite.config.d.ts.map +1 -0
  189. package/package.json +12 -2
  190. package/src/client/factory.ts +9 -2
  191. package/src/client/store.ts +16 -0
  192. package/src/expect/expect.ts +127 -0
  193. package/src/expect/index.ts +1 -123
  194. package/src/expect/matchers/toMatchImageSnapshot.ts +50 -0
  195. package/src/globals.ts +12 -0
  196. package/src/index.ts +1 -1
  197. package/src/render/TestComponentOverlay.tsx +22 -2
  198. package/src/render/index.ts +8 -6
  199. package/src/runner/context.ts +16 -0
  200. package/src/runner/factory.ts +7 -1
  201. package/src/runner/index.ts +5 -0
  202. package/src/runner/runSuite.ts +4 -0
  203. package/src/runner/types.ts +7 -1
  204. package/src/ui/ReadyScreen.tsx +1 -0
  205. package/src/__tests__/expect.test.ts +0 -627
@@ -0,0 +1,57 @@
1
+ import { collectTests } from './collector/functions.js';
2
+ import { runSuite } from './runner/runSuite.js';
3
+ import { getEmitter } from './utils/emitter.js';
4
+ const metroRequire = global.__r;
5
+ /**
6
+ * Patches the require function to clear the module cache for the first module that's going to be required after patching.
7
+ * @returns A function to unpatch the require function.
8
+ */
9
+ const patchRequire = () => {
10
+ let wasRootModuleRequired = false;
11
+ global.__r = (moduleId) => {
12
+ if (!wasRootModuleRequired) {
13
+ // The first module that's going to be required after patching will be the module with tests.
14
+ // We need to clear the module cache for this module, so it ends up re-evaluated.
15
+ const module = metroRequire.getModules().get(moduleId);
16
+ if (module) {
17
+ module.hasError = false;
18
+ module.error = undefined;
19
+ module.isInitialized = false;
20
+ }
21
+ }
22
+ wasRootModuleRequired = true;
23
+ return metroRequire(moduleId);
24
+ };
25
+ return () => {
26
+ global.__r = metroRequire;
27
+ };
28
+ };
29
+ /**
30
+ * Runs tests from a specific module programmatically and returns the results.
31
+ *
32
+ * @param moduleId The require.resolveWeak call to the module, returning the module ID
33
+ * @returns The result of the test suite execution
34
+ */
35
+ export const runHarnessTestsInModule = async (loader) => {
36
+ // 1. Collect tests by executing the loader
37
+ // This expects the loader to call describe/it/test functions which register to the global collector
38
+ const { testSuite } = await collectTests(async () => {
39
+ const unpatchRequire = patchRequire();
40
+ try {
41
+ await loader();
42
+ }
43
+ finally {
44
+ unpatchRequire();
45
+ }
46
+ });
47
+ // 2. Prepare the runner context
48
+ // We use a local emitter as we are not reporting to the CLI bridge,
49
+ // but the runner internals expect an emitter.
50
+ const events = getEmitter();
51
+ const context = {
52
+ events,
53
+ testFilePath: 'unknown',
54
+ };
55
+ // 3. Run the collected suite
56
+ return runSuite(testSuite, context);
57
+ };
@@ -0,0 +1,10 @@
1
+ export type HarnessContext = {
2
+ testFilePath: string;
3
+ runner: string;
4
+ };
5
+ declare global {
6
+ var HARNESS_CONTEXT: HarnessContext;
7
+ }
8
+ export declare const getHarnessContext: () => HarnessContext;
9
+ export declare const setHarnessContext: (context: HarnessContext) => void;
10
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/runner/context.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,eAAe,EAAE,cAAc,CAAC;CACrC;AAED,eAAO,MAAM,iBAAiB,QAAO,cAEpC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,cAAc,KAAG,IAE3D,CAAC"}
@@ -0,0 +1,6 @@
1
+ export const getHarnessContext = () => {
2
+ return globalThis['HARNESS_CONTEXT'];
3
+ };
4
+ export const setHarnessContext = (context) => {
5
+ globalThis['HARNESS_CONTEXT'] = context;
6
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/runner/factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,aAAa,QAAO,UAsBhC,CAAC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/runner/factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,eAAO,MAAM,aAAa,QAAO,UA2BhC,CAAC"}
@@ -1,10 +1,15 @@
1
1
  import { getEmitter } from '../utils/emitter.js';
2
2
  import { runSuite } from './runSuite.js';
3
+ import { setHarnessContext } from './context.js';
3
4
  export const getTestRunner = () => {
4
5
  const events = getEmitter();
5
6
  return {
6
7
  events,
7
- run: async (testSuite, testFilePath) => {
8
+ run: async ({ testSuite, testFilePath, runner }) => {
9
+ setHarnessContext({
10
+ testFilePath,
11
+ runner,
12
+ });
8
13
  const result = await runSuite(testSuite, {
9
14
  events,
10
15
  testFilePath,
@@ -1,4 +1,5 @@
1
1
  export type { TestRunnerEventsEmitter, TestRunner, TestRunnerContext, } from './types.js';
2
2
  export { TestExecutionError } from './errors.js';
3
3
  export { getTestRunner } from './factory.js';
4
+ export { getHarnessContext, setHarnessContext, type HarnessContext, } from './context.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { TestExecutionError } from './errors.js';
2
2
  export { getTestRunner } from './factory.js';
3
+ export { getHarnessContext, setHarnessContext, } from './context.js';
@@ -1,4 +1,7 @@
1
1
  import type { TestSuite, TestSuiteResult } from '@react-native-harness/bridge';
2
2
  import { TestRunnerContext } from './types.js';
3
+ declare global {
4
+ var HARNESS_TEST_PATH: string;
5
+ }
3
6
  export declare const runSuite: (suite: TestSuite, context: TestRunnerContext) => Promise<TestSuiteResult>;
4
7
  //# sourceMappingURL=runSuite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runSuite.d.ts","sourceRoot":"","sources":["../../src/runner/runSuite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,SAAS,EACT,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAsH/C,eAAO,MAAM,QAAQ,GACnB,OAAO,SAAS,EAChB,SAAS,iBAAiB,KACzB,OAAO,CAAC,eAAe,CAoIzB,CAAC"}
1
+ {"version":3,"file":"runSuite.d.ts","sourceRoot":"","sources":["../../src/runner/runSuite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,SAAS,EACT,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,iBAAiB,EAAE,MAAM,CAAC;CAC/B;AAsHD,eAAO,MAAM,QAAQ,GACnB,OAAO,SAAS,EAChB,SAAS,iBAAiB,KACzB,OAAO,CAAC,eAAe,CAoIzB,CAAC"}
@@ -5,9 +5,14 @@ export type TestRunnerContext = {
5
5
  events: TestRunnerEventsEmitter;
6
6
  testFilePath: string;
7
7
  };
8
+ export type RunTestsOptions = {
9
+ testSuite: TestSuite;
10
+ testFilePath: string;
11
+ runner: string;
12
+ };
8
13
  export type TestRunner = {
9
14
  events: TestRunnerEventsEmitter;
10
- run: (testSuite: TestSuite, testFilePath: string) => Promise<TestSuiteResult>;
15
+ run: (options: RunTestsOptions) => Promise<TestSuiteResult>;
11
16
  dispose: () => void;
12
17
  };
13
18
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runner/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,uBAAuB,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,uBAAuB,CAAC;IAChC,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9E,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runner/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,uBAAuB,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,uBAAuB,CAAC;IAChC,GAAG,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5D,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { type ViewInfo } from '../NativeHarness.js';
2
+ /**
3
+ * Represents an element found on screen with its position and dimensions.
4
+ * This can be used with userEvent.tap() to interact with the element.
5
+ */
6
+ export type ElementReference = ViewInfo;
7
+ export type Screen = {
8
+ /**
9
+ * Finds an element by its testID (accessibilityIdentifier on iOS, tag on Android).
10
+ * @throws Error if no element is found with the given testID.
11
+ */
12
+ findByTestId: (testId: string) => ElementReference;
13
+ /**
14
+ * Finds all elements by testID (accessibilityIdentifier on iOS, tag on Android).
15
+ * @throws Error if no elements are found with the given testID.
16
+ */
17
+ findAllByTestId: (testId: string) => ElementReference[];
18
+ /**
19
+ * Queries for an element by its testID without throwing.
20
+ * Returns null if no element is found.
21
+ */
22
+ queryByTestId: (testId: string) => ElementReference | null;
23
+ /**
24
+ * Queries for all elements by testID without throwing.
25
+ * Returns an empty array if no elements are found.
26
+ */
27
+ queryAllByTestId: (testId: string) => ElementReference[];
28
+ /**
29
+ * Finds an element by its accessibility label.
30
+ * @throws Error if no element is found with the given label.
31
+ */
32
+ findByAccessibilityLabel: (label: string) => ElementReference;
33
+ /**
34
+ * Finds all elements by accessibility label.
35
+ * @throws Error if no elements are found with the given label.
36
+ */
37
+ findAllByAccessibilityLabel: (label: string) => ElementReference[];
38
+ /**
39
+ * Queries for an element by its accessibility label without throwing.
40
+ * Returns null if no element is found.
41
+ */
42
+ queryByAccessibilityLabel: (label: string) => ElementReference | null;
43
+ /**
44
+ * Queries for all elements by accessibility label without throwing.
45
+ * Returns an empty array if no elements are found.
46
+ */
47
+ queryAllByAccessibilityLabel: (label: string) => ElementReference[];
48
+ };
49
+ export declare const screen: Screen;
50
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/screen/index.ts"],"names":[],"mappings":"AAAA,OAAsB,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEnE;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAExC,MAAM,MAAM,MAAM,GAAG;IACnB;;;OAGG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,gBAAgB,CAAC;IAEnD;;;OAGG;IACH,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;IAExD;;;OAGG;IACH,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,gBAAgB,GAAG,IAAI,CAAC;IAE3D;;;OAGG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;IAEzD;;;OAGG;IACH,wBAAwB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,CAAC;IAE9D;;;OAGG;IACH,2BAA2B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;IAEnE;;;OAGG;IACH,yBAAyB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,GAAG,IAAI,CAAC;IAEtE;;;OAGG;IACH,4BAA4B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;CACrE,CAAC;AA0DF,eAAO,MAAM,MAAM,QAAiB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import NativeHarness from '../NativeHarness.js';
2
+ const createScreen = () => {
3
+ return {
4
+ findByTestId: (testId) => {
5
+ const result = NativeHarness.queryByTestId(testId);
6
+ if (!result) {
7
+ throw new Error(`Unable to find element with testID: ${testId}`);
8
+ }
9
+ return result;
10
+ },
11
+ findAllByTestId: (testId) => {
12
+ const results = NativeHarness.queryAllByTestId(testId);
13
+ if (results.length === 0) {
14
+ throw new Error(`Unable to find any elements with testID: ${testId}`);
15
+ }
16
+ return results;
17
+ },
18
+ queryByTestId: (testId) => {
19
+ return NativeHarness.queryByTestId(testId);
20
+ },
21
+ queryAllByTestId: (testId) => {
22
+ return NativeHarness.queryAllByTestId(testId);
23
+ },
24
+ findByAccessibilityLabel: (label) => {
25
+ const result = NativeHarness.queryByAccessibilityLabel(label);
26
+ if (!result) {
27
+ throw new Error(`Unable to find element with accessibility label: ${label}`);
28
+ }
29
+ return result;
30
+ },
31
+ findAllByAccessibilityLabel: (label) => {
32
+ const results = NativeHarness.queryAllByAccessibilityLabel(label);
33
+ if (results.length === 0) {
34
+ throw new Error(`Unable to find any elements with accessibility label: ${label}`);
35
+ }
36
+ return results;
37
+ },
38
+ queryByAccessibilityLabel: (label) => {
39
+ return NativeHarness.queryByAccessibilityLabel(label);
40
+ },
41
+ queryAllByAccessibilityLabel: (label) => {
42
+ return NativeHarness.queryAllByAccessibilityLabel(label);
43
+ },
44
+ };
45
+ };
46
+ export const screen = createScreen();