@react-native-harness/runtime 1.2.0 → 1.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.
Files changed (69) hide show
  1. package/dist/collector/functions.d.ts +3 -3
  2. package/dist/collector/functions.d.ts.map +1 -1
  3. package/dist/collector/types.d.ts +3 -2
  4. package/dist/collector/types.d.ts.map +1 -1
  5. package/dist/collector/validation.d.ts +2 -2
  6. package/dist/collector/validation.d.ts.map +1 -1
  7. package/dist/device/index.d.ts +12 -0
  8. package/dist/device/index.d.ts.map +1 -0
  9. package/dist/device/index.js +62 -0
  10. package/dist/hmr.d.ts +2 -0
  11. package/dist/hmr.d.ts.map +1 -0
  12. package/dist/hmr.js +5 -0
  13. package/dist/logbox.d.ts +4 -0
  14. package/dist/logbox.d.ts.map +1 -0
  15. package/dist/logbox.js +18 -0
  16. package/dist/runner/hooks.d.ts +2 -1
  17. package/dist/runner/hooks.d.ts.map +1 -1
  18. package/dist/runner/hooks.js +27 -17
  19. package/dist/runner/runSuite.d.ts.map +1 -1
  20. package/dist/runner/runSuite.js +56 -6
  21. package/dist/runner/test-context.d.ts +16 -0
  22. package/dist/runner/test-context.d.ts.map +1 -0
  23. package/dist/runner/test-context.js +57 -0
  24. package/dist/runner/types.d.ts +2 -1
  25. package/dist/runner/types.d.ts.map +1 -1
  26. package/dist/test-utils/react-native-url-polyfill.d.ts +9 -0
  27. package/dist/test-utils/react-native-url-polyfill.d.ts.map +1 -0
  28. package/dist/test-utils/react-native-url-polyfill.js +1 -0
  29. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  30. package/out-tsc/vitest/src/__tests__/device.test.d.ts +2 -0
  31. package/out-tsc/vitest/src/__tests__/device.test.d.ts.map +1 -0
  32. package/out-tsc/vitest/src/__tests__/logbox.test.d.ts +2 -0
  33. package/out-tsc/vitest/src/__tests__/logbox.test.d.ts.map +1 -0
  34. package/out-tsc/vitest/src/__tests__/runner-context.test.d.ts +2 -0
  35. package/out-tsc/vitest/src/__tests__/runner-context.test.d.ts.map +1 -0
  36. package/out-tsc/vitest/src/collector/functions.d.ts +3 -3
  37. package/out-tsc/vitest/src/collector/functions.d.ts.map +1 -1
  38. package/out-tsc/vitest/src/collector/types.d.ts +3 -2
  39. package/out-tsc/vitest/src/collector/types.d.ts.map +1 -1
  40. package/out-tsc/vitest/src/collector/validation.d.ts +2 -2
  41. package/out-tsc/vitest/src/collector/validation.d.ts.map +1 -1
  42. package/out-tsc/vitest/src/device/index.d.ts +12 -0
  43. package/out-tsc/vitest/src/device/index.d.ts.map +1 -0
  44. package/out-tsc/vitest/src/hmr.d.ts +2 -0
  45. package/out-tsc/vitest/src/hmr.d.ts.map +1 -0
  46. package/out-tsc/vitest/src/logbox.d.ts +4 -0
  47. package/out-tsc/vitest/src/logbox.d.ts.map +1 -0
  48. package/out-tsc/vitest/src/runner/hooks.d.ts +2 -1
  49. package/out-tsc/vitest/src/runner/hooks.d.ts.map +1 -1
  50. package/out-tsc/vitest/src/runner/runSuite.d.ts.map +1 -1
  51. package/out-tsc/vitest/src/runner/test-context.d.ts +16 -0
  52. package/out-tsc/vitest/src/runner/test-context.d.ts.map +1 -0
  53. package/out-tsc/vitest/src/runner/types.d.ts +2 -1
  54. package/out-tsc/vitest/src/runner/types.d.ts.map +1 -1
  55. package/out-tsc/vitest/src/test-utils/react-native-url-polyfill.d.ts +9 -0
  56. package/out-tsc/vitest/src/test-utils/react-native-url-polyfill.d.ts.map +1 -0
  57. package/out-tsc/vitest/tsconfig.spec.tsbuildinfo +1 -1
  58. package/out-tsc/vitest/vite.config.d.ts.map +1 -1
  59. package/package.json +2 -2
  60. package/src/__tests__/runner-context.test.ts +483 -0
  61. package/src/collector/functions.ts +5 -4
  62. package/src/collector/types.ts +4 -1
  63. package/src/collector/validation.ts +2 -2
  64. package/src/runner/hooks.ts +43 -19
  65. package/src/runner/runSuite.ts +75 -9
  66. package/src/runner/test-context.ts +84 -0
  67. package/src/runner/types.ts +3 -0
  68. package/src/test-utils/react-native-url-polyfill.ts +1 -0
  69. package/vite.config.ts +4 -0
