common-qa-mcp 0.8.1 → 0.9.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/adapters/remoteMcp/adapter.js +1 -1
- package/dist/adapters/simplifyqa/adapter.d.ts +24 -4
- package/dist/adapters/simplifyqa/adapter.d.ts.map +1 -1
- package/dist/adapters/simplifyqa/adapter.js +226 -39
- package/dist/adapters/simplifyqa/adapter.js.map +1 -1
- package/dist/adapters/types.d.ts +10 -1
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/domain/types.d.ts +15 -0
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/drafts/store.d.ts +9 -0
- package/dist/drafts/store.d.ts.map +1 -1
- package/dist/drafts/store.js +12 -0
- package/dist/drafts/store.js.map +1 -1
- package/dist/initAgents.d.ts.map +1 -1
- package/dist/initAgents.js +30 -5
- package/dist/initAgents.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/tools/recording.tools.d.ts.map +1 -1
- package/dist/tools/recording.tools.js +234 -0
- package/dist/tools/recording.tools.js.map +1 -1
- package/dist/tools/run.tools.d.ts.map +1 -1
- package/dist/tools/run.tools.js +160 -9
- package/dist/tools/run.tools.js.map +1 -1
- package/dist/tools/testcase.tools.d.ts.map +1 -1
- package/dist/tools/testcase.tools.js +4 -7
- package/dist/tools/testcase.tools.js.map +1 -1
- package/dist/tools/testdata.tools.d.ts.map +1 -1
- package/dist/tools/testdata.tools.js +60 -6
- package/dist/tools/testdata.tools.js.map +1 -1
- package/package.json +1 -1
|
@@ -38,7 +38,7 @@ export class RemoteMcpAdapter {
|
|
|
38
38
|
async client() {
|
|
39
39
|
if (!this.clientPromise) {
|
|
40
40
|
this.clientPromise = (async () => {
|
|
41
|
-
const client = new Client({ name: 'common-qa-mcp', version: '0.
|
|
41
|
+
const client = new Client({ name: 'common-qa-mcp', version: '0.9.0' });
|
|
42
42
|
// The `as Transport` cast bridges exactOptionalPropertyTypes: StreamableHTTPClientTransport
|
|
43
43
|
// implements Transport, but the SDK's own .d.ts (built without EOPT) leaves its optional
|
|
44
44
|
// callbacks (onclose?/onerror?/onmessage?) without `| undefined`, which this project's EOPT
|
|
@@ -133,6 +133,9 @@ export declare class SimplifyQaAdapter {
|
|
|
133
133
|
updateFeature(id: string, patch: FeatureUpdate): Promise<SavedRef>;
|
|
134
134
|
/** FT_XXX business key → numeric feature id via `/pm/feature/search`. Numeric passes through. */
|
|
135
135
|
private resolveFeatureNumericId;
|
|
136
|
+
/** Pages internally until the server returns a short page (or the total is reached) — the tool
|
|
137
|
+
* has no limit/offset of its own and always wants the WHOLE project tree; `searchBody`'s default
|
|
138
|
+
* page size (100) previously truncated any project with more modules than that silently. */
|
|
136
139
|
listModules(): Promise<ListResult<ModuleSummary>>;
|
|
137
140
|
/** GET /pm/module/:id — server returns an array; empty array → NotFound. */
|
|
138
141
|
getModule(id: string): Promise<ModuleDetail>;
|
|
@@ -169,7 +172,11 @@ export declare class SimplifyQaAdapter {
|
|
|
169
172
|
* fully empty (all `*Arr` are `{}` maps), the server actually deleted; otherwise it refused
|
|
170
173
|
* and just handed back the deps. We do not assume — we inspect. */
|
|
171
174
|
deleteVersion(input: VersionDeleteInput): Promise<VersionDeleteResult>;
|
|
175
|
+
/** `list_releases` has no limit/offset of its own — it always wants the WHOLE visible set — so
|
|
176
|
+
* page internally past `searchBody`'s default 100 instead of silently truncating (same fix as
|
|
177
|
+
* listModules). */
|
|
172
178
|
listReleases(q: ReleaseQuery): Promise<ListResult<ReleaseSummary>>;
|
|
179
|
+
/** Same unconditional-pagination fix as listReleases — `list_sprints` has no limit/offset either. */
|
|
173
180
|
listSprints(q: SprintQuery): Promise<ListResult<SprintSummary>>;
|
|
174
181
|
/** POST /pm/users/search — the customer's users (router mounted at `/pm/users`, plural — see
|
|
175
182
|
* project-management/express-app.js:181). Backend auto-scopes non-admin callers to users in
|
|
@@ -355,6 +362,11 @@ export declare class SimplifyQaAdapter {
|
|
|
355
362
|
/** Soft-delete via `isDelete:true`. `isDelete:false` restores. */
|
|
356
363
|
deleteSuite(id: string): Promise<void>;
|
|
357
364
|
private fetchRawSuite;
|
|
365
|
+
/** Mirrors sqa-ui `buildExecutionPlatform` (suites.component.ts:779) so MCP-added TCs save with
|
|
366
|
+
* the same per-row platform the UI would set — otherwise the suite trips the "select execution
|
|
367
|
+
* platform" warning at run time. Special types self-identify; WEB falls back to Chrome so
|
|
368
|
+
* suite_run doesn't send `platform: []`; mobile with no bound device stays empty (UI does same). */
|
|
369
|
+
private buildExecutionPlatformForEntry;
|
|
358
370
|
/** Assemble the strict allow-listed suite entry for an ADD op. Required fields per the SQA
|
|
359
371
|
* validator: testcaseId, code, seq (set by the caller), version, versionId, tcType. */
|
|
360
372
|
private buildSuiteEntryFromTestcase;
|
|
@@ -474,11 +486,19 @@ export declare class SimplifyQaAdapter {
|
|
|
474
486
|
versionId?: string | undefined;
|
|
475
487
|
stepId?: string | undefined;
|
|
476
488
|
}): Promise<RunStatus>;
|
|
477
|
-
/** Most recent execution runId for a SUITE — same `/exec/execution/search` the /reports UI's
|
|
478
|
-
* current-executions view drives, filtered
|
|
479
|
-
*
|
|
480
|
-
*
|
|
489
|
+
/** Most recent execution runId for a SUITE or TC — same `/exec/execution/search` the /reports UI's
|
|
490
|
+
* current-executions view drives, filtered by `type` + the entity's numeric id, sorted id desc,
|
|
491
|
+
* limit 1. `childExecution:false` + the `parentExecutionCopy nor` clause together drop suite-child
|
|
492
|
+
* TC rows, so a TC lookup returns its LATEST STANDALONE run, not the child spawned inside a suite. */
|
|
493
|
+
private getLatestRunFor;
|
|
481
494
|
getLatestSuiteRun(suiteId: string): Promise<string | null>;
|
|
495
|
+
getLatestTestcaseRun(tcId: string): Promise<string | null>;
|
|
496
|
+
/** Top-N recent runs — one HTTP call, same standalone-only filters as `getLatestRunFor`. For each
|
|
497
|
+
* SUITE row the exec doc's `executionItems[]` already carries per-TC status, so the tally is
|
|
498
|
+
* computed inline (no extra call per run). TC rows omit the tally counters. Sorted newest-first
|
|
499
|
+
* by `id` (execution ids are monotonic). Bounded — callers should cap `limit` at the tool layer
|
|
500
|
+
* so a runaway request can't pull thousands of rows. */
|
|
501
|
+
listRecentRuns(type: 'SUITE' | 'TC', id: string, limit: number): Promise<import('../../domain/types.js').RunSummary[]>;
|
|
482
502
|
/** Targeted name lookup for a single project by numeric id — the whole-list `listProjects`
|
|
483
503
|
* is paged (default 100) and API-key scoping can hide the selected project, which left
|
|
484
504
|
* callers with an empty projectName. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/simplifyqa/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/simplifyqa/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,13 +65,17 @@ function normalizeFormula(doc, projectId) {
|
|
|
65
65
|
parameters: params,
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
|
-
/** SQA per-step status → neutral step status.
|
|
68
|
+
/** SQA per-step status → neutral step status. Matches RunState terminals ('passed'/'failed'/
|
|
69
|
+
* 'skipped'/'stopped') so the same icon/formatting logic works for top-level state AND per-step
|
|
70
|
+
* rows (run.tools.ts:180 keys off these values — the earlier 'pass'/'fail' names left every
|
|
71
|
+
* step icon defaulting to '•'). Non-terminal SQA states (INFO, INPROGRESS, NOTEXECUTED) pass
|
|
72
|
+
* through lowercased so the tool can still surface them as diagnostic text. */
|
|
69
73
|
function mapStepStatus(s) {
|
|
70
74
|
switch (s.toUpperCase()) {
|
|
71
|
-
case 'PASSED': return '
|
|
72
|
-
case 'FAILED': return '
|
|
73
|
-
case 'SKIPPED': return '
|
|
74
|
-
case 'STOPPED': return '
|
|
75
|
+
case 'PASSED': return 'passed';
|
|
76
|
+
case 'FAILED': return 'failed';
|
|
77
|
+
case 'SKIPPED': return 'skipped';
|
|
78
|
+
case 'STOPPED': return 'stopped';
|
|
75
79
|
default: return s.toLowerCase();
|
|
76
80
|
}
|
|
77
81
|
}
|
|
@@ -1016,15 +1020,41 @@ export class SimplifyQaAdapter {
|
|
|
1016
1020
|
return str(rows[0], 'id', '_id', 'featureId') ?? ref;
|
|
1017
1021
|
}
|
|
1018
1022
|
// ---------------------------------------------------------------------- Modules, releases, sprints
|
|
1023
|
+
/** Pages internally until the server returns a short page (or the total is reached) — the tool
|
|
1024
|
+
* has no limit/offset of its own and always wants the WHOLE project tree; `searchBody`'s default
|
|
1025
|
+
* page size (100) previously truncated any project with more modules than that silently. */
|
|
1019
1026
|
async listModules() {
|
|
1020
1027
|
const projectId = this.requireProjectId();
|
|
1021
|
-
const
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
+
const PAGE = 100;
|
|
1029
|
+
const SAFETY_CAP = 5000;
|
|
1030
|
+
const rows = [];
|
|
1031
|
+
let totalCount;
|
|
1032
|
+
let startIndex = 0;
|
|
1033
|
+
for (;;) {
|
|
1034
|
+
const body = this.searchBody([
|
|
1035
|
+
{ column: 'projectId', value: projectId },
|
|
1036
|
+
{ column: 'deleted', value: false },
|
|
1037
|
+
], { selectFields: ['id', 'code', 'name', 'parentId', 'isRoot', 'childIds'], startIndex, limit: PAGE });
|
|
1038
|
+
const raw = await this.http.postJson('/pm/module/search', body);
|
|
1039
|
+
const page = pickArray(raw, 'data', 'content', 'modules');
|
|
1040
|
+
if (totalCount === undefined) {
|
|
1041
|
+
const t = raw?.totalCount ?? raw?.total ?? raw?.totalRecords;
|
|
1042
|
+
if (typeof t === 'number')
|
|
1043
|
+
totalCount = t;
|
|
1044
|
+
}
|
|
1045
|
+
rows.push(...page);
|
|
1046
|
+
if (page.length < PAGE)
|
|
1047
|
+
break;
|
|
1048
|
+
if (rows.length >= SAFETY_CAP)
|
|
1049
|
+
break;
|
|
1050
|
+
if (totalCount !== undefined && rows.length >= totalCount)
|
|
1051
|
+
break;
|
|
1052
|
+
startIndex += PAGE;
|
|
1053
|
+
}
|
|
1054
|
+
const mapped = rows.map(toModuleSummary);
|
|
1055
|
+
if (totalCount !== undefined)
|
|
1056
|
+
mapped.totalCount = totalCount;
|
|
1057
|
+
return mapped;
|
|
1028
1058
|
}
|
|
1029
1059
|
/** GET /pm/module/:id — server returns an array; empty array → NotFound. */
|
|
1030
1060
|
async getModule(id) {
|
|
@@ -1227,23 +1257,73 @@ export class SimplifyQaAdapter {
|
|
|
1227
1257
|
// reaches that branch after emptyIds.push).
|
|
1228
1258
|
return { dryRun: false, deleted: true, dependencies: [], hasBlockers: false };
|
|
1229
1259
|
}
|
|
1260
|
+
/** `list_releases` has no limit/offset of its own — it always wants the WHOLE visible set — so
|
|
1261
|
+
* page internally past `searchBody`'s default 100 instead of silently truncating (same fix as
|
|
1262
|
+
* listModules). */
|
|
1230
1263
|
async listReleases(q) {
|
|
1231
1264
|
const fields = [{ column: 'deleted', value: false }];
|
|
1232
1265
|
if (q.scope === 'project')
|
|
1233
1266
|
fields.push({ column: 'projectIds', value: this.requireProjectId() });
|
|
1234
|
-
const
|
|
1235
|
-
const
|
|
1236
|
-
const rows =
|
|
1237
|
-
|
|
1267
|
+
const PAGE = 100;
|
|
1268
|
+
const SAFETY_CAP = 5000;
|
|
1269
|
+
const rows = [];
|
|
1270
|
+
let totalCount;
|
|
1271
|
+
let startIndex = 0;
|
|
1272
|
+
for (;;) {
|
|
1273
|
+
const body = this.searchBody(fields, { startIndex, limit: PAGE });
|
|
1274
|
+
const raw = await this.http.postJson('/pm/release/search', body);
|
|
1275
|
+
const page = pickArray(raw, 'data', 'content', 'releases');
|
|
1276
|
+
if (totalCount === undefined) {
|
|
1277
|
+
const t = raw?.totalCount ?? raw?.total ?? raw?.totalRecords;
|
|
1278
|
+
if (typeof t === 'number')
|
|
1279
|
+
totalCount = t;
|
|
1280
|
+
}
|
|
1281
|
+
rows.push(...page);
|
|
1282
|
+
if (page.length < PAGE)
|
|
1283
|
+
break;
|
|
1284
|
+
if (rows.length >= SAFETY_CAP)
|
|
1285
|
+
break;
|
|
1286
|
+
if (totalCount !== undefined && rows.length >= totalCount)
|
|
1287
|
+
break;
|
|
1288
|
+
startIndex += PAGE;
|
|
1289
|
+
}
|
|
1290
|
+
const mapped = rows.map(toReleaseSummary);
|
|
1291
|
+
if (totalCount !== undefined)
|
|
1292
|
+
mapped.totalCount = totalCount;
|
|
1293
|
+
return mapped;
|
|
1238
1294
|
}
|
|
1295
|
+
/** Same unconditional-pagination fix as listReleases — `list_sprints` has no limit/offset either. */
|
|
1239
1296
|
async listSprints(q) {
|
|
1240
1297
|
const fields = [{ column: 'deleted', value: false }];
|
|
1241
1298
|
if (q.releaseId)
|
|
1242
1299
|
fields.push({ column: 'releaseId', value: Number.parseInt(q.releaseId, 10) });
|
|
1243
|
-
const
|
|
1244
|
-
const
|
|
1245
|
-
const rows =
|
|
1246
|
-
|
|
1300
|
+
const PAGE = 100;
|
|
1301
|
+
const SAFETY_CAP = 5000;
|
|
1302
|
+
const rows = [];
|
|
1303
|
+
let totalCount;
|
|
1304
|
+
let startIndex = 0;
|
|
1305
|
+
for (;;) {
|
|
1306
|
+
const body = this.searchBody(fields, { startIndex, limit: PAGE });
|
|
1307
|
+
const raw = await this.http.postJson('/pm/sprint/search', body);
|
|
1308
|
+
const page = pickArray(raw, 'data', 'content', 'sprints');
|
|
1309
|
+
if (totalCount === undefined) {
|
|
1310
|
+
const t = raw?.totalCount ?? raw?.total ?? raw?.totalRecords;
|
|
1311
|
+
if (typeof t === 'number')
|
|
1312
|
+
totalCount = t;
|
|
1313
|
+
}
|
|
1314
|
+
rows.push(...page);
|
|
1315
|
+
if (page.length < PAGE)
|
|
1316
|
+
break;
|
|
1317
|
+
if (rows.length >= SAFETY_CAP)
|
|
1318
|
+
break;
|
|
1319
|
+
if (totalCount !== undefined && rows.length >= totalCount)
|
|
1320
|
+
break;
|
|
1321
|
+
startIndex += PAGE;
|
|
1322
|
+
}
|
|
1323
|
+
const mapped = rows.map(toSprintSummary);
|
|
1324
|
+
if (totalCount !== undefined)
|
|
1325
|
+
mapped.totalCount = totalCount;
|
|
1326
|
+
return mapped;
|
|
1247
1327
|
}
|
|
1248
1328
|
/** POST /pm/users/search — the customer's users (router mounted at `/pm/users`, plural — see
|
|
1249
1329
|
* project-management/express-app.js:181). Backend auto-scopes non-admin callers to users in
|
|
@@ -2767,6 +2847,25 @@ export class SimplifyQaAdapter {
|
|
|
2767
2847
|
doc = doc.length > 0 ? doc[0] : {};
|
|
2768
2848
|
return doc && typeof doc === 'object' ? doc : {};
|
|
2769
2849
|
}
|
|
2850
|
+
/** Mirrors sqa-ui `buildExecutionPlatform` (suites.component.ts:779) so MCP-added TCs save with
|
|
2851
|
+
* the same per-row platform the UI would set — otherwise the suite trips the "select execution
|
|
2852
|
+
* platform" warning at run time. Special types self-identify; WEB falls back to Chrome so
|
|
2853
|
+
* suite_run doesn't send `platform: []`; mobile with no bound device stays empty (UI does same). */
|
|
2854
|
+
buildExecutionPlatformForEntry(raw, tcType) {
|
|
2855
|
+
const special = new Set(['API', 'MAINFRAME', 'SAP', 'DESKTOP', 'DATABASE']);
|
|
2856
|
+
if (special.has(tcType)) {
|
|
2857
|
+
const p = { id: tcType, name: tcType, technologyType: tcType, type: 'NONE' };
|
|
2858
|
+
return { LOCAL: p, REMOTE: { ...p }, CLOUD: { ...p } };
|
|
2859
|
+
}
|
|
2860
|
+
const own = raw?.['executionPlatform'];
|
|
2861
|
+
if (own && typeof own === 'object' && own.id) {
|
|
2862
|
+
return { LOCAL: own, REMOTE: {}, CLOUD: {} };
|
|
2863
|
+
}
|
|
2864
|
+
if (tcType === 'WEB') {
|
|
2865
|
+
return { LOCAL: { id: 'CHROME', name: 'Chrome', technologyType: 'WEB', type: 'NONE' }, REMOTE: {}, CLOUD: {} };
|
|
2866
|
+
}
|
|
2867
|
+
return { LOCAL: {}, REMOTE: {}, CLOUD: {} };
|
|
2868
|
+
}
|
|
2770
2869
|
/** Assemble the strict allow-listed suite entry for an ADD op. Required fields per the SQA
|
|
2771
2870
|
* validator: testcaseId, code, seq (set by the caller), version, versionId, tcType. */
|
|
2772
2871
|
async buildSuiteEntryFromTestcase(tcNum) {
|
|
@@ -2789,7 +2888,7 @@ export class SimplifyQaAdapter {
|
|
|
2789
2888
|
...(raw?.projectId !== undefined ? { projectId: raw.projectId } : {}),
|
|
2790
2889
|
version: versionName ?? 'v1.0',
|
|
2791
2890
|
versionId: versionId ?? '',
|
|
2792
|
-
executionPlatform:
|
|
2891
|
+
executionPlatform: this.buildExecutionPlatformForEntry(raw, tcType),
|
|
2793
2892
|
};
|
|
2794
2893
|
}
|
|
2795
2894
|
async resolveObjectTemplateId(technology) {
|
|
@@ -3344,7 +3443,24 @@ export class SimplifyQaAdapter {
|
|
|
3344
3443
|
executionId, executionRunId, parentId, projectId,
|
|
3345
3444
|
});
|
|
3346
3445
|
const rawSteps = Array.isArray(stepsResp?.data) ? stepsResp.data : [];
|
|
3347
|
-
|
|
3446
|
+
// Backend logs control-flow markers as INFO rows with `description: null` (see
|
|
3447
|
+
// executionStepResult.service.js insertLoopIterationStart/insertFunctionEnd/… — the same
|
|
3448
|
+
// executionRunId carries LOOP_ITERATION_START/END, FUNCTION_START/END, FUNCTION_ITERATION_*,
|
|
3449
|
+
// WHILE_START/END alongside the real action rows). Left in, they fill the text response
|
|
3450
|
+
// with blank `• step N: (info)` lines that hide the actual failing step. Filter here so
|
|
3451
|
+
// stepResults contains only debuggable rows.
|
|
3452
|
+
const NOISE_STEP_TYPES = new Set([
|
|
3453
|
+
'LOOP_ITERATION_START', 'LOOP_ITERATION_END',
|
|
3454
|
+
'FUNCTION_START', 'FUNCTION_END',
|
|
3455
|
+
'FUNCTION_ITERATION_START', 'FUNCTION_ITERATION_END',
|
|
3456
|
+
'FOR_START', 'FOR_END', 'WHILE_START', 'WHILE_END',
|
|
3457
|
+
'ITERATOR_START', 'ITERATOR_END', 'DO',
|
|
3458
|
+
]);
|
|
3459
|
+
const filtered = rawSteps.filter((s) => {
|
|
3460
|
+
const st = String(s?.stepType ?? '').toUpperCase();
|
|
3461
|
+
return !NOISE_STEP_TYPES.has(st);
|
|
3462
|
+
});
|
|
3463
|
+
return filtered.map((s) => {
|
|
3348
3464
|
const step = {
|
|
3349
3465
|
n: typeof s?.seq === 'number' ? s.seq : 0,
|
|
3350
3466
|
description: String(s?.description ?? ''),
|
|
@@ -3414,15 +3530,15 @@ export class SimplifyQaAdapter {
|
|
|
3414
3530
|
reportUrl: `${base}/user/reports/reports-page?type=TESTCASE&parentId=${parentId}&id=${runIdNum}&projectId=${projectId}`,
|
|
3415
3531
|
};
|
|
3416
3532
|
}
|
|
3417
|
-
/** Most recent execution runId for a SUITE — same `/exec/execution/search` the /reports UI's
|
|
3418
|
-
* current-executions view drives, filtered
|
|
3419
|
-
*
|
|
3420
|
-
*
|
|
3421
|
-
async
|
|
3533
|
+
/** Most recent execution runId for a SUITE or TC — same `/exec/execution/search` the /reports UI's
|
|
3534
|
+
* current-executions view drives, filtered by `type` + the entity's numeric id, sorted id desc,
|
|
3535
|
+
* limit 1. `childExecution:false` + the `parentExecutionCopy nor` clause together drop suite-child
|
|
3536
|
+
* TC rows, so a TC lookup returns its LATEST STANDALONE run, not the child spawned inside a suite. */
|
|
3537
|
+
async getLatestRunFor(type, id) {
|
|
3422
3538
|
const projectId = this.requireProjectId();
|
|
3423
|
-
const
|
|
3424
|
-
if (!Number.isFinite(
|
|
3425
|
-
throw new Error(`
|
|
3539
|
+
const num = Number.parseInt(numericId(id), 10);
|
|
3540
|
+
if (!Number.isFinite(num))
|
|
3541
|
+
throw new Error(`getLatestRunFor(${type}): invalid id ${id}.`);
|
|
3426
3542
|
// Hand-rolled payload — searchBody doesn't emit `sort` or `operator` keys the /reports search wants.
|
|
3427
3543
|
const body = {
|
|
3428
3544
|
searchFields: [
|
|
@@ -3431,16 +3547,83 @@ export class SimplifyQaAdapter {
|
|
|
3431
3547
|
{ column: 'projectId', value: projectId, regEx: false },
|
|
3432
3548
|
{ column: 'childExecution', value: false },
|
|
3433
3549
|
{ column: 'parentExecutionCopy', value: true, operator: 'nor' },
|
|
3434
|
-
{ column: 'type', value:
|
|
3435
|
-
{ column: 'executionTypeId', value:
|
|
3550
|
+
{ column: 'type', value: type, regEx: false },
|
|
3551
|
+
{ column: 'executionTypeId', value: num, regEx: false },
|
|
3436
3552
|
],
|
|
3437
3553
|
startIndex: 0,
|
|
3438
3554
|
limit: 1,
|
|
3439
3555
|
};
|
|
3440
3556
|
const raw = await this.http.postJson('/exec/execution/search', body);
|
|
3441
3557
|
const rows = pickArray(raw, 'data', 'content', 'executions');
|
|
3442
|
-
|
|
3443
|
-
|
|
3558
|
+
return str(rows[0], 'id', '_id') ?? null;
|
|
3559
|
+
}
|
|
3560
|
+
async getLatestSuiteRun(suiteId) { return this.getLatestRunFor('SUITE', suiteId); }
|
|
3561
|
+
async getLatestTestcaseRun(tcId) { return this.getLatestRunFor('TC', tcId); }
|
|
3562
|
+
/** Top-N recent runs — one HTTP call, same standalone-only filters as `getLatestRunFor`. For each
|
|
3563
|
+
* SUITE row the exec doc's `executionItems[]` already carries per-TC status, so the tally is
|
|
3564
|
+
* computed inline (no extra call per run). TC rows omit the tally counters. Sorted newest-first
|
|
3565
|
+
* by `id` (execution ids are monotonic). Bounded — callers should cap `limit` at the tool layer
|
|
3566
|
+
* so a runaway request can't pull thousands of rows. */
|
|
3567
|
+
async listRecentRuns(type, id, limit) {
|
|
3568
|
+
const projectId = this.requireProjectId();
|
|
3569
|
+
const num = Number.parseInt(numericId(id), 10);
|
|
3570
|
+
if (!Number.isFinite(num))
|
|
3571
|
+
throw new Error(`listRecentRuns(${type}): invalid id ${id}.`);
|
|
3572
|
+
const base = (this.cfg.baseUrl ?? '').replace(/\/+$/, '');
|
|
3573
|
+
const body = {
|
|
3574
|
+
searchFields: [
|
|
3575
|
+
{ column: 'id', sort: 'dsc' },
|
|
3576
|
+
{ column: 'deleted', value: false },
|
|
3577
|
+
{ column: 'projectId', value: projectId, regEx: false },
|
|
3578
|
+
{ column: 'childExecution', value: false },
|
|
3579
|
+
{ column: 'parentExecutionCopy', value: true, operator: 'nor' },
|
|
3580
|
+
{ column: 'type', value: type, regEx: false },
|
|
3581
|
+
{ column: 'executionTypeId', value: num, regEx: false },
|
|
3582
|
+
],
|
|
3583
|
+
startIndex: 0,
|
|
3584
|
+
limit,
|
|
3585
|
+
};
|
|
3586
|
+
const raw = await this.http.postJson('/exec/execution/search', body);
|
|
3587
|
+
const rows = pickArray(raw, 'data', 'content', 'executions');
|
|
3588
|
+
return rows.map((r) => {
|
|
3589
|
+
const runId = str(r, 'id', '_id') ?? '';
|
|
3590
|
+
const runIdNum = Number.parseInt(runId, 10);
|
|
3591
|
+
const summary = {
|
|
3592
|
+
runId,
|
|
3593
|
+
state: mapRunState(str(r, 'status') ?? ''),
|
|
3594
|
+
};
|
|
3595
|
+
const startedAt = str(r, 'startTime', 'createdAt');
|
|
3596
|
+
const endedAt = str(r, 'endTime');
|
|
3597
|
+
if (startedAt)
|
|
3598
|
+
summary.startedAt = startedAt;
|
|
3599
|
+
if (endedAt)
|
|
3600
|
+
summary.endedAt = endedAt;
|
|
3601
|
+
if (Number.isFinite(runIdNum)) {
|
|
3602
|
+
const entityNum = Number(r?.executionTypeId ?? num);
|
|
3603
|
+
summary.reportUrl = `${base}/user/reports/reports-page?type=${type === 'SUITE' ? 'SUITE' : 'TESTCASE'}&parentId=${entityNum}&id=${runIdNum}&projectId=${projectId}`;
|
|
3604
|
+
}
|
|
3605
|
+
if (type === 'SUITE') {
|
|
3606
|
+
const items = Array.isArray(r?.executionItems) ? r.executionItems : [];
|
|
3607
|
+
let passed = 0, failed = 0, skipped = 0, notExecuted = 0;
|
|
3608
|
+
for (const it of items) {
|
|
3609
|
+
const s = String(it?.status ?? '').toUpperCase();
|
|
3610
|
+
if (s === 'PASSED')
|
|
3611
|
+
passed++;
|
|
3612
|
+
else if (s === 'FAILED')
|
|
3613
|
+
failed++;
|
|
3614
|
+
else if (s === 'SKIPPED')
|
|
3615
|
+
skipped++;
|
|
3616
|
+
else if (s === 'NOTEXECUTED')
|
|
3617
|
+
notExecuted++;
|
|
3618
|
+
}
|
|
3619
|
+
summary.totalTestCases = items.length;
|
|
3620
|
+
summary.passed = passed;
|
|
3621
|
+
summary.failed = failed;
|
|
3622
|
+
summary.skipped = skipped;
|
|
3623
|
+
summary.notExecuted = notExecuted;
|
|
3624
|
+
}
|
|
3625
|
+
return summary;
|
|
3626
|
+
});
|
|
3444
3627
|
}
|
|
3445
3628
|
/** Targeted name lookup for a single project by numeric id — the whole-list `listProjects`
|
|
3446
3629
|
* is paged (default 100) and API-key scoping can hide the selected project, which left
|
|
@@ -3635,11 +3818,15 @@ export class SimplifyQaAdapter {
|
|
|
3635
3818
|
const executionId = Number.parseInt(numericId(runId), 10);
|
|
3636
3819
|
if (!Number.isFinite(executionId))
|
|
3637
3820
|
throw new Error(`stopRun: invalid runId ${runId}.`);
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3821
|
+
// Mirror sqa-ui reports.component.ts:2041-2054: cloud-parallel needs a dedicated killType so
|
|
3822
|
+
// the backend fans the Redis kill out to every child agent (executions/…/execution.service.js
|
|
3823
|
+
// :4610-4657). Plain STOP_EXECUTION only pushes to the parent's agentId, leaving cloud-parallel
|
|
3824
|
+
// child VMs running even though their DB rows read FAILED.
|
|
3825
|
+
const doc = await this.fetchExecDoc(executionId, projectId);
|
|
3826
|
+
const mode = String(doc?.mode ?? '').toUpperCase();
|
|
3827
|
+
const style = String(doc?.executionStyle ?? '').toUpperCase();
|
|
3828
|
+
const killType = mode === 'CLOUD' && style === 'PARALLEL' ? 'STOP_EXECUTION_PARALLEL_CLOUD' : 'STOP_EXECUTION';
|
|
3829
|
+
await this.http.postJson('/exec/execution/stopExecution', { projectId, executionId, killType });
|
|
3643
3830
|
}
|
|
3644
3831
|
/** SUITE dispatch. Mirrors `startRun` above (which handles TC) — same `/exec/execution` endpoint,
|
|
3645
3832
|
* same LOCAL-agent fast-fail, same project-name / environment resolution. What differs is on the
|