checkly 5.6.0 → 6.0.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/baseCommand.d.ts +1 -1
- package/dist/commands/baseCommand.js +3 -3
- package/dist/commands/baseCommand.js.map +1 -1
- package/dist/commands/deploy.js +37 -18
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/import/plan.js +54 -27
- package/dist/commands/import/plan.js.map +1 -1
- package/dist/commands/test.js +84 -53
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/trigger.d.ts +0 -1
- package/dist/commands/trigger.js +4 -6
- package/dist/commands/trigger.js.map +1 -1
- package/dist/constructs/api-check-bundle.d.ts +57 -0
- package/dist/constructs/api-check-bundle.js +34 -0
- package/dist/constructs/api-check-bundle.js.map +1 -0
- package/dist/constructs/api-check.d.ts +14 -20
- package/dist/constructs/api-check.js +86 -83
- package/dist/constructs/api-check.js.map +1 -1
- package/dist/constructs/browser-check-bundle.d.ts +58 -0
- package/dist/constructs/browser-check-bundle.js +31 -0
- package/dist/constructs/browser-check-bundle.js.map +1 -0
- package/dist/constructs/browser-check.d.ts +10 -22
- package/dist/constructs/browser-check.js +54 -67
- package/dist/constructs/browser-check.js.map +1 -1
- package/dist/constructs/check-group-codegen.d.ts +6 -5
- package/dist/constructs/check-group-codegen.js +14 -7
- package/dist/constructs/check-group-codegen.js.map +1 -1
- package/dist/constructs/check-group-ref.d.ts +14 -0
- package/dist/constructs/check-group-ref.js +37 -0
- package/dist/constructs/check-group-ref.js.map +1 -0
- package/dist/constructs/check-group-v1.d.ts +294 -0
- package/dist/constructs/check-group-v1.js +271 -0
- package/dist/constructs/check-group-v1.js.map +1 -0
- package/dist/constructs/check-group-v2.d.ts +120 -0
- package/dist/constructs/check-group-v2.js +87 -0
- package/dist/constructs/check-group-v2.js.map +1 -0
- package/dist/constructs/check-group.d.ts +4 -175
- package/dist/constructs/check-group.js +8 -246
- package/dist/constructs/check-group.js.map +1 -1
- package/dist/constructs/check.d.ts +2 -2
- package/dist/constructs/construct-diagnostics.d.ts +33 -0
- package/dist/constructs/construct-diagnostics.js +101 -0
- package/dist/constructs/construct-diagnostics.js.map +1 -0
- package/dist/constructs/construct.d.ts +35 -1
- package/dist/constructs/construct.js +48 -1
- package/dist/constructs/construct.js.map +1 -1
- package/dist/constructs/dashboard-bundle.d.ts +11 -0
- package/dist/constructs/dashboard-bundle.js +19 -0
- package/dist/constructs/dashboard-bundle.js.map +1 -0
- package/dist/constructs/dashboard.d.ts +26 -22
- package/dist/constructs/dashboard.js +39 -46
- package/dist/constructs/dashboard.js.map +1 -1
- package/dist/constructs/diagnostics.d.ts +36 -0
- package/dist/constructs/diagnostics.js +69 -0
- package/dist/constructs/diagnostics.js.map +1 -0
- package/dist/constructs/index.d.ts +1 -0
- package/dist/constructs/index.js +1 -0
- package/dist/constructs/index.js.map +1 -1
- package/dist/constructs/multi-step-check-bundle.d.ts +46 -0
- package/dist/constructs/multi-step-check-bundle.js +25 -0
- package/dist/constructs/multi-step-check-bundle.js.map +1 -0
- package/dist/constructs/multi-step-check.d.ts +9 -11
- package/dist/constructs/multi-step-check.js +50 -65
- package/dist/constructs/multi-step-check.js.map +1 -1
- package/dist/constructs/playwright-check-bundle.d.ts +49 -0
- package/dist/constructs/playwright-check-bundle.js +28 -0
- package/dist/constructs/playwright-check-bundle.js.map +1 -0
- package/dist/constructs/playwright-check.d.ts +9 -15
- package/dist/constructs/playwright-check.js +37 -33
- package/dist/constructs/playwright-check.js.map +1 -1
- package/dist/constructs/private-location.d.ts +2 -0
- package/dist/constructs/private-location.js +7 -5
- package/dist/constructs/private-location.js.map +1 -1
- package/dist/constructs/project-bundle.d.ts +30 -0
- package/dist/constructs/project-bundle.js +44 -0
- package/dist/constructs/project-bundle.js.map +1 -0
- package/dist/constructs/project.d.ts +41 -18
- package/dist/constructs/project.js +72 -31
- package/dist/constructs/project.js.map +1 -1
- package/dist/reporters/util.d.ts +0 -1
- package/dist/reporters/util.js +1 -5
- package/dist/reporters/util.js.map +1 -1
- package/dist/rest/projects.d.ts +2 -0
- package/dist/rest/projects.js.map +1 -1
- package/dist/rest/test-sessions.d.ts +2 -1
- package/dist/rest/test-sessions.js.map +1 -1
- package/dist/services/check-parser/package-files/json-source-file.js +2 -1
- package/dist/services/check-parser/package-files/json-source-file.js.map +1 -1
- package/dist/services/check-parser/package-files/loader.d.ts +2 -2
- package/dist/services/check-parser/package-files/loader.js +2 -2
- package/dist/services/check-parser/package-files/loader.js.map +1 -1
- package/dist/services/check-parser/package-files/resolver.d.ts +8 -8
- package/dist/services/check-parser/package-files/resolver.js +34 -32
- package/dist/services/check-parser/package-files/resolver.js.map +1 -1
- package/dist/services/check-parser/package-files/source-file.d.ts +1 -1
- package/dist/services/check-parser/package-files/source-file.js +5 -4
- package/dist/services/check-parser/package-files/source-file.js.map +1 -1
- package/dist/services/check-parser/parser.d.ts +3 -3
- package/dist/services/check-parser/parser.js +22 -23
- package/dist/services/check-parser/parser.js.map +1 -1
- package/dist/services/checkly-config-codegen.js +0 -3
- package/dist/services/checkly-config-codegen.js.map +1 -1
- package/dist/services/checkly-config-loader.d.ts +0 -1
- package/dist/services/checkly-config-loader.js.map +1 -1
- package/dist/services/project-parser.d.ts +4 -2
- package/dist/services/project-parser.js +109 -67
- package/dist/services/project-parser.js.map +1 -1
- package/dist/services/test-runner.d.ts +6 -4
- package/dist/services/test-runner.js +33 -22
- package/dist/services/test-runner.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/oclif.manifest.json +3 -3
- package/package.json +1 -1
|
@@ -28,101 +28,141 @@ const path = __importStar(require("path"));
|
|
|
28
28
|
const util_1 = require("./util");
|
|
29
29
|
const constructs_1 = require("../constructs");
|
|
30
30
|
const ref_1 = require("../constructs/ref");
|
|
31
|
+
const construct_1 = require("../constructs/construct");
|
|
31
32
|
const playwright_check_1 = require("../constructs/playwright-check");
|
|
32
33
|
const BASE_CHECK_DEFAULTS = {};
|
|
33
34
|
async function parseProject(opts) {
|
|
34
|
-
const { directory, checkMatch = '**/*.check.{js,ts}', browserCheckMatch, multiStepCheckMatch, projectLogicalId, projectName, repoUrl, ignoreDirectoriesMatch = [], checkDefaults = {}, browserCheckDefaults = {}, availableRuntimes, defaultRuntimeId, verifyRuntimeDependencies, checklyConfigConstructs, playwrightConfigPath, include, playwrightChecks, } = opts;
|
|
35
|
+
const { directory, checkMatch = '**/*.check.{js,ts}', checkFilter, includeTestOnlyChecks = false, browserCheckMatch, multiStepCheckMatch, projectLogicalId, projectName, repoUrl, ignoreDirectoriesMatch = [], checkDefaults = {}, browserCheckDefaults = {}, availableRuntimes, defaultRuntimeId, verifyRuntimeDependencies, checklyConfigConstructs, playwrightConfigPath, include, playwrightChecks, } = opts;
|
|
35
36
|
const project = new constructs_1.Project(projectLogicalId, {
|
|
36
37
|
name: projectName,
|
|
37
38
|
repoUrl,
|
|
38
39
|
});
|
|
40
|
+
if (includeTestOnlyChecks) {
|
|
41
|
+
project.allowTestOnly(true);
|
|
42
|
+
}
|
|
39
43
|
checklyConfigConstructs?.forEach((construct) => project.addResource(construct.type, construct.logicalId, construct));
|
|
40
44
|
constructs_1.Session.project = project;
|
|
41
45
|
constructs_1.Session.basePath = directory;
|
|
42
46
|
constructs_1.Session.checkDefaults = Object.assign({}, BASE_CHECK_DEFAULTS, checkDefaults);
|
|
47
|
+
constructs_1.Session.checkFilter = checkFilter;
|
|
43
48
|
constructs_1.Session.browserCheckDefaults = browserCheckDefaults;
|
|
44
49
|
constructs_1.Session.availableRuntimes = availableRuntimes;
|
|
45
50
|
constructs_1.Session.defaultRuntimeId = defaultRuntimeId;
|
|
46
51
|
constructs_1.Session.verifyRuntimeDependencies = verifyRuntimeDependencies ?? true;
|
|
47
|
-
const includeWrapped = include
|
|
48
|
-
? (Array.isArray(include) ? include : [include])
|
|
49
|
-
: [];
|
|
50
52
|
// TODO: Do we really need all of the ** globs, or could we just put node_modules?
|
|
51
53
|
const ignoreDirectories = ['**/node_modules/**', '**/.git/**', ...ignoreDirectoriesMatch];
|
|
52
54
|
await loadAllCheckFiles(directory, checkMatch, ignoreDirectories);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
// Load sequentially because otherwise Session.checkFileAbsolutePath and
|
|
56
|
+
// Session.checkFilePath are going to be subject to race conditions.
|
|
57
|
+
await loadAllBrowserChecks(directory, browserCheckMatch, ignoreDirectories, project);
|
|
58
|
+
await loadAllMultiStepChecks(directory, multiStepCheckMatch, ignoreDirectories, project);
|
|
59
|
+
await loadPlaywrightChecks(directory, playwrightChecks, playwrightConfigPath, include);
|
|
58
60
|
// private-location must be processed after all checks and groups are loaded.
|
|
59
61
|
await loadAllPrivateLocationsSlugNames(project);
|
|
60
62
|
return project;
|
|
61
63
|
}
|
|
62
64
|
exports.parseProject = parseProject;
|
|
63
|
-
|
|
65
|
+
function setCheckFilePaths(checkFile, directory) {
|
|
66
|
+
const relPath = (0, util_1.pathToPosix)(path.relative(directory, checkFile));
|
|
67
|
+
constructs_1.Session.checkFileAbsolutePath = checkFile;
|
|
68
|
+
constructs_1.Session.checkFilePath = relPath;
|
|
69
|
+
return relPath;
|
|
70
|
+
}
|
|
71
|
+
function resetCheckFilePaths() {
|
|
72
|
+
constructs_1.Session.checkFilePath = undefined;
|
|
73
|
+
constructs_1.Session.checkFileAbsolutePath = undefined;
|
|
74
|
+
}
|
|
75
|
+
async function loadPlaywrightChecks(directory, playwrightChecks, playwrightConfigPath, include) {
|
|
64
76
|
if (!playwrightConfigPath) {
|
|
65
77
|
return;
|
|
66
78
|
}
|
|
67
79
|
if (playwrightChecks?.length) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
80
|
+
try {
|
|
81
|
+
setCheckFilePaths(playwrightConfigPath, directory);
|
|
82
|
+
for (const playwrightCheckProps of playwrightChecks) {
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
84
|
+
const playwrightCheck = new playwright_check_1.PlaywrightCheck(playwrightCheckProps.logicalId, {
|
|
85
|
+
...playwrightCheckProps,
|
|
86
|
+
playwrightConfigPath,
|
|
87
|
+
include,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
resetCheckFilePaths();
|
|
78
93
|
}
|
|
79
94
|
}
|
|
80
95
|
else {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
96
|
+
try {
|
|
97
|
+
setCheckFilePaths(playwrightConfigPath, directory);
|
|
98
|
+
const basePath = path.basename(playwrightConfigPath);
|
|
99
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
100
|
+
const playwrightCheck = new playwright_check_1.PlaywrightCheck(basePath, {
|
|
101
|
+
name: basePath,
|
|
102
|
+
playwrightConfigPath,
|
|
103
|
+
include,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
resetCheckFilePaths();
|
|
108
|
+
}
|
|
90
109
|
}
|
|
91
110
|
}
|
|
92
111
|
async function loadAllCheckFiles(directory, checkFilePattern, ignorePattern) {
|
|
93
112
|
const checkFiles = await (0, util_1.findFilesWithPattern)(directory, checkFilePattern, ignorePattern);
|
|
94
113
|
for (const checkFile of checkFiles) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
114
|
+
try {
|
|
115
|
+
setCheckFilePaths(checkFile, directory);
|
|
116
|
+
await constructs_1.Session.loadFile(checkFile);
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
resetCheckFilePaths();
|
|
120
|
+
}
|
|
101
121
|
}
|
|
102
122
|
}
|
|
123
|
+
function getExistingEntrypoints(project) {
|
|
124
|
+
const files = new Set();
|
|
125
|
+
Object.values(project.data.check).forEach((check) => {
|
|
126
|
+
if (check instanceof constructs_1.BrowserCheck && (0, construct_1.isEntrypoint)(check.code)) {
|
|
127
|
+
const absoluteEntrypoint = check.resolveContentFilePath(check.code.entrypoint);
|
|
128
|
+
const relativeEntrypoint = constructs_1.Session.relativePosixPath(absoluteEntrypoint);
|
|
129
|
+
files.add(relativeEntrypoint);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (check instanceof constructs_1.MultiStepCheck && (0, construct_1.isEntrypoint)(check.code)) {
|
|
133
|
+
const absoluteEntrypoint = check.resolveContentFilePath(check.code.entrypoint);
|
|
134
|
+
const relativeEntrypoint = constructs_1.Session.relativePosixPath(absoluteEntrypoint);
|
|
135
|
+
files.add(relativeEntrypoint);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
return files;
|
|
140
|
+
}
|
|
103
141
|
async function loadAllBrowserChecks(directory, browserCheckFilePattern, ignorePattern, project) {
|
|
104
142
|
if (!browserCheckFilePattern) {
|
|
105
143
|
return;
|
|
106
144
|
}
|
|
107
145
|
const checkFiles = await (0, util_1.findFilesWithPattern)(directory, browserCheckFilePattern, ignorePattern);
|
|
108
|
-
const preexistingCheckFiles =
|
|
109
|
-
Object.values(project.data.check).forEach((check) => {
|
|
110
|
-
if ((check instanceof constructs_1.BrowserCheck || check instanceof constructs_1.MultiStepCheck) && check.scriptPath) {
|
|
111
|
-
preexistingCheckFiles.add(check.scriptPath);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
146
|
+
const preexistingCheckFiles = getExistingEntrypoints(project);
|
|
114
147
|
for (const checkFile of checkFiles) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
148
|
+
try {
|
|
149
|
+
const relPath = setCheckFilePaths(checkFile, directory);
|
|
150
|
+
// Don't create an additional check if the checkFile was already added
|
|
151
|
+
// to a check in loadAllCheckFiles.
|
|
152
|
+
if (preexistingCheckFiles.has(relPath)) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
156
|
+
const browserCheck = new constructs_1.BrowserCheck((0, util_1.pathToPosix)(relPath), {
|
|
157
|
+
name: path.basename(checkFile),
|
|
158
|
+
code: {
|
|
159
|
+
entrypoint: checkFile,
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
finally {
|
|
164
|
+
resetCheckFilePaths();
|
|
119
165
|
}
|
|
120
|
-
const browserCheck = new constructs_1.BrowserCheck((0, util_1.pathToPosix)(relPath), {
|
|
121
|
-
name: path.basename(checkFile),
|
|
122
|
-
code: {
|
|
123
|
-
entrypoint: checkFile,
|
|
124
|
-
},
|
|
125
|
-
});
|
|
126
166
|
}
|
|
127
167
|
}
|
|
128
168
|
async function loadAllMultiStepChecks(directory, multiStepCheckFilePattern, ignorePattern, project) {
|
|
@@ -130,24 +170,26 @@ async function loadAllMultiStepChecks(directory, multiStepCheckFilePattern, igno
|
|
|
130
170
|
return;
|
|
131
171
|
}
|
|
132
172
|
const checkFiles = await (0, util_1.findFilesWithPattern)(directory, multiStepCheckFilePattern, ignorePattern);
|
|
133
|
-
const preexistingCheckFiles =
|
|
134
|
-
Object.values(project.data.check).forEach((check) => {
|
|
135
|
-
if ((check instanceof constructs_1.MultiStepCheck || check instanceof constructs_1.BrowserCheck) && check.scriptPath) {
|
|
136
|
-
preexistingCheckFiles.add(check.scriptPath);
|
|
137
|
-
}
|
|
138
|
-
});
|
|
173
|
+
const preexistingCheckFiles = getExistingEntrypoints(project);
|
|
139
174
|
for (const checkFile of checkFiles) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
175
|
+
try {
|
|
176
|
+
const relPath = setCheckFilePaths(checkFile, directory);
|
|
177
|
+
// Don't create an additional check if the checkFile was already added
|
|
178
|
+
// to a check in loadAllCheckFiles.
|
|
179
|
+
if (preexistingCheckFiles.has(relPath)) {
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
183
|
+
const multistepCheck = new constructs_1.MultiStepCheck((0, util_1.pathToPosix)(relPath), {
|
|
184
|
+
name: path.basename(checkFile),
|
|
185
|
+
code: {
|
|
186
|
+
entrypoint: checkFile,
|
|
187
|
+
},
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
finally {
|
|
191
|
+
resetCheckFilePaths();
|
|
144
192
|
}
|
|
145
|
-
const multistepCheck = new constructs_1.MultiStepCheck((0, util_1.pathToPosix)(relPath), {
|
|
146
|
-
name: path.basename(checkFile),
|
|
147
|
-
code: {
|
|
148
|
-
entrypoint: checkFile,
|
|
149
|
-
},
|
|
150
|
-
});
|
|
151
193
|
}
|
|
152
194
|
}
|
|
153
195
|
// TODO: create a function to process slug names for check or check-group to reduce duplicated code.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-parser.js","sourceRoot":"","sources":["../../src/services/project-parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAC5B,iCAIe;AACf,
|
|
1
|
+
{"version":3,"file":"project-parser.js","sourceRoot":"","sources":["../../src/services/project-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import AbstractCheckRunner, { RunLocation, SequenceId } from './abstract-check-runner';
|
|
2
2
|
import { GitInformation } from './util';
|
|
3
3
|
import { Check } from '../constructs/check';
|
|
4
|
-
import { RetryStrategy,
|
|
4
|
+
import { RetryStrategy, SharedFile } from '../constructs';
|
|
5
|
+
import { ProjectBundle, ResourceDataBundle } from '../constructs/project-bundle';
|
|
5
6
|
export default class TestRunner extends AbstractCheckRunner {
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
projectBundle: ProjectBundle;
|
|
8
|
+
checkBundles: ResourceDataBundle<Check>[];
|
|
9
|
+
sharedFiles: SharedFile[];
|
|
8
10
|
location: RunLocation;
|
|
9
11
|
shouldRecord: boolean;
|
|
10
12
|
repoInfo: GitInformation | null;
|
|
@@ -12,7 +14,7 @@ export default class TestRunner extends AbstractCheckRunner {
|
|
|
12
14
|
updateSnapshots: boolean;
|
|
13
15
|
baseDirectory: string;
|
|
14
16
|
testRetryStrategy: RetryStrategy | null;
|
|
15
|
-
constructor(accountId: string,
|
|
17
|
+
constructor(accountId: string, projectBundle: ProjectBundle, checkBundles: ResourceDataBundle<Check>[], sharedFiles: SharedFile[], location: RunLocation, timeout: number, verbose: boolean, shouldRecord: boolean, repoInfo: GitInformation | null, environment: string | null, updateSnapshots: boolean, baseDirectory: string, testRetryStrategy: RetryStrategy | null);
|
|
16
18
|
scheduleChecks(checkRunSuiteId: string): Promise<{
|
|
17
19
|
testSessionId?: string;
|
|
18
20
|
checks: Array<{
|
|
@@ -26,13 +26,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const uuid = __importStar(require("uuid"));
|
|
29
30
|
const api_1 = require("../rest/api");
|
|
30
31
|
const abstract_check_runner_1 = __importDefault(require("./abstract-check-runner"));
|
|
31
32
|
const snapshot_service_1 = require("../services/snapshot-service");
|
|
32
|
-
const
|
|
33
|
+
const playwright_check_bundle_1 = require("../constructs/playwright-check-bundle");
|
|
33
34
|
class TestRunner extends abstract_check_runner_1.default {
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
projectBundle;
|
|
36
|
+
checkBundles;
|
|
37
|
+
sharedFiles;
|
|
36
38
|
location;
|
|
37
39
|
shouldRecord;
|
|
38
40
|
repoInfo;
|
|
@@ -40,10 +42,11 @@ class TestRunner extends abstract_check_runner_1.default {
|
|
|
40
42
|
updateSnapshots;
|
|
41
43
|
baseDirectory;
|
|
42
44
|
testRetryStrategy;
|
|
43
|
-
constructor(accountId,
|
|
45
|
+
constructor(accountId, projectBundle, checkBundles, sharedFiles, location, timeout, verbose, shouldRecord, repoInfo, environment, updateSnapshots, baseDirectory, testRetryStrategy) {
|
|
44
46
|
super(accountId, timeout, verbose);
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
47
|
+
this.projectBundle = projectBundle;
|
|
48
|
+
this.checkBundles = checkBundles;
|
|
49
|
+
this.sharedFiles = sharedFiles;
|
|
47
50
|
this.location = location;
|
|
48
51
|
this.shouldRecord = shouldRecord;
|
|
49
52
|
this.repoInfo = repoInfo;
|
|
@@ -53,34 +56,42 @@ class TestRunner extends abstract_check_runner_1.default {
|
|
|
53
56
|
this.testRetryStrategy = testRetryStrategy;
|
|
54
57
|
}
|
|
55
58
|
async scheduleChecks(checkRunSuiteId) {
|
|
56
|
-
const checkRunJobs = this.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
const checkRunJobs = this.checkBundles.map(({ construct: check, bundle }) => {
|
|
60
|
+
// Playwright checks lazy load groups so they're only present in the
|
|
61
|
+
// bundle. This is a hack but for now it works.
|
|
62
|
+
const groupId = bundle instanceof playwright_check_bundle_1.PlaywrightCheckBundle
|
|
63
|
+
? bundle.groupId
|
|
64
|
+
: check.groupId;
|
|
65
|
+
return {
|
|
66
|
+
...bundle.synthesize(),
|
|
67
|
+
testRetryStrategy: this.testRetryStrategy,
|
|
68
|
+
group: groupId ? this.projectBundle.data['check-group'][groupId.ref].bundle.synthesize() : undefined,
|
|
69
|
+
groupId: undefined,
|
|
70
|
+
sourceInfo: {
|
|
71
|
+
checkRunSuiteId,
|
|
72
|
+
checkRunId: uuid.v4(),
|
|
73
|
+
updateSnapshots: this.updateSnapshots,
|
|
74
|
+
},
|
|
75
|
+
logicalId: check.logicalId,
|
|
76
|
+
filePath: check.getSourceFile(),
|
|
77
|
+
};
|
|
78
|
+
});
|
|
69
79
|
try {
|
|
70
80
|
if (!checkRunJobs.length) {
|
|
71
81
|
throw new Error('Unable to find checks to run.');
|
|
72
82
|
}
|
|
73
83
|
const { data } = await api_1.testSessions.run({
|
|
74
|
-
name: this.project.name,
|
|
84
|
+
name: this.projectBundle.project.name,
|
|
75
85
|
checkRunJobs,
|
|
76
|
-
project: { logicalId: this.project.logicalId },
|
|
86
|
+
project: { logicalId: this.projectBundle.project.logicalId },
|
|
87
|
+
sharedFiles: this.sharedFiles,
|
|
77
88
|
runLocation: this.location,
|
|
78
89
|
repoInfo: this.repoInfo,
|
|
79
90
|
environment: this.environment,
|
|
80
91
|
shouldRecord: this.shouldRecord,
|
|
81
92
|
});
|
|
82
93
|
const { testSessionId, sequenceIds } = data;
|
|
83
|
-
const checks = this.
|
|
94
|
+
const checks = this.checkBundles.map(({ construct: check }) => ({ check, sequenceId: sequenceIds?.[check.logicalId] }));
|
|
84
95
|
return { testSessionId, checks };
|
|
85
96
|
}
|
|
86
97
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../../src/services/test-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAA0C;AAC1C,oFAAsF;
|
|
1
|
+
{"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../../src/services/test-runner.ts"],"names":[],"mappings":"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"}
|