@@ -0,0 +1,12 @@
1
+ import type { DeviceStateMutation, PermissionName } from '@react-native-harness/platforms';
2
+ export declare const device: {
3
+ permissions: {
4
+ grant: (permission: PermissionName) => Promise<DeviceStateMutation | null>;
5
+ revoke: (permission: PermissionName) => Promise<DeviceStateMutation | null>;
6
+ reset: (permission: PermissionName) => Promise<DeviceStateMutation | null>;
7
+ grantAll: () => Promise<DeviceStateMutation | null>;
8
+ denyAll: () => Promise<DeviceStateMutation | null>;
9
+ resetAll: () => Promise<DeviceStateMutation | null>;
10
+ };
11
+ };
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/device/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACnB,cAAc,EACf,MAAM,iCAAiC,CAAC;AA2BzC,eAAO,MAAM,MAAM;;4BAEW,cAAc,KAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;6BAOnD,cAAc,KAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;4BAOrD,cAAc,KAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;wBAO1D,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;uBAMpC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;wBAMlC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;;CAO1D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const disableHMR: () => void;
2
+ //# sourceMappingURL=hmr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../../../src/hmr.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,QAAO,IAM7B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const isLogBoxSuppressed: () => boolean;
2
+ /** Hide LogBox UI while keeping console.error → Metro forwarding. */
3
+ export declare const disableLogBoxUI: () => void;
4
+ //# sourceMappingURL=logbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logbox.d.ts","sourceRoot":"","sources":["../../../src/logbox.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,kBAAkB,QAAO,OAA2B,CAAC;AAElE,qEAAqE;AACrE,eAAO,MAAM,eAAe,QAAO,IAelC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { TestSuite } from '@react-native-harness/bridge';
2
+ import type { ActiveTestContext } from './types.js';
2
3
  export type HookType = 'beforeEach' | 'afterEach' | 'beforeAll' | 'afterAll';
3
- export declare const runHooks: (suite: TestSuite, hookType: HookType) => Promise<void>;
4
+ export declare const runHooks: (suite: TestSuite, hookType: HookType, context?: ActiveTestContext) => Promise<void>;
4
5
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../src/runner/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;AAuC7E,eAAO,MAAM,QAAQ,GACnB,OAAO,SAAS,EAChB,UAAU,QAAQ,KACjB,OAAO,CAAC,IAAI,CAMd,CAAC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../src/runner/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;AAmD7E,eAAO,MAAM,QAAQ,GACnB,OAAO,SAAS,EAChB,UAAU,QAAQ,EAClB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,IAAI,CAgBd,CAAC"}
@@ -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;AAQtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,iBAAiB,EAAE,MAAM,CAAC;CAC/B;AA+HD,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,EAIV,SAAS,EACT,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,EAAqB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AASlE,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,iBAAiB,EAAE,MAAM,CAAC;CAC/B;AAyLD,eAAO,MAAM,QAAQ,GACnB,OAAO,SAAS,EAChB,SAAS,iBAAiB,KACzB,OAAO,CAAC,eAAe,CAoIzB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { HarnessTaskContext } from '@react-native-harness/bridge';
2
+ import type { ActiveTestContext } from './types.js';
3
+ export type TestLifecycleState = {
4
+ onTestFailed: Array<() => void | Promise<void>>;
5
+ onTestFinished: Array<() => void | Promise<void>>;
6
+ };
7
+ export declare class SkipTestError extends Error {
8
+ note?: string;
9
+ constructor(note?: string);
10
+ }
11
+ export declare const isSkipTestError: (error: unknown) => error is SkipTestError;
12
+ export declare const createTestLifecycleState: () => TestLifecycleState;
13
+ export declare const runOnTestFailed: (state: TestLifecycleState) => Promise<void>;
14
+ export declare const runOnTestFinished: (state: TestLifecycleState) => Promise<void>;
15
+ export declare const createTestContext: (task: HarnessTaskContext, state: TestLifecycleState) => ActiveTestContext;
16
+ //# sourceMappingURL=test-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-context.d.ts","sourceRoot":"","sources":["../../../../src/runner/test-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,cAAc,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;CACnD,CAAC;AAEF,qBAAa,aAAc,SAAQ,KAAK;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEF,IAAI,CAAC,EAAE,MAAM;CAK1B;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,aAEzD,CAAC;AA8BF,eAAO,MAAM,wBAAwB,QAAO,kBAK3C,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,OAAO,kBAAkB,KACxB,OAAO,CAAC,IAAI,CAId,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,kBAAkB,KACxB,OAAO,CAAC,IAAI,CAId,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,kBAAkB,EACxB,OAAO,kBAAkB,KACxB,iBAOF,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { EventEmitter } from '../utils/emitter.js';
2
- import type { TestRunnerEvents, TestSuite, TestSuiteResult } from '@react-native-harness/bridge';
2
+ import type { HarnessTestContext, TestRunnerEvents, TestSuite, TestSuiteResult } from '@react-native-harness/bridge';
3
3
  export type TestRunnerEventsEmitter = EventEmitter<TestRunnerEvents>;
4
4
  export type TestRunnerContext = {
5
5
  events: TestRunnerEventsEmitter;
6
6
  testFilePath: string;
7
7
  };
8
+ export type ActiveTestContext = HarnessTestContext;
8
9
  export type RunTestsOptions = {
9
10
  testSuite: TestSuite;
10
11
  testFilePath: string;
@@ -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,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"}
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,kBAAkB,EAClB,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,iBAAiB,GAAG,kBAAkB,CAAC;AAEnD,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,9 @@
1
+ export declare const URL: {
2
+ new (url: string | URL, base?: string | URL): URL;
3
+ prototype: URL;
4
+ canParse(url: string | URL, base?: string | URL): boolean;
5
+ createObjectURL(obj: Blob | MediaSource): string;
6
+ parse(url: string | URL, base?: string | URL): URL | null;
7
+ revokeObjectURL(url: string): void;
8
+ };
9
+ //# sourceMappingURL=react-native-url-polyfill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-url-polyfill.d.ts","sourceRoot":"","sources":["../../../../src/test-utils/react-native-url-polyfill.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG;;;;;;;CAAiB,CAAC"}