@react-native-harness/jest 1.6.0 → 1.7.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/dist/cli-args.d.ts +3 -4
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +3 -8
- package/dist/diagnostics/index.d.ts +4 -1
- package/dist/diagnostics/index.d.ts.map +1 -1
- package/dist/diagnostics/index.js +2 -1
- package/dist/diagnostics/report.d.ts +81 -1
- package/dist/diagnostics/report.d.ts.map +1 -1
- package/dist/diagnostics/report.js +225 -3
- package/dist/diagnostics/telemetry.d.ts +42 -0
- package/dist/diagnostics/telemetry.d.ts.map +1 -0
- package/dist/diagnostics/telemetry.js +120 -0
- package/dist/errors.d.ts +8 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +29 -3
- package/dist/execute-run.d.ts.map +1 -1
- package/dist/execute-run.js +73 -21
- package/dist/format-harness-error.d.ts.map +1 -1
- package/dist/format-harness-error.js +3 -0
- package/dist/harness-session.d.ts +8 -1
- package/dist/harness-session.d.ts.map +1 -1
- package/dist/harness-session.js +106 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/jest-preset.d.ts +3 -0
- package/dist/jest-preset.d.ts.map +1 -1
- package/dist/jest-preset.js +18 -0
- package/dist/relative-path.d.ts +8 -0
- package/dist/relative-path.d.ts.map +1 -0
- package/dist/relative-path.js +8 -0
- package/dist/resource-lock.d.ts.map +1 -1
- package/dist/resource-lock.js +47 -27
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +4 -4
- package/dist/watch-session.d.ts +6 -0
- package/dist/watch-session.d.ts.map +1 -0
- package/dist/watch-session.js +37 -0
- package/package.json +8 -8
- package/src/cli-args.ts +5 -13
- package/src/diagnostics/index.ts +12 -1
- package/src/diagnostics/report.ts +326 -5
- package/src/diagnostics/telemetry.ts +186 -0
- package/src/errors.ts +42 -5
- package/src/execute-run.ts +93 -23
- package/src/format-harness-error.ts +5 -0
- package/src/harness-session.ts +139 -21
- package/src/index.ts +8 -7
- package/src/jest-preset.ts +18 -0
- package/src/relative-path.ts +10 -0
- package/src/resource-lock.ts +64 -33
- package/src/run.ts +4 -4
- package/src/watch-session.ts +65 -0
- package/dist/crash-supervisor.d.ts +0 -21
- package/dist/crash-supervisor.d.ts.map +0 -1
- package/dist/crash-supervisor.js +0 -210
- package/dist/event-mapper.d.ts +0 -16
- package/dist/event-mapper.d.ts.map +0 -1
- package/dist/event-mapper.js +0 -120
- package/dist/global-setup.d.ts +0 -3
- package/dist/global-setup.d.ts.map +0 -1
- package/dist/global-setup.js +0 -60
- package/dist/global-teardown.d.ts +0 -3
- package/dist/global-teardown.d.ts.map +0 -1
- package/dist/global-teardown.js +0 -11
- package/dist/harness-reporter.d.ts +0 -8
- package/dist/harness-reporter.d.ts.map +0 -1
- package/dist/harness-reporter.js +0 -12
- package/dist/harness.d.ts +0 -47
- package/dist/harness.d.ts.map +0 -1
- package/dist/harness.js +0 -619
- package/dist/jest-options.d.ts +0 -2
- package/dist/jest-options.d.ts.map +0 -1
- package/dist/jest-options.js +0 -1
- package/dist/setup.d.ts +0 -3
- package/dist/setup.d.ts.map +0 -1
- package/dist/setup.js +0 -80
- package/dist/teardown.d.ts +0 -3
- package/dist/teardown.d.ts.map +0 -1
- package/dist/teardown.js +0 -10
- package/dist/types.d.ts +0 -17
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -1
package/dist/global-setup.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { getConfig, } from '@react-native-harness/config';
|
|
2
|
-
import { getHarness as getHarnessExternal, NoRunnerSpecifiedError, RunnerNotFoundError, } from '@react-native-harness/cli/external';
|
|
3
|
-
import { preRunMessage } from 'jest-util';
|
|
4
|
-
import { getAdditionalCliArgs } from './cli-args.js';
|
|
5
|
-
import { logTestEnvironmentReady, logTestRunHeader } from './logs.js';
|
|
6
|
-
const getHarnessConfig = async (globalConfig) => {
|
|
7
|
-
const projectRoot = globalConfig.rootDir;
|
|
8
|
-
const { config: harnessConfig } = await getConfig(projectRoot);
|
|
9
|
-
return harnessConfig;
|
|
10
|
-
};
|
|
11
|
-
const getHarnessRunner = (config, cliArgs) => {
|
|
12
|
-
const selectedRunnerName = cliArgs.harnessRunner ?? config.defaultRunner;
|
|
13
|
-
if (!selectedRunnerName) {
|
|
14
|
-
throw new NoRunnerSpecifiedError(config.runners);
|
|
15
|
-
}
|
|
16
|
-
const runner = config.runners.find((runner) => runner.name === selectedRunnerName);
|
|
17
|
-
if (!runner) {
|
|
18
|
-
throw new RunnerNotFoundError(selectedRunnerName, config.runners);
|
|
19
|
-
}
|
|
20
|
-
return runner;
|
|
21
|
-
};
|
|
22
|
-
const getHarness = async (runner) => {
|
|
23
|
-
return await getHarnessExternal(runner);
|
|
24
|
-
};
|
|
25
|
-
export default async function (globalConfig) {
|
|
26
|
-
preRunMessage.remove(process.stderr);
|
|
27
|
-
const harnessConfig = global.HARNESS_CONFIG ?? (await getHarnessConfig(globalConfig));
|
|
28
|
-
const isWatchMode = globalConfig.watch || globalConfig.watchAll;
|
|
29
|
-
if (global.HARNESS) {
|
|
30
|
-
// Do not setup again if HARNESS is already initialized
|
|
31
|
-
// This is useful when running tests in watch mode
|
|
32
|
-
if (harnessConfig.resetEnvironmentBetweenTestFiles) {
|
|
33
|
-
// In watch mode, we want to restart the environment before each test run
|
|
34
|
-
await new Promise((resolve) => {
|
|
35
|
-
global.HARNESS.bridge.once('ready', resolve);
|
|
36
|
-
global.HARNESS.environment.restart();
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
if (isWatchMode) {
|
|
42
|
-
// In watch mode, we want to dispose the Harness when the process exits.
|
|
43
|
-
process.on('exit', async () => {
|
|
44
|
-
await global.HARNESS.bridge.dispose();
|
|
45
|
-
await global.HARNESS.environment.dispose();
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
const cliArgs = getAdditionalCliArgs();
|
|
49
|
-
const selectedRunner = getHarnessRunner(harnessConfig, cliArgs);
|
|
50
|
-
if (globalConfig.collectCoverage) {
|
|
51
|
-
// This is going to be used by @react-native-harness/babel-preset
|
|
52
|
-
// to enable instrumentation of test files.
|
|
53
|
-
process.env.RN_HARNESS_COLLECT_COVERAGE = 'true';
|
|
54
|
-
}
|
|
55
|
-
logTestRunHeader(selectedRunner);
|
|
56
|
-
const harness = await getHarness(selectedRunner);
|
|
57
|
-
logTestEnvironmentReady(selectedRunner);
|
|
58
|
-
global.HARNESS_CONFIG = harnessConfig;
|
|
59
|
-
global.HARNESS = harness;
|
|
60
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"global-teardown.d.ts","sourceRoot":"","sources":["../src/global-teardown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAExD,yBAA+B,YAAY,EAAE,UAAU,CAAC,YAAY,iBAYnE"}
|
package/dist/global-teardown.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export default async function (globalConfig) {
|
|
2
|
-
const isWatchMode = globalConfig.watch || globalConfig.watchAll;
|
|
3
|
-
if (isWatchMode) {
|
|
4
|
-
// In watch mode, we don't want to dispose the Harness.
|
|
5
|
-
return;
|
|
6
|
-
}
|
|
7
|
-
if (global.HARNESS) {
|
|
8
|
-
await global.HARNESS.bridge.dispose();
|
|
9
|
-
await global.HARNESS.environment.dispose();
|
|
10
|
-
}
|
|
11
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { BaseReporter } from '@jest/reporters';
|
|
2
|
-
import { Config } from '@jest/types';
|
|
3
|
-
export default class HarnessReporter extends BaseReporter {
|
|
4
|
-
#private;
|
|
5
|
-
constructor(globalConfig: Config.GlobalConfig);
|
|
6
|
-
onRunStart(): void;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=harness-reporter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"harness-reporter.d.ts","sourceRoot":"","sources":["../src/harness-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,YAAY;;gBAE3C,YAAY,EAAE,MAAM,CAAC,YAAY;IAKpC,UAAU,IAAI,IAAI;CAM5B"}
|
package/dist/harness-reporter.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { BaseReporter } from '@jest/reporters';
|
|
2
|
-
export default class HarnessReporter extends BaseReporter {
|
|
3
|
-
#globalConfig;
|
|
4
|
-
constructor(globalConfig) {
|
|
5
|
-
super();
|
|
6
|
-
this.#globalConfig = globalConfig;
|
|
7
|
-
}
|
|
8
|
-
onRunStart() {
|
|
9
|
-
super.onRunStart();
|
|
10
|
-
this.log(`Selected runner: ${this.#globalConfig.selectedRunner.name}`);
|
|
11
|
-
}
|
|
12
|
-
}
|
package/dist/harness.d.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { BridgeServer } from '@react-native-harness/bridge/server';
|
|
2
|
-
import { HarnessContext, TestExecutionOptions, TestSuiteResult } from '@react-native-harness/bridge';
|
|
3
|
-
import { type AppLaunchOptions, HarnessPlatform, HarnessPlatformRunner } from '@react-native-harness/platforms';
|
|
4
|
-
import { type MetroInstance } from '@react-native-harness/bundler-metro';
|
|
5
|
-
import { type HarnessPluginManager, type HarnessRunStatus, type HarnessRunSummary } from '@react-native-harness/plugins';
|
|
6
|
-
import { Config as HarnessConfig } from '@react-native-harness/config';
|
|
7
|
-
import { type CrashSupervisor } from './crash-supervisor.js';
|
|
8
|
-
export type HarnessRunTestsOptions = Exclude<TestExecutionOptions, 'platform'>;
|
|
9
|
-
export type HarnessRunState = {
|
|
10
|
-
runId: string;
|
|
11
|
-
startTime: number;
|
|
12
|
-
testFiles: string[];
|
|
13
|
-
watchMode: boolean;
|
|
14
|
-
coverageEnabled: boolean;
|
|
15
|
-
summary?: HarnessRunSummary;
|
|
16
|
-
status?: HarnessRunStatus;
|
|
17
|
-
error?: unknown;
|
|
18
|
-
};
|
|
19
|
-
export type Harness = {
|
|
20
|
-
context: HarnessContext;
|
|
21
|
-
config: HarnessConfig;
|
|
22
|
-
runTests: (path: string, options: HarnessRunTestsOptions) => Promise<TestSuiteResult>;
|
|
23
|
-
ensureAppReady: (testFilePath: string) => Promise<void>;
|
|
24
|
-
restart: (testFilePath?: string) => Promise<void>;
|
|
25
|
-
dispose: () => Promise<void>;
|
|
26
|
-
crashSupervisor: CrashSupervisor;
|
|
27
|
-
callHook: HarnessPluginManager<HarnessConfig, HarnessPlatform>['callHook'];
|
|
28
|
-
setRunState: (runState: HarnessRunState | null) => void;
|
|
29
|
-
getRunState: () => HarnessRunState | null;
|
|
30
|
-
};
|
|
31
|
-
export declare const maybeLogMetroCacheReuse: (config: HarnessConfig, platform: HarnessPlatform, projectRoot: string) => void;
|
|
32
|
-
export declare const waitForAppReady: (options: {
|
|
33
|
-
metroInstance: MetroInstance;
|
|
34
|
-
serverBridge: BridgeServer;
|
|
35
|
-
platformInstance: HarnessPlatformRunner;
|
|
36
|
-
platformId: string;
|
|
37
|
-
bundleStartTimeout: number;
|
|
38
|
-
readyTimeout: number;
|
|
39
|
-
maxAppRestarts: number;
|
|
40
|
-
testFilePath: string;
|
|
41
|
-
crashSupervisor: CrashSupervisor;
|
|
42
|
-
signal?: AbortSignal;
|
|
43
|
-
appLaunchOptions?: AppLaunchOptions;
|
|
44
|
-
launchApp?: () => Promise<void>;
|
|
45
|
-
}) => Promise<void>;
|
|
46
|
-
export declare const getHarness: (config: HarnessConfig, platform: HarnessPlatform, projectRoot: string) => Promise<Harness>;
|
|
47
|
-
//# sourceMappingURL=harness.d.ts.map
|
package/dist/harness.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EACb,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,cAAc,EAGd,oBAAoB,EACpB,eAAe,EAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,KAAK,gBAAgB,EACrB,eAAe,EAEf,qBAAqB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAIL,KAAK,aAAa,EAGnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAgB/B,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;AAE/E,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,KAC5B,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9B,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,oBAAoB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3E,WAAW,EAAE,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,QAAQ,aAAa,EACrB,UAAU,eAAe,EACzB,aAAa,MAAM,KAClB,IAIF,CAAC;AAgDF,eAAO,MAAM,eAAe,GAAU,SAAS;IAC7C,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC,KAAG,OAAO,CAAC,IAAI,CA2Ef,CAAC;AA0mBF,eAAO,MAAM,UAAU,GACrB,QAAQ,aAAa,EACrB,UAAU,eAAe,EACzB,aAAa,MAAM,KAClB,OAAO,CAAC,OAAO,CAYjB,CAAC"}
|