@alwaysmeticulous/cli 2.237.1 → 2.239.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/commands/prepare-for-meticulous-tests/prepare-for-meticulous-tests.command.d.ts +22 -0
- package/dist/commands/prepare-for-meticulous-tests/prepare-for-meticulous-tests.command.js +93 -0
- package/dist/commands/prepare-for-meticulous-tests/prepare-for-meticulous-tests.command.js.map +1 -0
- package/dist/commands/replay/replay.command.d.ts +4 -0
- package/dist/commands/replay/replay.command.js +17 -1
- package/dist/commands/replay/replay.command.js.map +1 -1
- package/dist/commands/replay/utils/replay-debugger.ui.d.ts +2 -1
- package/dist/commands/replay/utils/replay-debugger.ui.js +46 -7
- package/dist/commands/replay/utils/replay-debugger.ui.js.map +1 -1
- package/dist/commands/run-all-tests-in-cloud/run-all-tests-in-cloud.command.d.ts +10 -0
- package/dist/commands/run-all-tests-in-cloud/run-all-tests-in-cloud.command.js +71 -2
- package/dist/commands/run-all-tests-in-cloud/run-all-tests-in-cloud.command.js.map +1 -1
- package/dist/main.js +2 -0
- package/dist/main.js.map +1 -1
- package/package.json +9 -8
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="yargs" />
|
|
2
|
+
import log from "loglevel";
|
|
3
|
+
export declare const prepareForMeticulousTests: ({ apiToken, headCommit, triggerScript, logger, }: {
|
|
4
|
+
apiToken: string;
|
|
5
|
+
headCommit: string;
|
|
6
|
+
triggerScript: string;
|
|
7
|
+
logger: log.Logger;
|
|
8
|
+
}) => Promise<void>;
|
|
9
|
+
export declare const prepareForMeticulousTestsCommand: import("yargs").CommandModule<unknown, import("yargs").InferredOptionTypes<{
|
|
10
|
+
readonly apiToken: {
|
|
11
|
+
readonly string: true;
|
|
12
|
+
};
|
|
13
|
+
readonly headCommit: {
|
|
14
|
+
readonly string: true;
|
|
15
|
+
readonly description: "The head commit SHA on which the tests will be executed against.";
|
|
16
|
+
};
|
|
17
|
+
readonly triggerScript: {
|
|
18
|
+
readonly string: true;
|
|
19
|
+
readonly required: true;
|
|
20
|
+
readonly description: "Path to script that triggers the generation of a Meticulous test run on a specific commit in case base test run is not available. The script will be called with the commit SHA as an argument.";
|
|
21
|
+
};
|
|
22
|
+
}>>;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.prepareForMeticulousTestsCommand = exports.prepareForMeticulousTests = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const client_1 = require("@alwaysmeticulous/client");
|
|
6
|
+
const common_1 = require("@alwaysmeticulous/common");
|
|
7
|
+
const command_builder_1 = require("../../command-utils/command-builder");
|
|
8
|
+
const common_options_1 = require("../../command-utils/common-options");
|
|
9
|
+
const out_of_date_client_error_1 = require("../../utils/out-of-date-client-error");
|
|
10
|
+
const prepareForMeticulousTests = async ({ apiToken, headCommit, triggerScript, logger, }) => {
|
|
11
|
+
try {
|
|
12
|
+
const client = (0, client_1.createClient)({ apiToken });
|
|
13
|
+
// Non-Github-hosted projects are currently not supported
|
|
14
|
+
const { baseTestRun, baseCommitSha, commitIsInPullRequest } = await (0, client_1.getGitHubCloudReplayBaseTestRun)({
|
|
15
|
+
client,
|
|
16
|
+
headCommitSha: headCommit,
|
|
17
|
+
});
|
|
18
|
+
if (baseTestRun !== null) {
|
|
19
|
+
logger.log("Base test run already exists, no preparation needed");
|
|
20
|
+
logger.log("✅ Preparation for Meticulous tests completed successfully");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (!commitIsInPullRequest) {
|
|
24
|
+
logger.log(`Base test run does not exist for commit '${baseCommitSha}', but this commit is not associated with any pull request. Skipping trigger script execution to prevent chain of test runs through Git history`);
|
|
25
|
+
logger.log("✅ Preparation for Meticulous tests completed successfully");
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// We execute the trigger script only in case that the commit is in a pull request.
|
|
29
|
+
// The reason is that otherwise we will start a chain of runs going back through all the Git history.
|
|
30
|
+
logger.log(`Base test run doesn't exist and commit is associated with a pull request.`);
|
|
31
|
+
logger.log(`Executing trigger script: \`${triggerScript}\` on base commit \`${baseCommitSha}\``);
|
|
32
|
+
try {
|
|
33
|
+
(0, child_process_1.execSync)(`${triggerScript} ${baseCommitSha}`, {
|
|
34
|
+
stdio: "inherit",
|
|
35
|
+
encoding: "utf8",
|
|
36
|
+
});
|
|
37
|
+
logger.log("Trigger script executed successfully");
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
logger.error(`Failed to execute trigger script \`${triggerScript} ${baseCommitSha}\`: ${error}`);
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
logger.log("✅ Preparation for Meticulous tests completed successfully");
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
if ((0, out_of_date_client_error_1.isOutOfDateClientError)(error)) {
|
|
47
|
+
throw new out_of_date_client_error_1.OutOfDateCLIError();
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
exports.prepareForMeticulousTests = prepareForMeticulousTests;
|
|
55
|
+
const handler = async ({ apiToken, headCommit, triggerScript, }) => {
|
|
56
|
+
const logger = (0, common_1.initLogger)();
|
|
57
|
+
const apiToken_ = (0, client_1.getApiToken)(apiToken);
|
|
58
|
+
if (!apiToken_) {
|
|
59
|
+
logger.error("You must provide an API token by using the --apiToken parameter");
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
const headCommit_ = await (0, common_1.getCommitSha)(headCommit);
|
|
63
|
+
if (!headCommit_) {
|
|
64
|
+
logger.error("No head commit sha found, you must be in a git repository or provide one with --headCommit");
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
await (0, exports.prepareForMeticulousTests)({
|
|
68
|
+
apiToken: apiToken_,
|
|
69
|
+
headCommit: headCommit_,
|
|
70
|
+
triggerScript,
|
|
71
|
+
logger,
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
exports.prepareForMeticulousTestsCommand = (0, command_builder_1.buildCommand)("prepare-for-meticulous-tests")
|
|
75
|
+
.details({
|
|
76
|
+
describe: "Prepare for Meticulous tests. If necessary, triggers the generation of a test run on the base commit against which `headCommit` will be tested against.",
|
|
77
|
+
})
|
|
78
|
+
.options({
|
|
79
|
+
apiToken: {
|
|
80
|
+
...common_options_1.OPTIONS.apiToken,
|
|
81
|
+
},
|
|
82
|
+
headCommit: {
|
|
83
|
+
string: true,
|
|
84
|
+
description: "The head commit SHA on which the tests will be executed against.",
|
|
85
|
+
},
|
|
86
|
+
triggerScript: {
|
|
87
|
+
string: true,
|
|
88
|
+
required: true,
|
|
89
|
+
description: "Path to script that triggers the generation of a Meticulous test run on a specific commit in case base test run is not available. The script will be called with the commit SHA as an argument.",
|
|
90
|
+
},
|
|
91
|
+
})
|
|
92
|
+
.handler(handler);
|
|
93
|
+
//# sourceMappingURL=prepare-for-meticulous-tests.command.js.map
|
package/dist/commands/prepare-for-meticulous-tests/prepare-for-meticulous-tests.command.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-for-meticulous-tests.command.js","sourceRoot":"","sources":["../../../src/commands/prepare-for-meticulous-tests/prepare-for-meticulous-tests.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,6 +119,10 @@ export declare const replayCommand: import("yargs").CommandModule<unknown, impor
|
|
|
119
119
|
description: string;
|
|
120
120
|
default: boolean;
|
|
121
121
|
};
|
|
122
|
+
startAtEvent: {
|
|
123
|
+
number: true;
|
|
124
|
+
description: string;
|
|
125
|
+
};
|
|
122
126
|
moveBeforeMouseEvent: {
|
|
123
127
|
readonly boolean: true;
|
|
124
128
|
readonly description: "Simulate mouse movement before mouse events";
|
|
@@ -7,7 +7,7 @@ const command_builder_1 = require("../../command-utils/command-builder");
|
|
|
7
7
|
const common_options_1 = require("../../command-utils/common-options");
|
|
8
8
|
const out_of_date_client_error_1 = require("../../utils/out-of-date-client-error");
|
|
9
9
|
const replay_debugger_ui_1 = require("./utils/replay-debugger.ui");
|
|
10
|
-
const replayCommandHandler = async ({ apiToken, commitSha, sessionId, appUrl, simulationIdForAssets, headless, devTools, bypassCSP, takeSnapshots, baseReplayId, diffThreshold, diffPixelThreshold, shiftTime, networkStubbing, moveBeforeMouseEvent, cookiesFile, disableRemoteFonts, noSandbox, skipPauses, maxDurationMs, maxEventCount, storyboard, essentialFeaturesOnly, logPossibleNonDeterminism, sessionIdForApplicationStorage, debugger: enableStepThroughDebugger, networkDebuggingRequestRegexes, networkDebuggingTransformationFns, networkDebuggingRequestTypes, networkDebuggingWebsocketUrlRegexes, enableCssCoverage, }) => {
|
|
10
|
+
const replayCommandHandler = async ({ apiToken, commitSha, sessionId, appUrl, simulationIdForAssets, headless, devTools, bypassCSP, takeSnapshots, baseReplayId, diffThreshold, diffPixelThreshold, shiftTime, networkStubbing, moveBeforeMouseEvent, cookiesFile, disableRemoteFonts, noSandbox, skipPauses, maxDurationMs, maxEventCount, storyboard, essentialFeaturesOnly, logPossibleNonDeterminism, sessionIdForApplicationStorage, debugger: enableStepThroughDebugger, startAtEvent, networkDebuggingRequestRegexes, networkDebuggingTransformationFns, networkDebuggingRequestTypes, networkDebuggingWebsocketUrlRegexes, enableCssCoverage, }) => {
|
|
11
11
|
var _a;
|
|
12
12
|
if (!takeSnapshots && storyboard) {
|
|
13
13
|
throw new Error("Cannot take storyboard visual snapshots without taking end state snapshots. Please set '--takeSnapshots' to true, or '--storyboard' to false.");
|
|
@@ -15,6 +15,17 @@ const replayCommandHandler = async ({ apiToken, commitSha, sessionId, appUrl, si
|
|
|
15
15
|
if (headless && enableStepThroughDebugger) {
|
|
16
16
|
throw new Error("Cannot run with both --debugger flag and --headless flag at the same time.");
|
|
17
17
|
}
|
|
18
|
+
if (startAtEvent != null) {
|
|
19
|
+
if (!enableStepThroughDebugger) {
|
|
20
|
+
throw new Error("The --startAtEvent option requires the --debugger flag to be enabled.");
|
|
21
|
+
}
|
|
22
|
+
if (!Number.isInteger(startAtEvent)) {
|
|
23
|
+
throw new Error(`Invalid --startAtEvent value: ${startAtEvent}. Must be an integer.`);
|
|
24
|
+
}
|
|
25
|
+
if (startAtEvent < 0) {
|
|
26
|
+
throw new Error(`Invalid --startAtEvent value: ${startAtEvent}. Must be non-negative.`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
18
29
|
let networkDebuggingOptions = undefined;
|
|
19
30
|
if (networkDebuggingRequestRegexes ||
|
|
20
31
|
networkDebuggingTransformationFns ||
|
|
@@ -96,6 +107,7 @@ const replayCommandHandler = async ({ apiToken, commitSha, sessionId, appUrl, si
|
|
|
96
107
|
onLogEventTarget: replayExecution.logEventTarget,
|
|
97
108
|
onCloseReplayedPage: replayExecution.closePage,
|
|
98
109
|
replayableEvents: replayExecution.eventsBeingReplayed,
|
|
110
|
+
...(startAtEvent != null ? { startAtEvent } : {}),
|
|
99
111
|
});
|
|
100
112
|
getOnBeforeUserEventCallback.resolve(stepThroughDebuggerUI.onBeforeUserEvent);
|
|
101
113
|
getOnClosePageCallback.resolve(stepThroughDebuggerUI.close);
|
|
@@ -157,6 +169,10 @@ exports.replayCommand = (0, command_builder_1.buildCommand)("simulate")
|
|
|
157
169
|
description: "Opens a step through debugger to advance through the replay event by event",
|
|
158
170
|
default: false,
|
|
159
171
|
},
|
|
172
|
+
startAtEvent: {
|
|
173
|
+
number: true,
|
|
174
|
+
description: "Automatically advance to this event number when starting the debugger (e.g., to jump to 'Event #95' use --startAtEvent=95). Requires --debugger flag. Events will replay rapidly until reaching the specified event.",
|
|
175
|
+
},
|
|
160
176
|
moveBeforeMouseEvent: common_options_1.OPTIONS.moveBeforeMouseEvent,
|
|
161
177
|
cookiesFile: {
|
|
162
178
|
string: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.command.js","sourceRoot":"","sources":["../../../src/commands/replay/replay.command.ts"],"names":[],"mappings":";;;AAIA,qDAAiD;AACjD,iGAAuF;AAUvF,yEAAmE;AACnE,uEAI4C;AAC5C,mFAG8C;AAC9C,mEAAuE;
|
|
1
|
+
{"version":3,"file":"replay.command.js","sourceRoot":"","sources":["../../../src/commands/replay/replay.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export interface ReplayDebuggerUIOptions {
|
|
|
10
10
|
onCloseReplayedPage: () => void;
|
|
11
11
|
onLogEventTarget: (event: ReplayableEvent) => Promise<void>;
|
|
12
12
|
replayableEvents: ReplayableEvent[];
|
|
13
|
+
startAtEvent?: number;
|
|
13
14
|
}
|
|
14
15
|
export interface ReplayDebuggerUI {
|
|
15
16
|
page: Page;
|
|
@@ -19,5 +20,5 @@ export interface StepThroughDebuggerUI {
|
|
|
19
20
|
onBeforeUserEvent: OnBeforeUserEventCallback;
|
|
20
21
|
close: () => Promise<void>;
|
|
21
22
|
}
|
|
22
|
-
export declare const openStepThroughDebuggerUI: ({ onCloseReplayedPage, onLogEventTarget, replayableEvents, }: ReplayDebuggerUIOptions) => Promise<StepThroughDebuggerUI>;
|
|
23
|
+
export declare const openStepThroughDebuggerUI: ({ onCloseReplayedPage, onLogEventTarget, replayableEvents, startAtEvent, }: ReplayDebuggerUIOptions) => Promise<StepThroughDebuggerUI>;
|
|
23
24
|
export {};
|
|
@@ -7,8 +7,49 @@ const puppeteer_core_1 = require("puppeteer-core");
|
|
|
7
7
|
// openStepThroughDebuggerUI returns a OnBeforeUserEventCallback, which the replay code
|
|
8
8
|
// calls before each next event, and blocks on the returned promise. We use this to pause
|
|
9
9
|
// the execution until the user OKs it to continue to a certain event.
|
|
10
|
-
const openStepThroughDebuggerUI = async ({ onCloseReplayedPage, onLogEventTarget, replayableEvents, }) => {
|
|
10
|
+
const openStepThroughDebuggerUI = async ({ onCloseReplayedPage, onLogEventTarget, replayableEvents, startAtEvent, }) => {
|
|
11
11
|
const logger = (0, common_1.initLogger)();
|
|
12
|
+
let targetEventIndex = undefined;
|
|
13
|
+
if (startAtEvent != null) {
|
|
14
|
+
const arrayIndex = replayableEvents.findIndex((event) => "originalEventIndex" in event &&
|
|
15
|
+
event.originalEventIndex === startAtEvent);
|
|
16
|
+
if (arrayIndex === -1) {
|
|
17
|
+
const eventsWithIndices = replayableEvents
|
|
18
|
+
.map((e, idx) => ({
|
|
19
|
+
arrayIndex: idx,
|
|
20
|
+
eventNumber: "originalEventIndex" in e ? e.originalEventIndex : null,
|
|
21
|
+
}))
|
|
22
|
+
.filter((e) => e.eventNumber != null);
|
|
23
|
+
if (eventsWithIndices.length === 0) {
|
|
24
|
+
logger.warn(`[debugger-ui] No events with originalEventIndex found. Starting at beginning.`);
|
|
25
|
+
targetEventIndex = 0;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const closestEvent = eventsWithIndices.reduce((closest, current) => {
|
|
29
|
+
if (current.eventNumber >= startAtEvent)
|
|
30
|
+
return closest;
|
|
31
|
+
if (!closest || current.eventNumber > closest.eventNumber) {
|
|
32
|
+
return current;
|
|
33
|
+
}
|
|
34
|
+
return closest;
|
|
35
|
+
}, null);
|
|
36
|
+
const minEvent = Math.min(...eventsWithIndices.map((e) => e.eventNumber));
|
|
37
|
+
const maxEvent = Math.max(...eventsWithIndices.map((e) => e.eventNumber));
|
|
38
|
+
if (closestEvent) {
|
|
39
|
+
logger.warn(`[debugger-ui] Event #${startAtEvent} not found. Available events: #${minEvent} to #${maxEvent}. Starting at #${closestEvent.eventNumber}.`);
|
|
40
|
+
targetEventIndex = closestEvent.arrayIndex;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
logger.warn(`[debugger-ui] Event #${startAtEvent} not found. Available events: #${minEvent} to #${maxEvent}. Starting at beginning.`);
|
|
44
|
+
targetEventIndex = 0;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
targetEventIndex = arrayIndex;
|
|
50
|
+
logger.info(`[debugger-ui] Auto-advancing to event #${startAtEvent}...`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
12
53
|
// Ensure browser is available and get executable path
|
|
13
54
|
const executablePath = await (0, common_1.ensureBrowser)();
|
|
14
55
|
// Start the UI server
|
|
@@ -21,19 +62,17 @@ const openStepThroughDebuggerUI = async ({ onCloseReplayedPage, onLogEventTarget
|
|
|
21
62
|
});
|
|
22
63
|
// Create page for the debugger UI
|
|
23
64
|
const debuggerPage = (await browser.pages())[0];
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
height: 0,
|
|
27
|
-
});
|
|
65
|
+
// Disable viewport emulation to use the actual window size
|
|
66
|
+
await debuggerPage.setViewport(null);
|
|
28
67
|
/**
|
|
29
68
|
* The index the page is in the process of advancing to. Equal to the current index
|
|
30
69
|
* if the page has already replayed all the so-far-requested user events.
|
|
31
70
|
*/
|
|
32
|
-
let targetIndex = 0;
|
|
71
|
+
let targetIndex = targetEventIndex !== null && targetEventIndex !== void 0 ? targetEventIndex : 0;
|
|
33
72
|
let state = {
|
|
34
73
|
events: replayableEvents,
|
|
35
74
|
index: 0,
|
|
36
|
-
loading:
|
|
75
|
+
loading: targetEventIndex != null && targetEventIndex > 0,
|
|
37
76
|
};
|
|
38
77
|
let readyPromiseResolve;
|
|
39
78
|
const readyPromise = new Promise((resolve) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay-debugger.ui.js","sourceRoot":"","sources":["../../../../src/commands/replay/utils/replay-debugger.ui.ts"],"names":[],"mappings":";;;AACA,qDAAqE;AACrE,6EAAqE;AAKrE,mDAAuD;
|
|
1
|
+
{"version":3,"file":"replay-debugger.ui.js","sourceRoot":"","sources":["../../../../src/commands/replay/utils/replay-debugger.ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,4 +54,14 @@ export declare const runAllTestsInCloudCommand: import("yargs").CommandModule<un
|
|
|
54
54
|
readonly description: "The regex to match the companion assets.";
|
|
55
55
|
readonly default: undefined;
|
|
56
56
|
};
|
|
57
|
+
readonly hadPreparedForTests: {
|
|
58
|
+
readonly boolean: true;
|
|
59
|
+
readonly description: "Enable in case you called `prepare-for-meticulous-tests` before running this command.";
|
|
60
|
+
readonly default: false;
|
|
61
|
+
};
|
|
62
|
+
readonly triggerScript: {
|
|
63
|
+
readonly string: true;
|
|
64
|
+
readonly description: "Path to script that triggers the generation of a Meticulous test run on a specific commit in case base test run is not available. The script will be called with the commit SHA as an argument.";
|
|
65
|
+
readonly default: undefined;
|
|
66
|
+
};
|
|
57
67
|
}>>;
|
|
@@ -15,13 +15,16 @@ const command_builder_1 = require("../../command-utils/command-builder");
|
|
|
15
15
|
const common_options_1 = require("../../command-utils/common-options");
|
|
16
16
|
const environment_utils_1 = require("../../utils/environment.utils");
|
|
17
17
|
const out_of_date_client_error_1 = require("../../utils/out-of-date-client-error");
|
|
18
|
+
const prepare_for_meticulous_tests_command_1 = require("../prepare-for-meticulous-tests/prepare-for-meticulous-tests.command");
|
|
19
|
+
const POLL_FOR_BASE_TEST_RUN_INTERVAL_MS = 10000;
|
|
20
|
+
const POLL_FOR_BASE_TEST_RUN_MAX_TIMEOUT_MS = 30 * 60 * 1000; // 30 minutes
|
|
18
21
|
const environmentToString = (environment) => {
|
|
19
22
|
if (environment.isCI) {
|
|
20
23
|
return `cli-ci-${environment.ci.name}`;
|
|
21
24
|
}
|
|
22
25
|
return "cli-local";
|
|
23
26
|
};
|
|
24
|
-
const handler = async ({ apiToken, commitSha: commitSha_, appUrl, secureTunnelHost, keepTunnelOpenSec, allowInvalidCert, proxyAllUrls, rewriteHostnameToAppUrl, enableDnsCache, http2Connections, companionAssetsFolder, companionAssetsRegex, }) => {
|
|
27
|
+
const handler = async ({ apiToken, commitSha: commitSha_, appUrl, secureTunnelHost, keepTunnelOpenSec, allowInvalidCert, proxyAllUrls, rewriteHostnameToAppUrl, enableDnsCache, http2Connections, companionAssetsFolder, companionAssetsRegex, hadPreparedForTests, triggerScript, }) => {
|
|
25
28
|
const logger = (0, common_1.initLogger)();
|
|
26
29
|
const commitSha = await (0, common_1.getCommitSha)(commitSha_);
|
|
27
30
|
if (!!companionAssetsFolder !== !!companionAssetsRegex) {
|
|
@@ -32,6 +35,27 @@ const handler = async ({ apiToken, commitSha: commitSha_, appUrl, secureTunnelHo
|
|
|
32
35
|
logger.error("No commit sha found, you must be in a git repository or provide one with --commitSha");
|
|
33
36
|
process.exit(1);
|
|
34
37
|
}
|
|
38
|
+
const apiToken_ = (0, client_1.getApiToken)(apiToken);
|
|
39
|
+
if (!apiToken_) {
|
|
40
|
+
logger.error("You must provide an API token by using the --apiToken parameter");
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
if (!hadPreparedForTests && triggerScript) {
|
|
44
|
+
// If we have a script to trigger a run, this signals that the user is not sure whether the base test run is available.
|
|
45
|
+
// In this case, we trigger the preparation for meticulous tests.
|
|
46
|
+
// Do this only if we did not prepare for the tests.
|
|
47
|
+
await (0, prepare_for_meticulous_tests_command_1.prepareForMeticulousTests)({
|
|
48
|
+
apiToken: apiToken_,
|
|
49
|
+
headCommit: commitSha,
|
|
50
|
+
triggerScript,
|
|
51
|
+
logger,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (hadPreparedForTests || triggerScript) {
|
|
55
|
+
// If we prepared to run all tests in cloud, then we need to wait for base to be available.
|
|
56
|
+
// The preprocessing step starts to compute base, but it might take some time to have it available.
|
|
57
|
+
await waitForBase({ apiToken: apiToken_, commitSha, logger });
|
|
58
|
+
}
|
|
35
59
|
logger.info(`Running all tests in cloud for commit ${commitSha}`);
|
|
36
60
|
let scheduledTestRunSpinner = (0, ora_1.default)("Starting test run execution").start();
|
|
37
61
|
const progressBar = new cli_progress_1.default.SingleBar({
|
|
@@ -55,7 +79,7 @@ const handler = async ({ apiToken, commitSha: commitSha_, appUrl, secureTunnelHo
|
|
|
55
79
|
const environment = (0, environment_utils_1.getEnvironment)();
|
|
56
80
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
57
81
|
const { testRun } = await (0, remote_replay_launcher_1.executeRemoteTestRun)({
|
|
58
|
-
apiToken,
|
|
82
|
+
apiToken: apiToken_,
|
|
59
83
|
commitSha,
|
|
60
84
|
appUrl,
|
|
61
85
|
secureTunnelHost,
|
|
@@ -137,6 +161,41 @@ const handler = async ({ apiToken, commitSha: commitSha_, appUrl, secureTunnelHo
|
|
|
137
161
|
endProgressBar();
|
|
138
162
|
}
|
|
139
163
|
};
|
|
164
|
+
/**
|
|
165
|
+
* Waits for base run to be available, polling until found or timeout.
|
|
166
|
+
* Timeout is set to 30 minutes, and after that we just proceed without a base.
|
|
167
|
+
* Projects that are not hosted on Github are not currently supported.
|
|
168
|
+
*/
|
|
169
|
+
const waitForBase = async ({ apiToken, commitSha, logger, }) => {
|
|
170
|
+
const client = (0, client_1.createClient)({ apiToken });
|
|
171
|
+
const startTime = Date.now();
|
|
172
|
+
// Non-Github-hosted projects are currently not supported
|
|
173
|
+
let cloudReplayBaseTestRun = await (0, client_1.getGitHubCloudReplayBaseTestRun)({
|
|
174
|
+
client,
|
|
175
|
+
headCommitSha: commitSha,
|
|
176
|
+
});
|
|
177
|
+
let testRun = cloudReplayBaseTestRun.baseTestRun;
|
|
178
|
+
let lastTimeElapsed = 0;
|
|
179
|
+
while (!testRun) {
|
|
180
|
+
const timeElapsed = Date.now() - startTime;
|
|
181
|
+
if (timeElapsed > POLL_FOR_BASE_TEST_RUN_MAX_TIMEOUT_MS) {
|
|
182
|
+
logger.error(`Timed out after ${POLL_FOR_BASE_TEST_RUN_MAX_TIMEOUT_MS / 1000} seconds waiting for base test run`);
|
|
183
|
+
// We proceed without base
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
if (lastTimeElapsed == 0 || timeElapsed - lastTimeElapsed >= 30000) {
|
|
187
|
+
// Log at most once every 30 seconds
|
|
188
|
+
logger.info(`Waiting for base test run to be created. Time elapsed: ${timeElapsed}ms`);
|
|
189
|
+
lastTimeElapsed = timeElapsed;
|
|
190
|
+
}
|
|
191
|
+
await new Promise((resolve) => setTimeout(resolve, POLL_FOR_BASE_TEST_RUN_INTERVAL_MS));
|
|
192
|
+
cloudReplayBaseTestRun = await (0, client_1.getGitHubCloudReplayBaseTestRun)({
|
|
193
|
+
client,
|
|
194
|
+
headCommitSha: commitSha,
|
|
195
|
+
});
|
|
196
|
+
testRun = cloudReplayBaseTestRun.baseTestRun;
|
|
197
|
+
}
|
|
198
|
+
};
|
|
140
199
|
exports.runAllTestsInCloudCommand = (0, command_builder_1.buildCommand)("run-all-tests-in-cloud")
|
|
141
200
|
.details({ describe: "Run all replay test cases remotely" })
|
|
142
201
|
.options({
|
|
@@ -190,6 +249,16 @@ exports.runAllTestsInCloudCommand = (0, command_builder_1.buildCommand)("run-all
|
|
|
190
249
|
description: "The regex to match the companion assets.",
|
|
191
250
|
default: undefined,
|
|
192
251
|
},
|
|
252
|
+
hadPreparedForTests: {
|
|
253
|
+
boolean: true,
|
|
254
|
+
description: "Enable in case you called `prepare-for-meticulous-tests` before running this command.",
|
|
255
|
+
default: false,
|
|
256
|
+
},
|
|
257
|
+
triggerScript: {
|
|
258
|
+
string: true,
|
|
259
|
+
description: "Path to script that triggers the generation of a Meticulous test run on a specific commit in case base test run is not available. The script will be called with the commit SHA as an argument.",
|
|
260
|
+
default: undefined,
|
|
261
|
+
},
|
|
193
262
|
})
|
|
194
263
|
.handler(handler);
|
|
195
264
|
//# sourceMappingURL=run-all-tests-in-cloud.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-all-tests-in-cloud.command.js","sourceRoot":"","sources":["../../../src/commands/run-all-tests-in-cloud/run-all-tests-in-cloud.command.ts"],"names":[],"mappings":";;;;;;AAAA,+CAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"run-all-tests-in-cloud.command.js","sourceRoot":"","sources":["../../../src/commands/run-all-tests-in-cloud/run-all-tests-in-cloud.command.ts"],"names":[],"mappings":";;;;;;AAAA,+CAAyD;AACzD,qDAKkC;AAClC,qDAA2E;AAC3E,qFAGkD;AAClD,kDAA0B;AAC1B,gEAAuC;AAEvC,8CAAsB;AACtB,yEAAmE;AACnE,uEAA6D;AAC7D,qEAA4E;AAC5E,mFAG8C;AAC9C,+HAAiH;AAEjH,MAAM,kCAAkC,GAAG,KAAM,CAAC;AAClD,MAAM,qCAAqC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAmB3E,MAAM,mBAAmB,GAAyC,CAChE,WAAW,EACX,EAAE;IACF,IAAI,WAAW,CAAC,IAAI,EAAE;QACpB,OAAO,UAAU,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;KACxC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAwC,KAAK,EAAE,EAC1D,QAAQ,EACR,SAAS,EAAE,UAAU,EACrB,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,GACd,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAY,EAAC,UAAU,CAAC,CAAC;IAEjD,IAAI,CAAC,CAAC,qBAAqB,KAAK,CAAC,CAAC,oBAAoB,EAAE;QACtD,MAAM,CAAC,KAAK,CACV,sFAAsF,CACvF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,CAAC,KAAK,CACV,sFAAsF,CACvF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,CAAC,KAAK,CACV,iEAAiE,CAClE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,IAAI,CAAC,mBAAmB,IAAI,aAAa,EAAE;QACzC,uHAAuH;QACvH,iEAAiE;QACjE,oDAAoD;QACpD,MAAM,IAAA,gEAAyB,EAAC;YAC9B,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,SAAS;YACrB,aAAa;YACb,MAAM;SACP,CAAC,CAAC;KACJ;IAED,IAAI,mBAAmB,IAAI,aAAa,EAAE;QACxC,2FAA2F;QAC3F,mGAAmG;QACnG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;KAC/D;IAED,MAAM,CAAC,IAAI,CAAC,yCAAyC,SAAS,EAAE,CAAC,CAAC;IAElE,IAAI,uBAAuB,GAAmB,IAAA,aAAG,EAC/C,6BAA6B,CAC9B,CAAC,KAAK,EAAE,CAAC;IACV,MAAM,WAAW,GAAG,IAAI,sBAAW,CAAC,SAAS,CAC3C;QACE,MAAM,EAAE,gCAAgC,eAAK,CAAC,IAAI,CAChD,OAAO,CACR,mDAAmD;QACpD,oGAAoG;QACpG,+FAA+F;QAC/F,gCAAgC;QAChC,6GAA6G;QAC7G,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,KAAK;KACtB,EACD,sBAAW,CAAC,OAAO,CAAC,cAAc,CACnC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,WAAW,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,cAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3E,mEAAmE;IACnE,IAAI,iCAAiC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnD,IAAI,UAAU,GAAsB,IAAI,CAAC;IACzC,IAAI;QACF,MAAM,WAAW,GAAG,IAAA,kCAAc,GAAE,CAAC;QACrC,6DAA6D;QAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,6CAAoB,EAAC;YAC7C,QAAQ,EAAE,SAAS;YACnB,SAAS;YACT,MAAM;YAEN,gBAAgB;YAEhB,GAAG,CAAC,qBAAqB;gBACvB,CAAC,CAAC,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,OAAO,EAAE;gBAC1D,CAAC,CAAC,EAAE,CAAC;YAEP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,UAAU,GAAG,IAAI,CAAC;gBAClB,MAAM,CAAC,IAAI,CACT,uCAAuC,MAAM,KAAK,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,aAAa,cAAc,IAAI,CAAC,iBAAiB,EAAE,CAC7H,CAAC;YACJ,CAAC;YAED,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC5B,MAAM,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACpD,CAAC;YAED,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE;;gBAC5B,IACE,OAAO,CAAC,MAAM,KAAK,WAAW;oBAC9B,IAAI,CAAC,GAAG,EAAE,GAAG,iCAAiC,GAAG,KAAM,EACvD;oBACA,MAAM,CAAC,IAAI,CACT,2DAA2D,CAC5D,CAAC;oBACF,iCAAiC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;iBAChD;gBAED,MAAM,qBAAqB,GAAG,IAAI,GAAG,CACnC,MAAA,MAAA,OAAO,CAAC,UAAU,CAAC,SAAS,0CACxB,MAAM,CACN,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,aAAa,KAAK,sBAAgB,CAAC,WAAW,EAE1D,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,mCAAI,EAAE,CAC/C,CAAC;gBAEF,sFAAsF;gBACtF,sCAAsC;gBACtC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,uBAAuB,EAAE;oBAC3D,uBAAuB,CAAC,IAAI,EAAE,CAAC;oBAC/B,uBAAuB,GAAG,IAAI,CAAC;oBAE/B,MAAM,YAAY,GAAG,CAAA,MAAA,OAAO,CAAC,UAAU,CAAC,SAAS,0CAAE,MAAM,KAAI,CAAC,CAAC;oBAE/D,IAAI,YAAY,GAAG,CAAC,EAAE;wBACpB,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;qBAC7D;iBACF;gBAED,IAAI,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;oBAC9B,WAAW,CAAC,MAAM,CAChB,CAAC,CAAA,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,OAAO,0CAAE,MAAM,KAAI,CAAC,CAAC;wBACxC,qBAAqB,CAAC,IAAI,CAC7B,CAAC;iBACH;gBAED,IAAI,CAAC,oCAA2B,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACzD,cAAc,EAAE,CAAC;oBAEjB,IAAI,qBAAqB,EAAE;wBACzB,MAAM,CAAC,IAAI,CACT,2BAA2B,iBAAiB,aAAa,CAC1D,CAAC;wBAEF,4DAA4D;wBAC5D,IAAI,UAAU,EAAE;4BACd,MAAM,CAAC,IAAI,CACT,iCAAiC,UAAU,CAAC,GAAG,cAAc,UAAU,CAAC,aAAa,cAAc,UAAU,CAAC,iBAAiB,EAAE,CAClI,CAAC;yBACH;wBACD,UAAU,CAAC,GAAG,EAAE;4BACd,qBAAqB,CAAC,OAAO,EAAE,CAAC;wBAClC,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC;qBAC9B;iBACF;YACH,CAAC;YAED,mBAAmB,EAAE,GAAG,EAAE;gBACxB,MAAM,CAAC,IAAI,CACT,uFAAuF,CACxF,CAAC;YACJ,CAAC;YAED,WAAW,EAAE,mBAAmB,CAAC,WAAW,CAAC;YAC7C,UAAU,EAAE,WAAW,CAAC,IAAI;YAC5B,gBAAgB;YAChB,YAAY;YACZ,uBAAuB;YACvB,cAAc;YACd,gBAAgB;YAChB,GAAG,CAAC,qBAAqB,IAAI,oBAAoB;gBAC/C,CAAC,CAAC;oBACE,eAAe,EAAE;wBACf,MAAM,EAAE,qBAAqB;wBAC7B,KAAK,EAAE,oBAAoB;qBAC5B;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;KACJ;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,IAAA,iDAAsB,EAAC,KAAK,CAAC,EAAE;YACjC,MAAM,IAAI,4CAAiB,EAAE,CAAC;SAC/B;aAAM;YACL,MAAM,KAAK,CAAC;SACb;KACF;YAAS;QACR,cAAc,EAAE,CAAC;KAClB;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,GAAG,KAAK,EAAE,EACzB,QAAQ,EACR,SAAS,EACT,MAAM,GAKP,EAAiB,EAAE;IAClB,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,yDAAyD;IACzD,IAAI,sBAAsB,GAAG,MAAM,IAAA,wCAA+B,EAAC;QACjE,MAAM;QACN,aAAa,EAAE,SAAS;KACzB,CAAC,CAAC;IAEH,IAAI,OAAO,GAAG,sBAAsB,CAAC,WAAW,CAAC;IACjD,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,OAAO,CAAC,OAAO,EAAE;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC3C,IAAI,WAAW,GAAG,qCAAqC,EAAE;YACvD,MAAM,CAAC,KAAK,CACV,mBAAmB,qCAAqC,GAAG,IAAI,oCAAoC,CACpG,CAAC;YACF,0BAA0B;YAC1B,MAAM;SACP;QACD,IAAI,eAAe,IAAI,CAAC,IAAI,WAAW,GAAG,eAAe,IAAI,KAAK,EAAE;YAClE,oCAAoC;YACpC,MAAM,CAAC,IAAI,CACT,0DAA0D,WAAW,IAAI,CAC1E,CAAC;YACF,eAAe,GAAG,WAAW,CAAC;SAC/B;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5B,UAAU,CAAC,OAAO,EAAE,kCAAkC,CAAC,CACxD,CAAC;QAEF,sBAAsB,GAAG,MAAM,IAAA,wCAA+B,EAAC;YAC7D,MAAM;YACN,aAAa,EAAE,SAAS;SACzB,CAAC,CAAC;QAEH,OAAO,GAAG,sBAAsB,CAAC,WAAW,CAAC;KAC9C;AACH,CAAC,CAAC;AAEW,QAAA,yBAAyB,GAAG,IAAA,8BAAY,EAAC,wBAAwB,CAAC;KAC5E,OAAO,CAAC,EAAE,QAAQ,EAAE,oCAAoC,EAAE,CAAC;KAC3D,OAAO,CAAC;IACP,QAAQ,EAAE,wBAAO,CAAC,QAAQ;IAC1B,SAAS,EAAE,wBAAO,CAAC,SAAS;IAC5B,MAAM,EAAE;QACN,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,IAAI;QACZ,WAAW,EACT,mEAAmE;KACtE;IACD,iBAAiB,EAAE;QACjB,MAAM,EAAE,IAAI;QACZ,WAAW,EACT,8GAA8G;QAChH,OAAO,EAAE,CAAC;KACX;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,+CAA+C;KAC7D;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,kDAAkD;QAC/D,OAAO,EAAE,KAAK;KACf;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,IAAI;QACb,WAAW,EACT,+DAA+D;QACjE,OAAO,EAAE,KAAK;KACf;IACD,uBAAuB,EAAE;QACvB,OAAO,EAAE,IAAI;QACb,WAAW,EACT,8EAA8E;QAChF,OAAO,EAAE,KAAK;KACf;IACD,cAAc,EAAE;QACd,OAAO,EAAE,IAAI;QACb,WAAW,EACT,yGAAyG;QAC3G,OAAO,EAAE,KAAK;KACf;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE,IAAI;QACZ,WAAW,EACT,6FAA6F;KAChG;IACD,qBAAqB,EAAE;QACrB,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,gDAAgD;QAC7D,OAAO,EAAE,SAAS;KACnB;IACD,oBAAoB,EAAE;QACpB,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,0CAA0C;QACvD,OAAO,EAAE,SAAS;KACnB;IACD,mBAAmB,EAAE;QACnB,OAAO,EAAE,IAAI;QACb,WAAW,EACT,uFAAuF;QACzF,OAAO,EAAE,KAAK;KACf;IACD,aAAa,EAAE;QACb,MAAM,EAAE,IAAI;QACZ,WAAW,EACT,iMAAiM;QACnM,OAAO,EAAE,SAAS;KACnB;CACO,CAAC;KACV,OAAO,CAAC,OAAO,CAAC,CAAC"}
|
package/dist/main.js
CHANGED
|
@@ -11,6 +11,7 @@ const yargs_1 = __importDefault(require("yargs"));
|
|
|
11
11
|
const download_replay_command_1 = require("./commands/download-replay/download-replay.command");
|
|
12
12
|
const download_session_command_1 = require("./commands/download-session/download-session.command");
|
|
13
13
|
const download_test_run_command_1 = require("./commands/download-test-run/download-test-run.command");
|
|
14
|
+
const prepare_for_meticulous_tests_command_1 = require("./commands/prepare-for-meticulous-tests/prepare-for-meticulous-tests.command");
|
|
14
15
|
const record_command_1 = require("./commands/record/record.command");
|
|
15
16
|
const record_login_command_1 = require("./commands/record-login/record-login.command");
|
|
16
17
|
const replay_command_1 = require("./commands/replay/replay.command");
|
|
@@ -36,6 +37,7 @@ const main = async () => {
|
|
|
36
37
|
.command(download_replay_command_1.downloadReplayCommand)
|
|
37
38
|
.command(download_session_command_1.downloadSessionCommand)
|
|
38
39
|
.command(download_test_run_command_1.downloadTestRunCommand)
|
|
40
|
+
.command(prepare_for_meticulous_tests_command_1.prepareForMeticulousTestsCommand)
|
|
39
41
|
.command(record_command_1.recordCommand)
|
|
40
42
|
.command(record_login_command_1.recordLoginCommand)
|
|
41
43
|
.command(replay_command_1.replayCommand)
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAuC;AACvC,qDAKkC;AAClC,qDAAsD;AACtD,kDAA0B;AAC1B,gGAA2F;AAC3F,mGAA8F;AAC9F,sGAAgG;AAChG,qEAAiE;AACjE,uFAAkF;AAClF,qEAAiE;AACjE,0FAAoF;AACpF,qHAA6G;AAC7G,uFAAkF;AAClF,yGAAmG;AACnG,oLAAyK;AACzK,uDAAkD;AAElD,MAAM,aAAa,GAAiD,CAClE,OAAO,EACP,EAAE;IACF,IAAA,kCAAyB,EAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEK,MAAM,IAAI,GAAe,KAAK,IAAI,EAAE;IACzC,IAAA,mBAAU,GAAE,CAAC;IACb,MAAM,eAAe,GAAG,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,MAAM,IAAA,6BAAoB,EAAC,eAAe,CAAC,CAAC;IACtE,MAAM,IAAA,mBAAU,EAAC,iBAAiB,CAAC,CAAC;IAEpC,MAAM,eAAK;SACR,UAAU,CAAC,YAAY,CAAC;SACxB,KAAK,CACJ;;qBAEe,CAChB;SACA,OAAO,CAAC,+CAAqB,CAAC;SAC9B,OAAO,CAAC,iDAAsB,CAAC;SAC/B,OAAO,CAAC,kDAAsB,CAAC;SAC/B,OAAO,CAAC,8BAAa,CAAC;SACtB,OAAO,CAAC,yCAAkB,CAAC;SAC3B,OAAO,CAAC,8BAAa,CAAC;SACtB,OAAO,CAAC,0CAAkB,CAAC;SAC3B,OAAO,CAAC,0DAAyB,CAAC;SAClC,OAAO,CAAC,yCAAkB,CAAC;SAC3B,OAAO,CAAC,oDAAuB,CAAC;SAChC,OAAO,CAAC,iGAA2C,CAAC;SACpD,IAAI,EAAE;SACN,MAAM,EAAE;SACR,aAAa,EAAE;SACf,MAAM,CAAC;QACN,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;YAC9D,WAAW,EAAE,WAAW;SACzB;QACD,OAAO,EAAE;YACP,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,wDAAwD;SACtE;KACF,CAAC;SACD,UAAU,CAAC;QACV,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,yBAAU,EAAC,IAAI,CAAC;KAC3B,CAAC,CAAC,IAAI,CAAC;AACZ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAuC;AACvC,qDAKkC;AAClC,qDAAsD;AACtD,kDAA0B;AAC1B,gGAA2F;AAC3F,mGAA8F;AAC9F,sGAAgG;AAChG,uIAAgI;AAChI,qEAAiE;AACjE,uFAAkF;AAClF,qEAAiE;AACjE,0FAAoF;AACpF,qHAA6G;AAC7G,uFAAkF;AAClF,yGAAmG;AACnG,oLAAyK;AACzK,uDAAkD;AAElD,MAAM,aAAa,GAAiD,CAClE,OAAO,EACP,EAAE;IACF,IAAA,kCAAyB,EAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEK,MAAM,IAAI,GAAe,KAAK,IAAI,EAAE;IACzC,IAAA,mBAAU,GAAE,CAAC;IACb,MAAM,eAAe,GAAG,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,MAAM,IAAA,6BAAoB,EAAC,eAAe,CAAC,CAAC;IACtE,MAAM,IAAA,mBAAU,EAAC,iBAAiB,CAAC,CAAC;IAEpC,MAAM,eAAK;SACR,UAAU,CAAC,YAAY,CAAC;SACxB,KAAK,CACJ;;qBAEe,CAChB;SACA,OAAO,CAAC,+CAAqB,CAAC;SAC9B,OAAO,CAAC,iDAAsB,CAAC;SAC/B,OAAO,CAAC,kDAAsB,CAAC;SAC/B,OAAO,CAAC,uEAAgC,CAAC;SACzC,OAAO,CAAC,8BAAa,CAAC;SACtB,OAAO,CAAC,yCAAkB,CAAC;SAC3B,OAAO,CAAC,8BAAa,CAAC;SACtB,OAAO,CAAC,0CAAkB,CAAC;SAC3B,OAAO,CAAC,0DAAyB,CAAC;SAClC,OAAO,CAAC,yCAAkB,CAAC;SAC3B,OAAO,CAAC,oDAAuB,CAAC;SAChC,OAAO,CAAC,iGAA2C,CAAC;SACpD,IAAI,EAAE;SACN,MAAM,EAAE;SACR,aAAa,EAAE;SACf,MAAM,CAAC;QACN,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;YAC9D,WAAW,EAAE,WAAW;SACzB;QACD,OAAO,EAAE;YACP,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,wDAAwD;SACtE;KACF,CAAC;SACD,UAAU,CAAC;QACV,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,yBAAU,EAAC,IAAI,CAAC;KAC3B,CAAC,CAAC,IAAI,CAAC;AACZ,CAAC,CAAC;AA3CW,QAAA,IAAI,QA2Cf;AAEF,IAAA,YAAI,GAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alwaysmeticulous/cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.239.0",
|
|
4
4
|
"description": "The Meticulous CLI",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@alwaysmeticulous/api": "^2.235.2",
|
|
33
|
-
"@alwaysmeticulous/client": "^2.
|
|
33
|
+
"@alwaysmeticulous/client": "^2.238.0",
|
|
34
34
|
"@alwaysmeticulous/common": "^2.237.1",
|
|
35
|
-
"@alwaysmeticulous/downloading-helpers": "^2.
|
|
35
|
+
"@alwaysmeticulous/downloading-helpers": "^2.238.0",
|
|
36
36
|
"@alwaysmeticulous/record": "^2.237.1",
|
|
37
|
-
"@alwaysmeticulous/remote-replay-launcher": "^2.
|
|
38
|
-
"@alwaysmeticulous/replay-debugger-ui": "^2.
|
|
39
|
-
"@alwaysmeticulous/replay-orchestrator-launcher": "^2.
|
|
37
|
+
"@alwaysmeticulous/remote-replay-launcher": "^2.238.0",
|
|
38
|
+
"@alwaysmeticulous/replay-debugger-ui": "^2.239.0",
|
|
39
|
+
"@alwaysmeticulous/replay-orchestrator-launcher": "^2.238.0",
|
|
40
40
|
"@alwaysmeticulous/sdk-bundles-api": "^2.235.2",
|
|
41
41
|
"@alwaysmeticulous/sentry": "^2.237.1",
|
|
42
42
|
"@alwaysmeticulous/tunnels-client": "^2.237.1",
|
|
@@ -50,7 +50,8 @@
|
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/cli-progress": "^3.11.5",
|
|
53
|
-
"@types/yargs": "^17.0.10"
|
|
53
|
+
"@types/yargs": "^17.0.10",
|
|
54
|
+
"loglevel": "^1.8.0"
|
|
54
55
|
},
|
|
55
56
|
"author": {
|
|
56
57
|
"name": "The Meticulous Team",
|
|
@@ -72,5 +73,5 @@
|
|
|
72
73
|
"jest": {
|
|
73
74
|
"preset": "../../jest.config.js"
|
|
74
75
|
},
|
|
75
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "96d5ea7213b57731a2304128626b615dd7ac690e"
|
|
76
77
|
}
|