common-qa-mcp 0.11.0 → 0.13.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 +42 -1
- package/dist/adapters/simplifyqa/adapter.d.ts.map +1 -1
- package/dist/adapters/simplifyqa/adapter.js +201 -18
- package/dist/adapters/simplifyqa/adapter.js.map +1 -1
- package/dist/adapters/simplifyqa/executionFailures.d.ts +59 -0
- package/dist/adapters/simplifyqa/executionFailures.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/executionFailures.js +638 -0
- package/dist/adapters/simplifyqa/executionFailures.js.map +1 -0
- package/dist/adapters/simplifyqa/failureCategory.d.ts +26 -0
- package/dist/adapters/simplifyqa/failureCategory.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/failureCategory.js +208 -0
- package/dist/adapters/simplifyqa/failureCategory.js.map +1 -0
- package/dist/adapters/simplifyqa/failureReport.d.ts +50 -0
- package/dist/adapters/simplifyqa/failureReport.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/failureReport.js +353 -0
- package/dist/adapters/simplifyqa/failureReport.js.map +1 -0
- package/dist/adapters/simplifyqa/failureTypes.d.ts +193 -0
- package/dist/adapters/simplifyqa/failureTypes.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/failureTypes.js +8 -0
- package/dist/adapters/simplifyqa/failureTypes.js.map +1 -0
- package/dist/adapters/simplifyqa/flow.d.ts +55 -0
- package/dist/adapters/simplifyqa/flow.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/flow.js +325 -0
- package/dist/adapters/simplifyqa/flow.js.map +1 -0
- package/dist/adapters/simplifyqa/mapLimit.d.ts +3 -0
- package/dist/adapters/simplifyqa/mapLimit.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/mapLimit.js +14 -0
- package/dist/adapters/simplifyqa/mapLimit.js.map +1 -0
- package/dist/adapters/simplifyqa/mapper.d.ts +3 -0
- package/dist/adapters/simplifyqa/mapper.d.ts.map +1 -1
- package/dist/adapters/simplifyqa/mapper.js +6 -7
- package/dist/adapters/simplifyqa/mapper.js.map +1 -1
- package/dist/adapters/simplifyqa/planTree.d.ts +31 -0
- package/dist/adapters/simplifyqa/planTree.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/planTree.js +110 -0
- package/dist/adapters/simplifyqa/planTree.js.map +1 -0
- package/dist/adapters/simplifyqa/searchEngine.d.ts +237 -0
- package/dist/adapters/simplifyqa/searchEngine.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/searchEngine.js +1206 -0
- package/dist/adapters/simplifyqa/searchEngine.js.map +1 -0
- package/dist/adapters/simplifyqa/searchRegistry.d.ts +112 -0
- package/dist/adapters/simplifyqa/searchRegistry.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/searchRegistry.js +1413 -0
- package/dist/adapters/simplifyqa/searchRegistry.js.map +1 -0
- package/dist/adapters/simplifyqa/searchResolve.d.ts +84 -0
- package/dist/adapters/simplifyqa/searchResolve.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/searchResolve.js +319 -0
- package/dist/adapters/simplifyqa/searchResolve.js.map +1 -0
- package/dist/adapters/simplifyqa/stepRules.d.ts +91 -0
- package/dist/adapters/simplifyqa/stepRules.d.ts.map +1 -0
- package/dist/adapters/simplifyqa/stepRules.js +228 -0
- package/dist/adapters/simplifyqa/stepRules.js.map +1 -0
- package/dist/adapters/types.d.ts +14 -1
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/domain/types.d.ts +14 -2
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/initAgents.d.ts.map +1 -1
- package/dist/initAgents.js +32 -9
- package/dist/initAgents.js.map +1 -1
- package/dist/mcpResult.d.ts +19 -0
- package/dist/mcpResult.d.ts.map +1 -1
- package/dist/mcpResult.js +11 -0
- package/dist/mcpResult.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +70 -16
- package/dist/server.js.map +1 -1
- package/dist/tools/discovery.tools.d.ts.map +1 -1
- package/dist/tools/discovery.tools.js +36 -10
- package/dist/tools/discovery.tools.js.map +1 -1
- package/dist/tools/failure.tools.d.ts +14 -0
- package/dist/tools/failure.tools.d.ts.map +1 -0
- package/dist/tools/failure.tools.js +65 -0
- package/dist/tools/failure.tools.js.map +1 -0
- package/dist/tools/query.tools.d.ts +20 -0
- package/dist/tools/query.tools.d.ts.map +1 -0
- package/dist/tools/query.tools.js +310 -0
- package/dist/tools/query.tools.js.map +1 -0
- package/dist/tools/testcase.tools.d.ts.map +1 -1
- package/dist/tools/testcase.tools.js +87 -10
- package/dist/tools/testcase.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.13.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
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { ConnectedQaConfig } from '../../config.js';
|
|
2
2
|
import type { MakeClientOptions } from '../http.js';
|
|
3
3
|
import type { ListResult, ProjectInfo } from '../types.js';
|
|
4
|
-
import type { ActionDef, CloudRunner, DatasetInfo, DefaultIteration, DefectQuery, DefectSummary, EntityRef, EnvInfo, Epic, EpicInput, EpicQuery, EpicSummary, EpicUpdate, Feature, FeatureInput, FeatureQuery, FeatureSummary, FeatureUpdate, Formula, FormulaCall, FunctionQuery, FunctionSummary, QaFunction, JournalOp, JournalView, LocalAgent, Locator, MemberOp, MobileDevice, ModuleCreateInput, ModuleDeleteResult, ModuleDetail, ModuleSaved, ModuleSummary, ModuleUpdateInput, ObjectQuery, ProjectSummary, QaObject, ReleaseQuery, ReleaseSummary, RunOptions, RunRef, RunStatus, RunTarget, SaveGeneratedIterations, SaveGeneratedIterationsResult, SavedRef, SprintQuery, SprintSummary, BacklogDeleteResult, BacklogKind, ReportFile, ReportKind, Story, StoryInput, StoryQuery, StorySummary, StoryUpdate, Suite, SuiteSummary, TaskQuery, TaskSummary, TcQuery, TcSummary, TestCase, UserQuery, UserSummary, VersionDeleteInput, VersionDeleteResult } from '../../domain/types.js';
|
|
4
|
+
import type { ActionDef, CloudRunner, CopyTestdataResult, DatasetInfo, DefaultIteration, DefectQuery, DefectSummary, EntityRef, EnvInfo, Epic, EpicInput, EpicQuery, EpicSummary, EpicUpdate, Feature, FeatureInput, FeatureQuery, FeatureSummary, FeatureUpdate, Formula, FormulaCall, FunctionQuery, FunctionSummary, QaFunction, JournalOp, JournalView, LocalAgent, Locator, MemberOp, MobileDevice, ModuleCreateInput, ModuleDeleteResult, ModuleDetail, ModuleSaved, ModuleSummary, ModuleUpdateInput, ObjectQuery, ProjectSummary, QaObject, ReleaseQuery, ReleaseSummary, RunOptions, RunRef, RunStatus, RunTarget, SaveGeneratedIterations, SaveGeneratedIterationsResult, SavedRef, SprintQuery, SprintSummary, BacklogDeleteResult, BacklogKind, ReportFile, ReportKind, Story, StoryInput, StoryQuery, StorySummary, StoryUpdate, Suite, SuiteSummary, TaskQuery, TaskSummary, TcQuery, TcSummary, TestCase, UserQuery, UserSummary, VersionDeleteInput, VersionDeleteResult } from '../../domain/types.js';
|
|
5
|
+
import { type SqaQueryRequest, type SqaQueryResult } from './searchEngine.js';
|
|
5
6
|
/** Test seam identical to WalnutAdapter's — swap transport, keep real headers. */
|
|
6
7
|
export type SimplifyQaTransport = Pick<MakeClientOptions, 'fetchImpl' | 'FormDataImpl' | 'BlobImpl'>;
|
|
7
8
|
/**
|
|
@@ -22,6 +23,7 @@ export declare class SimplifyQaAdapter {
|
|
|
22
23
|
private readonly http;
|
|
23
24
|
private agentHop;
|
|
24
25
|
private formulaCache;
|
|
26
|
+
private sqaEngine;
|
|
25
27
|
private backlogDefaultsCache;
|
|
26
28
|
constructor(cfg: ConnectedQaConfig, transport?: SimplifyQaTransport);
|
|
27
29
|
private headers;
|
|
@@ -35,7 +37,21 @@ export declare class SimplifyQaAdapter {
|
|
|
35
37
|
userId?: string;
|
|
36
38
|
};
|
|
37
39
|
private requireProjectId;
|
|
40
|
+
/** A search payload. Soft-deleted rows are ALWAYS excluded, as the AI assistant's reads do:
|
|
41
|
+
* `deleted:false` is set here and a caller's own `deleted` entry is dropped, never sent. */
|
|
38
42
|
private searchBody;
|
|
43
|
+
private engine;
|
|
44
|
+
/**
|
|
45
|
+
* ONE generic read surface over every SQA collection. Backs the `sqa_query` tool:
|
|
46
|
+
* catalog -> collections, fields, relations, descriptions
|
|
47
|
+
* custom_fields -> custom fields for a collection (label -> key -> customFields.<key>)
|
|
48
|
+
* search -> compiled searchFields + rows
|
|
49
|
+
* get -> one row, optionally expanding steps/versions/members
|
|
50
|
+
* related -> follow a relation (story -> testcases, testcase -> defects, ...)
|
|
51
|
+
*
|
|
52
|
+
* Always injects `deleted:false` and the active project; never exposes deleted rows.
|
|
53
|
+
*/
|
|
54
|
+
sqaQuery(req: SqaQueryRequest): Promise<SqaQueryResult>;
|
|
39
55
|
/** Validates baseUrl + token + (optional) project by running the same list_projects search the
|
|
40
56
|
* Java `infoResult` uses to resolve the project name — no separate /info endpoint on SQA.
|
|
41
57
|
* `counts` is a best-effort row count per entity type (test cases/suites/stories/objects), read
|
|
@@ -486,10 +502,22 @@ export declare class SimplifyQaAdapter {
|
|
|
486
502
|
tcId: string;
|
|
487
503
|
versionId?: string;
|
|
488
504
|
environmentType?: string;
|
|
505
|
+
includeProtected?: boolean;
|
|
489
506
|
}): Promise<DefaultIteration>;
|
|
490
507
|
/** Persist N generated iteration rows. Rebuilds the name → paramId map from a fresh template
|
|
491
508
|
* fetch — no cache, because a stale id would silently write to the wrong parameter. */
|
|
492
509
|
saveGeneratedIterations(payload: SaveGeneratedIterations): Promise<SaveGeneratedIterationsResult>;
|
|
510
|
+
/** Copy the default-iteration values of one TC onto another, matching parameters BY NAME.
|
|
511
|
+
* Used by tc_automate: a manual TC converted to automated must carry the manual TC's testdata,
|
|
512
|
+
* not the values that happened to be typed during the recording. Protected source values are read
|
|
513
|
+
* unmasked internally so they can be copied — they are never returned to the model.
|
|
514
|
+
* A source parameter with an EMPTY seed is skipped, so a value the recording generated for a
|
|
515
|
+
* field the manual TC never filled is left in place. */
|
|
516
|
+
copyTestdata(q: {
|
|
517
|
+
fromTcId: string;
|
|
518
|
+
toTcId: string;
|
|
519
|
+
environmentType?: string;
|
|
520
|
+
}): Promise<CopyTestdataResult>;
|
|
493
521
|
/** Environment key: caller wins; else fetch the project's configured envs and pick the first;
|
|
494
522
|
* else 'general' (matches the SQA UI fallback). */
|
|
495
523
|
private resolveEnvironment;
|
|
@@ -519,6 +547,19 @@ export declare class SimplifyQaAdapter {
|
|
|
519
547
|
versionId?: string | undefined;
|
|
520
548
|
stepId?: string | undefined;
|
|
521
549
|
}): Promise<RunStatus>;
|
|
550
|
+
/** Whole-execution failure analysis (executionFailures.ts) for TC-123 / SU-123 / PL-123 or one
|
|
551
|
+
* named execution. */
|
|
552
|
+
getExecutionFailures(input: import('./failureTypes.js').ExecutionFailureInput): Promise<import('./failureTypes.js').ExecutionFailureContext>;
|
|
553
|
+
/** A failure screenshot as base64 (see executionFailures.fetchFailureImage). */
|
|
554
|
+
fetchFailureImage(absoluteUrl: string, maxBytes: number): Promise<{
|
|
555
|
+
data: string;
|
|
556
|
+
mimeType: string;
|
|
557
|
+
} | null>;
|
|
558
|
+
/** The failure-analysis card + evidence text and the top causes' screenshots (failureReport.ts). */
|
|
559
|
+
getFailureReport(input: import('./failureTypes.js').ExecutionFailureInput & {
|
|
560
|
+
includeImages?: boolean;
|
|
561
|
+
}): Promise<import('./failureReport.js').FailureReport>;
|
|
562
|
+
private baseUrl;
|
|
522
563
|
/** Most recent execution runId for a SUITE or TC — same `/exec/execution/search` the /reports UI's
|
|
523
564
|
* current-executions view drives, filtered by `type` + the entity's numeric id, sorted id desc,
|
|
524
565
|
* limit 1. `childExecution:false` + the `parentExecutionCopy nor` clause together drop suite-child
|
|
@@ -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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"}
|
|
@@ -3,7 +3,11 @@ import { mkdir, writeFile } from 'node:fs/promises';
|
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { makeClient } from '../http.js';
|
|
5
5
|
import { RemoteMcpAdapter } from '../remoteMcp/adapter.js';
|
|
6
|
-
import {
|
|
6
|
+
import { resolveValuesFromEnv, SqaSearchEngine } from './searchEngine.js';
|
|
7
|
+
import { resolveCollection } from './searchRegistry.js';
|
|
8
|
+
import { ExecutionFailureAnalysis, fetchFailureImage } from './executionFailures.js';
|
|
9
|
+
import { failureImages, renderExecution } from './failureReport.js';
|
|
10
|
+
import { applyCollectionSteps, buildTestcasePayload, deriveTcType, extractApiParamNames, extractParamNames, fromSqaStep, looksSensitive, normalizeSuiteEntry, notDeleted, numericId, paramDefault, pickArray, str, SUITE_UPDATE_ALLOWED_KEYS, TECH_BY_STEPTYPE, toDefectSummary, toEpic, toEpicSummary, toFeature, toFeatureSummary, toFunction, toFunctionSummary, toModuleSaved, toModuleSummary, toObject, toImageUrl, toReleaseSummary, toSavedRef, toSprintSummary, toStory, toStorySummary, toSuite, toSuiteSummary, toTaskSummary, toTcSummary, toTestCase, toVersionEntries, withTotal, } from './mapper.js';
|
|
7
11
|
/** SQA run-row status → neutral RunStatus.state. */
|
|
8
12
|
function mapRunState(s) {
|
|
9
13
|
switch (s.toUpperCase()) {
|
|
@@ -222,6 +226,9 @@ export class SimplifyQaAdapter {
|
|
|
222
226
|
// (from the Promise.all in saveGeneratedIterations) all await the same fetch instead of each firing
|
|
223
227
|
// their own /tm/syncFormulas/fetch before the cache is populated.
|
|
224
228
|
this.formulaCache = null;
|
|
229
|
+
// Generic collection query engine (sqa_query). One instance per adapter so the custom-field
|
|
230
|
+
// cache survives across calls; switchProject rebuilds the adapter, dropping the cache.
|
|
231
|
+
this.sqaEngine = null;
|
|
225
232
|
// Same rationale for the backlog default state/priority per parentId (1=Epic, 2=Feature, 3=Story).
|
|
226
233
|
// Fields config barely changes mid-session; cache the in-flight promise so parallel creates share it.
|
|
227
234
|
this.backlogDefaultsCache = new Map();
|
|
@@ -283,13 +290,18 @@ export class SimplifyQaAdapter {
|
|
|
283
290
|
}
|
|
284
291
|
// Standard SQA `searchFields` payload builder — the SAME shape every /search endpoint expects.
|
|
285
292
|
// Every list op below uses this instead of hand-writing the same 6-line boilerplate.
|
|
293
|
+
/** A search payload. Soft-deleted rows are ALWAYS excluded, as the AI assistant's reads do:
|
|
294
|
+
* `deleted:false` is set here and a caller's own `deleted` entry is dropped, never sent. */
|
|
286
295
|
searchBody(fields, opts = {}) {
|
|
287
296
|
const body = {
|
|
288
|
-
searchFields:
|
|
289
|
-
column:
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
297
|
+
searchFields: [
|
|
298
|
+
{ column: 'deleted', value: false },
|
|
299
|
+
...fields.filter((f) => f.column !== 'deleted').map((f) => ({
|
|
300
|
+
column: f.column,
|
|
301
|
+
value: f.value,
|
|
302
|
+
...(f.regEx ? { regEx: true } : {}),
|
|
303
|
+
})),
|
|
304
|
+
],
|
|
293
305
|
startIndex: opts.startIndex ?? 0,
|
|
294
306
|
limit: opts.limit ?? 100,
|
|
295
307
|
};
|
|
@@ -302,6 +314,80 @@ export class SimplifyQaAdapter {
|
|
|
302
314
|
body['skipStartIndex'] = 1;
|
|
303
315
|
return body;
|
|
304
316
|
}
|
|
317
|
+
// ---------------------------------------------------------------------- Generic collection query
|
|
318
|
+
engine() {
|
|
319
|
+
if (!this.sqaEngine) {
|
|
320
|
+
const me = Number.parseInt(this.cfg.userId?.trim() || this.jwtUserId() || '', 10);
|
|
321
|
+
this.sqaEngine = new SqaSearchEngine(this.http, this.requireProjectId(), {
|
|
322
|
+
resolveValues: resolveValuesFromEnv(process.env),
|
|
323
|
+
...(Number.isFinite(me) ? { currentUserId: me } : {}),
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
return this.sqaEngine;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* ONE generic read surface over every SQA collection. Backs the `sqa_query` tool:
|
|
330
|
+
* catalog -> collections, fields, relations, descriptions
|
|
331
|
+
* custom_fields -> custom fields for a collection (label -> key -> customFields.<key>)
|
|
332
|
+
* search -> compiled searchFields + rows
|
|
333
|
+
* get -> one row, optionally expanding steps/versions/members
|
|
334
|
+
* related -> follow a relation (story -> testcases, testcase -> defects, ...)
|
|
335
|
+
*
|
|
336
|
+
* Always injects `deleted:false` and the active project; never exposes deleted rows.
|
|
337
|
+
*/
|
|
338
|
+
async sqaQuery(req) {
|
|
339
|
+
switch (req.op) {
|
|
340
|
+
case 'catalog':
|
|
341
|
+
return { op: 'catalog', collections: this.engine().catalog(req.collection) };
|
|
342
|
+
case 'custom_fields': {
|
|
343
|
+
if (!req.collection)
|
|
344
|
+
throw new Error('`collection` is required for op:"custom_fields".');
|
|
345
|
+
return {
|
|
346
|
+
op: 'custom_fields',
|
|
347
|
+
collection: req.collection,
|
|
348
|
+
fields: await this.engine().customFields(req.collection),
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
case 'search':
|
|
352
|
+
return { op: 'search', ...(await this.engine().search(req)) };
|
|
353
|
+
case 'count':
|
|
354
|
+
return { op: 'count', ...(await this.engine().count(req)) };
|
|
355
|
+
case 'related': {
|
|
356
|
+
// Execution step results need the run UUID/step ladder, not a raw subresource GET.
|
|
357
|
+
const c = req.collection ? resolveCollection(req.collection) : undefined;
|
|
358
|
+
if (c?.name === 'executions' && req.relation === 'steps' && req.id) {
|
|
359
|
+
const run = await this.getRun(String(req.id));
|
|
360
|
+
const rows = (run.stepResults ?? []);
|
|
361
|
+
return {
|
|
362
|
+
op: 'related',
|
|
363
|
+
collection: 'executions',
|
|
364
|
+
rows,
|
|
365
|
+
totalCount: rows.length,
|
|
366
|
+
returned: rows.length,
|
|
367
|
+
offset: 0,
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
return { op: 'related', ...(await this.engine().related(req)) };
|
|
371
|
+
}
|
|
372
|
+
case 'get': {
|
|
373
|
+
if (!req.collection)
|
|
374
|
+
throw new Error('`collection` is required for op:"get".');
|
|
375
|
+
if (!req.id)
|
|
376
|
+
throw new Error('`id` is required for op:"get".');
|
|
377
|
+
const c = resolveCollection(req.collection);
|
|
378
|
+
if (!c)
|
|
379
|
+
throw new Error(`Unknown collection "${req.collection}".`);
|
|
380
|
+
// Runs need the UUID/step ladder in the existing getRun implementation, not a raw row.
|
|
381
|
+
if (c.name === 'executions') {
|
|
382
|
+
const run = await this.getRun(String(req.id));
|
|
383
|
+
return { op: 'get', collection: 'executions', row: run };
|
|
384
|
+
}
|
|
385
|
+
return this.engine().getWithExpand(req);
|
|
386
|
+
}
|
|
387
|
+
default:
|
|
388
|
+
throw new Error(`Unsupported op "${String(req.op)}".`);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
305
391
|
// ---------------------------------------------------------------------- Info + projects
|
|
306
392
|
/** Validates baseUrl + token + (optional) project by running the same list_projects search the
|
|
307
393
|
* Java `infoResult` uses to resolve the project name — no separate /info endpoint on SQA.
|
|
@@ -432,8 +518,17 @@ export class SimplifyQaAdapter {
|
|
|
432
518
|
];
|
|
433
519
|
if (q.search)
|
|
434
520
|
fields.push({ column: 'name', value: q.search, regEx: true });
|
|
435
|
-
|
|
436
|
-
|
|
521
|
+
// SQA test cases have NO `status`/`priority`/`stepCount` columns (checked against the backend
|
|
522
|
+
// fields config + live rows on 2026-10-23). Reject rather than silently return zero rows.
|
|
523
|
+
if (q.status) {
|
|
524
|
+
throw new Error('SimplifyQA test cases have no `status` field. Use `reviewApproveStatus` or a custom field ' +
|
|
525
|
+
'(call sqa_query({ op:"custom_fields", collection:"testcases" })).');
|
|
526
|
+
}
|
|
527
|
+
const phantom = (q.filters ?? []).find((f) => f.column === 'status' || f.column === 'priority' || f.column === 'stepCount');
|
|
528
|
+
if (phantom) {
|
|
529
|
+
throw new Error(`SimplifyQA test cases have no \`${phantom.column}\` field. Use \`reviewApproveStatus\`, ` +
|
|
530
|
+
'a custom field via sqa_query, or remove this filter.');
|
|
531
|
+
}
|
|
437
532
|
const createdBy = this.resolveUserFilter(q.createdBy);
|
|
438
533
|
if (createdBy != null)
|
|
439
534
|
fields.push({ column: 'createdBy', value: createdBy });
|
|
@@ -452,7 +547,8 @@ export class SimplifyQaAdapter {
|
|
|
452
547
|
startIndex: q.offset ?? 0,
|
|
453
548
|
limit: q.limit ?? 100,
|
|
454
549
|
rawOffset: true,
|
|
455
|
-
|
|
550
|
+
// No priority/status/stepCount: those columns do not exist on SQA testcase rows.
|
|
551
|
+
selectFields: ['id', 'code', 'name', 'tcType', 'executionType', 'obsolete'],
|
|
456
552
|
});
|
|
457
553
|
const raw = await this.http.postJson('/tm/testcase/search', body);
|
|
458
554
|
const rows = pickArray(raw, 'data', 'content', 'testCases');
|
|
@@ -1273,7 +1369,8 @@ export class SimplifyQaAdapter {
|
|
|
1273
1369
|
if (!isSuite) {
|
|
1274
1370
|
if (input.kinds.includes('suite'))
|
|
1275
1371
|
throw new Error('The suite report is only available for a suite execution; this is a test case execution.');
|
|
1276
|
-
const
|
|
1372
|
+
const rawRuns = await this.http.getJson(`/exec/report/${execNum}/${projectId}`);
|
|
1373
|
+
const runs = Array.isArray(rawRuns) ? notDeleted(rawRuns) : rawRuns;
|
|
1277
1374
|
if (!Array.isArray(runs) || runs.length === 0)
|
|
1278
1375
|
throw new Error(`Execution ${input.runId} has no run results to report on.`);
|
|
1279
1376
|
const chosen = pickRun(runs);
|
|
@@ -2889,8 +2986,8 @@ export class SimplifyQaAdapter {
|
|
|
2889
2986
|
{ column: 'projectId', value: projectId },
|
|
2890
2987
|
], { startIndex: 0, limit: 10 });
|
|
2891
2988
|
// The `searchFields` shape supports `ignorecase:true` per-field; searchBody doesn't emit it,
|
|
2892
|
-
// so add it inline for the name column.
|
|
2893
|
-
body['searchFields'][
|
|
2989
|
+
// so add it inline for the name column (not index 0 — searchBody puts `deleted` first).
|
|
2990
|
+
body['searchFields'].find((f) => f.column === 'name')['ignorecase'] = true;
|
|
2894
2991
|
const raw = await this.http.postJson('/tm/parameter/search', body);
|
|
2895
2992
|
const rows = pickArray(raw, 'data', 'content');
|
|
2896
2993
|
for (const row of rows) {
|
|
@@ -2915,7 +3012,7 @@ export class SimplifyQaAdapter {
|
|
|
2915
3012
|
{ column: 'projectId', value: projectId },
|
|
2916
3013
|
{ column: 'deleted', value: false },
|
|
2917
3014
|
], { startIndex: 0, limit: 10 });
|
|
2918
|
-
body['searchFields'][
|
|
3015
|
+
body['searchFields'].find((f) => f.column === 'disname')['ignorecase'] = true;
|
|
2919
3016
|
const raw = await this.http.postJson('/tm/object/search', body);
|
|
2920
3017
|
const rows = pickArray(raw, 'data', 'content', 'objects');
|
|
2921
3018
|
for (const row of rows) {
|
|
@@ -3440,7 +3537,11 @@ export class SimplifyQaAdapter {
|
|
|
3440
3537
|
if (!meta)
|
|
3441
3538
|
continue; // parameter deleted — skip
|
|
3442
3539
|
const isProtected = meta.protected || looksSensitive(meta.name);
|
|
3443
|
-
|
|
3540
|
+
// includeProtected is INTERNAL (copyTestdata): the real value never leaves the adapter on the
|
|
3541
|
+
// model-facing path (tc_get_testdata), which leaves it off.
|
|
3542
|
+
const seed = isProtected && !q.includeProtected
|
|
3543
|
+
? (rawValue ? '*****' : '(empty)')
|
|
3544
|
+
: rawValue;
|
|
3444
3545
|
parameters.push({ paramId: pid, name: meta.name, seed, ...(isProtected ? { protected: true } : {}) });
|
|
3445
3546
|
}
|
|
3446
3547
|
}
|
|
@@ -3513,6 +3614,59 @@ export class SimplifyQaAdapter {
|
|
|
3513
3614
|
await this.http.postJson('/tm/testdata/saveItrForDataGen', body);
|
|
3514
3615
|
return { tcId: payload.tcId, inserted: iterations.length };
|
|
3515
3616
|
}
|
|
3617
|
+
/** Copy the default-iteration values of one TC onto another, matching parameters BY NAME.
|
|
3618
|
+
* Used by tc_automate: a manual TC converted to automated must carry the manual TC's testdata,
|
|
3619
|
+
* not the values that happened to be typed during the recording. Protected source values are read
|
|
3620
|
+
* unmasked internally so they can be copied — they are never returned to the model.
|
|
3621
|
+
* A source parameter with an EMPTY seed is skipped, so a value the recording generated for a
|
|
3622
|
+
* field the manual TC never filled is left in place. */
|
|
3623
|
+
async copyTestdata(q) {
|
|
3624
|
+
if (!q.fromTcId || !q.toTcId)
|
|
3625
|
+
throw new Error('copyTestdata: fromTcId and toTcId are required');
|
|
3626
|
+
const source = await this.getDefaultIteration({
|
|
3627
|
+
tcId: q.fromTcId,
|
|
3628
|
+
...(q.environmentType ? { environmentType: q.environmentType } : {}),
|
|
3629
|
+
includeProtected: true,
|
|
3630
|
+
});
|
|
3631
|
+
const target = await this.getDefaultIteration({
|
|
3632
|
+
tcId: q.toTcId,
|
|
3633
|
+
...(q.environmentType ? { environmentType: q.environmentType } : {}),
|
|
3634
|
+
});
|
|
3635
|
+
const targetByLower = new Map();
|
|
3636
|
+
for (const p of target.parameters) {
|
|
3637
|
+
targetByLower.set(p.name.trim().toLowerCase(), { paramId: p.paramId, name: p.name });
|
|
3638
|
+
}
|
|
3639
|
+
const row = {}; // keyed by the TARGET parameter's exact name
|
|
3640
|
+
const skipped = [];
|
|
3641
|
+
let copied = 0;
|
|
3642
|
+
for (const p of source.parameters) {
|
|
3643
|
+
const hit = targetByLower.get(p.name.trim().toLowerCase());
|
|
3644
|
+
if (!hit) {
|
|
3645
|
+
skipped.push(p.name);
|
|
3646
|
+
continue;
|
|
3647
|
+
}
|
|
3648
|
+
if (p.seed === '')
|
|
3649
|
+
continue; // nothing seeded on the source — keep the generated value
|
|
3650
|
+
row[hit.name] = p.seed;
|
|
3651
|
+
copied++;
|
|
3652
|
+
}
|
|
3653
|
+
if (copied > 0) {
|
|
3654
|
+
await this.saveGeneratedIterations({
|
|
3655
|
+
tcId: q.toTcId,
|
|
3656
|
+
versionId: target.versionId,
|
|
3657
|
+
environmentType: target.environmentType,
|
|
3658
|
+
rows: [row],
|
|
3659
|
+
parameters: target.parameters,
|
|
3660
|
+
});
|
|
3661
|
+
}
|
|
3662
|
+
return {
|
|
3663
|
+
fromTcId: q.fromTcId,
|
|
3664
|
+
toTcId: q.toTcId,
|
|
3665
|
+
environmentType: target.environmentType,
|
|
3666
|
+
copied,
|
|
3667
|
+
skipped,
|
|
3668
|
+
};
|
|
3669
|
+
}
|
|
3516
3670
|
/** Environment key: caller wins; else fetch the project's configured envs and pick the first;
|
|
3517
3671
|
* else 'general' (matches the SQA UI fallback). */
|
|
3518
3672
|
async resolveEnvironment(projectId, requested) {
|
|
@@ -3655,7 +3809,9 @@ export class SimplifyQaAdapter {
|
|
|
3655
3809
|
}
|
|
3656
3810
|
}
|
|
3657
3811
|
// TC path — per-step results via /exec/report + /reports/execution/getstepResult.
|
|
3658
|
-
|
|
3812
|
+
// A re-execution soft-deletes the run row it replaces; only live rows are this run's results.
|
|
3813
|
+
const rawRuns = await this.http.getJson(`/exec/report/${runId}/${projectId}`);
|
|
3814
|
+
const runs = Array.isArray(rawRuns) ? notDeleted(rawRuns) : rawRuns;
|
|
3659
3815
|
if (!Array.isArray(runs) || runs.length === 0) {
|
|
3660
3816
|
return { runId, state: 'queued' };
|
|
3661
3817
|
}
|
|
@@ -3694,7 +3850,7 @@ export class SimplifyQaAdapter {
|
|
|
3694
3850
|
const stepsResp = await this.http.postJson('/reports/execution/getstepResult', {
|
|
3695
3851
|
executionId, executionRunId, parentId, projectId,
|
|
3696
3852
|
});
|
|
3697
|
-
const rawSteps = Array.isArray(stepsResp?.data) ? stepsResp.data : [];
|
|
3853
|
+
const rawSteps = Array.isArray(stepsResp?.data) ? notDeleted(stepsResp.data) : [];
|
|
3698
3854
|
// Backend logs control-flow markers as INFO rows with `description: null` (see
|
|
3699
3855
|
// executionStepResult.service.js insertLoopIterationStart/insertFunctionEnd/… — the same
|
|
3700
3856
|
// executionRunId carries LOOP_ITERATION_START/END, FUNCTION_START/END, FUNCTION_ITERATION_*,
|
|
@@ -3782,6 +3938,33 @@ export class SimplifyQaAdapter {
|
|
|
3782
3938
|
reportUrl: `${base}/user/reports/reports-page?type=TESTCASE&parentId=${parentId}&id=${runIdNum}&projectId=${projectId}`,
|
|
3783
3939
|
};
|
|
3784
3940
|
}
|
|
3941
|
+
/** Whole-execution failure analysis (executionFailures.ts) for TC-123 / SU-123 / PL-123 or one
|
|
3942
|
+
* named execution. */
|
|
3943
|
+
async getExecutionFailures(input) {
|
|
3944
|
+
return new ExecutionFailureAnalysis({
|
|
3945
|
+
http: this.http,
|
|
3946
|
+
projectId: this.requireProjectId(),
|
|
3947
|
+
baseUrl: this.baseUrl(),
|
|
3948
|
+
fetchExecDoc: (id, projectId) => this.fetchExecDoc(id, projectId),
|
|
3949
|
+
latestExecutionOf: (kind, id) => this.getLatestRunFor(kind, id),
|
|
3950
|
+
}).analyse(input);
|
|
3951
|
+
}
|
|
3952
|
+
/** A failure screenshot as base64 (see executionFailures.fetchFailureImage). */
|
|
3953
|
+
async fetchFailureImage(absoluteUrl, maxBytes) {
|
|
3954
|
+
return fetchFailureImage(this.http, this.baseUrl(), absoluteUrl, maxBytes);
|
|
3955
|
+
}
|
|
3956
|
+
/** The failure-analysis card + evidence text and the top causes' screenshots (failureReport.ts). */
|
|
3957
|
+
async getFailureReport(input) {
|
|
3958
|
+
const { includeImages, ...analysisInput } = input;
|
|
3959
|
+
const ctx = await this.getExecutionFailures(analysisInput);
|
|
3960
|
+
const images = includeImages === false || input.includeScreenshots === false
|
|
3961
|
+
? []
|
|
3962
|
+
: await failureImages(ctx, (url, maxBytes) => this.fetchFailureImage(url, maxBytes));
|
|
3963
|
+
return { text: renderExecution(ctx), images };
|
|
3964
|
+
}
|
|
3965
|
+
baseUrl() {
|
|
3966
|
+
return (this.cfg.baseUrl ?? '').replace(/\/+$/, '');
|
|
3967
|
+
}
|
|
3785
3968
|
/** Most recent execution runId for a SUITE or TC — same `/exec/execution/search` the /reports UI's
|
|
3786
3969
|
* current-executions view drives, filtered by `type` + the entity's numeric id, sorted id desc,
|
|
3787
3970
|
* limit 1. `childExecution:false` + the `parentExecutionCopy nor` clause together drop suite-child
|
|
@@ -3799,7 +3982,7 @@ export class SimplifyQaAdapter {
|
|
|
3799
3982
|
{ column: 'projectId', value: projectId, regEx: false },
|
|
3800
3983
|
{ column: 'childExecution', value: false },
|
|
3801
3984
|
{ column: 'parentExecutionCopy', value: true, operator: 'nor' },
|
|
3802
|
-
{ column: 'type', value: type, regEx: false },
|
|
3985
|
+
{ column: 'type', value: type === 'TC' ? 'TESTCASE' : type, regEx: false },
|
|
3803
3986
|
{ column: 'executionTypeId', value: num, regEx: false },
|
|
3804
3987
|
],
|
|
3805
3988
|
startIndex: 0,
|
|
@@ -3829,7 +4012,7 @@ export class SimplifyQaAdapter {
|
|
|
3829
4012
|
{ column: 'projectId', value: projectId, regEx: false },
|
|
3830
4013
|
{ column: 'childExecution', value: false },
|
|
3831
4014
|
{ column: 'parentExecutionCopy', value: true, operator: 'nor' },
|
|
3832
|
-
{ column: 'type', value: type, regEx: false },
|
|
4015
|
+
{ column: 'type', value: type === 'TC' ? 'TESTCASE' : type, regEx: false },
|
|
3833
4016
|
{ column: 'executionTypeId', value: num, regEx: false },
|
|
3834
4017
|
],
|
|
3835
4018
|
startIndex: 0,
|