@ia-qa/self-healing 1.7.25 → 1.8.1
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/README.md +82 -22
- package/dist/captureMerge.d.ts +1 -1
- package/dist/captureMerge.js +2 -0
- package/dist/captureMerge.js.map +1 -1
- package/dist/cli/depth.d.ts +18 -0
- package/dist/cli/depth.js +46 -0
- package/dist/cli/depth.js.map +1 -0
- package/dist/cli/diff.d.ts +7 -0
- package/dist/cli/diff.js +7 -0
- package/dist/cli/diff.js.map +1 -1
- package/dist/cli/run.js +26 -1
- package/dist/cli/run.js.map +1 -1
- package/dist/exercised.d.ts +69 -0
- package/dist/exercised.js +139 -0
- package/dist/exercised.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/testDepth.d.ts +88 -0
- package/dist/testDepth.js +174 -0
- package/dist/testDepth.js.map +1 -0
- package/package.json +1 -1
package/dist/cli/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which pages the suite actually walked — the one observation nothing kept.
|
|
3
|
+
*
|
|
4
|
+
* `run` with capture on re-captures only the pages the suite exercised; the rest keep the
|
|
5
|
+
* baseline's `capturedAt` and are excluded from the verdict as `stale`. That distinction
|
|
6
|
+
* is computed on every run, printed as the live-coverage line, and then thrown away.
|
|
7
|
+
*
|
|
8
|
+
* It is the only evidence on disk that answers *"what does this suite test?"*. Everything
|
|
9
|
+
* else in `.ia-qa/` answers a weaker question: a contract in `mapping/` exists because
|
|
10
|
+
* somebody wrote a page into `config.pages` and ran `map`, which proves an intention, and
|
|
11
|
+
* `usage.json` proves a suite *mentions* a string. Neither is a test having visited a page,
|
|
12
|
+
* and reading either as coverage is how a confident, false number ships.
|
|
13
|
+
*
|
|
14
|
+
* So this record is written **only** by the capture-during-run path. The `map` fallback in
|
|
15
|
+
* `run` visits pages because they were configured, not because a test drove there; stamping
|
|
16
|
+
* its result here would be exactly the declaration-read-as-observation this file exists to
|
|
17
|
+
* prevent.
|
|
18
|
+
*
|
|
19
|
+
* It is underscore-prefixed on purpose: every consumer that enumerates contracts (including
|
|
20
|
+
* `healingLink.ts` in `@ia-qa/qa-discovery`) already filters `_`-prefixed files out, so the
|
|
21
|
+
* record is invisible to page listings without a line of change anywhere.
|
|
22
|
+
*/
|
|
23
|
+
export declare const EXERCISED_FILENAME = "_exercised.json";
|
|
24
|
+
export declare const EXERCISED_SCHEMA = "ia-qa-exercised@1";
|
|
25
|
+
export interface ExercisedRecord {
|
|
26
|
+
schema: typeof EXERCISED_SCHEMA;
|
|
27
|
+
recordedAt: string;
|
|
28
|
+
/** Pages the suite loaded during this run. Observed, never declared. */
|
|
29
|
+
visited: string[];
|
|
30
|
+
/**
|
|
31
|
+
* Pages a contract is held for that this run never reached. Not a verdict — the suite may
|
|
32
|
+
* cover them through a project or tag that did not run here.
|
|
33
|
+
*/
|
|
34
|
+
notVisited: string[];
|
|
35
|
+
/**
|
|
36
|
+
* The suite's exit code. A red suite still tells you which pages it reached, but the
|
|
37
|
+
* number travels with the record: a run that died on its third spec visited three pages
|
|
38
|
+
* and covers nothing.
|
|
39
|
+
*/
|
|
40
|
+
suiteExitCode: number | null;
|
|
41
|
+
testCommand?: string;
|
|
42
|
+
commit?: string;
|
|
43
|
+
branch?: string;
|
|
44
|
+
}
|
|
45
|
+
export declare function exercisedPath(dir?: string): string;
|
|
46
|
+
/** Contract files in a mapping directory. `_`-prefixed entries are indexes, not pages. */
|
|
47
|
+
export declare function contractPageNames(dir?: string): string[];
|
|
48
|
+
export interface RecordExercisedInput {
|
|
49
|
+
/** Page names the capture merge produced — the suite's own account of where it went. */
|
|
50
|
+
visited: string[];
|
|
51
|
+
suiteExitCode: number | null;
|
|
52
|
+
testCommand?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Write the record. Returns the path, or `null` when it could not be written.
|
|
56
|
+
*
|
|
57
|
+
* Never throws: this is metadata stamped beside a verdict that has already been decided,
|
|
58
|
+
* and a full disk must not turn a PASS into a crash — the same rule `history.ts` follows
|
|
59
|
+
* for the same reason.
|
|
60
|
+
*/
|
|
61
|
+
export declare function saveExercised(input: RecordExercisedInput, dir?: string): string | null;
|
|
62
|
+
/**
|
|
63
|
+
* Read the record, or `null` when there is none.
|
|
64
|
+
*
|
|
65
|
+
* A missing record means **no measurement**, never zero coverage, and every reader owes
|
|
66
|
+
* that distinction to its user: "your suite visits no page" and "nobody has watched your
|
|
67
|
+
* suite run" are different sentences with different remedies.
|
|
68
|
+
*/
|
|
69
|
+
export declare function loadExercised(dir?: string): ExercisedRecord | null;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.EXERCISED_SCHEMA = exports.EXERCISED_FILENAME = void 0;
|
|
37
|
+
exports.exercisedPath = exercisedPath;
|
|
38
|
+
exports.contractPageNames = contractPageNames;
|
|
39
|
+
exports.saveExercised = saveExercised;
|
|
40
|
+
exports.loadExercised = loadExercised;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const config_1 = require("./config");
|
|
44
|
+
const history_1 = require("./history");
|
|
45
|
+
/**
|
|
46
|
+
* Which pages the suite actually walked — the one observation nothing kept.
|
|
47
|
+
*
|
|
48
|
+
* `run` with capture on re-captures only the pages the suite exercised; the rest keep the
|
|
49
|
+
* baseline's `capturedAt` and are excluded from the verdict as `stale`. That distinction
|
|
50
|
+
* is computed on every run, printed as the live-coverage line, and then thrown away.
|
|
51
|
+
*
|
|
52
|
+
* It is the only evidence on disk that answers *"what does this suite test?"*. Everything
|
|
53
|
+
* else in `.ia-qa/` answers a weaker question: a contract in `mapping/` exists because
|
|
54
|
+
* somebody wrote a page into `config.pages` and ran `map`, which proves an intention, and
|
|
55
|
+
* `usage.json` proves a suite *mentions* a string. Neither is a test having visited a page,
|
|
56
|
+
* and reading either as coverage is how a confident, false number ships.
|
|
57
|
+
*
|
|
58
|
+
* So this record is written **only** by the capture-during-run path. The `map` fallback in
|
|
59
|
+
* `run` visits pages because they were configured, not because a test drove there; stamping
|
|
60
|
+
* its result here would be exactly the declaration-read-as-observation this file exists to
|
|
61
|
+
* prevent.
|
|
62
|
+
*
|
|
63
|
+
* It is underscore-prefixed on purpose: every consumer that enumerates contracts (including
|
|
64
|
+
* `healingLink.ts` in `@ia-qa/qa-discovery`) already filters `_`-prefixed files out, so the
|
|
65
|
+
* record is invisible to page listings without a line of change anywhere.
|
|
66
|
+
*/
|
|
67
|
+
exports.EXERCISED_FILENAME = '_exercised.json';
|
|
68
|
+
exports.EXERCISED_SCHEMA = 'ia-qa-exercised@1';
|
|
69
|
+
function exercisedPath(dir = (0, config_1.mappingDir)()) {
|
|
70
|
+
return path.join(dir, exports.EXERCISED_FILENAME);
|
|
71
|
+
}
|
|
72
|
+
/** Contract files in a mapping directory. `_`-prefixed entries are indexes, not pages. */
|
|
73
|
+
function contractPageNames(dir = (0, config_1.mappingDir)()) {
|
|
74
|
+
if (!fs.existsSync(dir))
|
|
75
|
+
return [];
|
|
76
|
+
try {
|
|
77
|
+
return fs
|
|
78
|
+
.readdirSync(dir)
|
|
79
|
+
.filter((e) => e.endsWith('.json') && !e.startsWith('_'))
|
|
80
|
+
.map((e) => e.slice(0, -'.json'.length))
|
|
81
|
+
.sort();
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Write the record. Returns the path, or `null` when it could not be written.
|
|
89
|
+
*
|
|
90
|
+
* Never throws: this is metadata stamped beside a verdict that has already been decided,
|
|
91
|
+
* and a full disk must not turn a PASS into a crash — the same rule `history.ts` follows
|
|
92
|
+
* for the same reason.
|
|
93
|
+
*/
|
|
94
|
+
function saveExercised(input, dir = (0, config_1.mappingDir)()) {
|
|
95
|
+
try {
|
|
96
|
+
const visited = Array.from(new Set(input.visited)).sort();
|
|
97
|
+
const seen = new Set(visited);
|
|
98
|
+
const record = {
|
|
99
|
+
schema: exports.EXERCISED_SCHEMA,
|
|
100
|
+
recordedAt: new Date().toISOString(),
|
|
101
|
+
visited,
|
|
102
|
+
notVisited: contractPageNames(dir).filter((p) => !seen.has(p)),
|
|
103
|
+
suiteExitCode: input.suiteExitCode,
|
|
104
|
+
...(input.testCommand ? { testCommand: input.testCommand } : {}),
|
|
105
|
+
...(0, history_1.gitStamp)(),
|
|
106
|
+
};
|
|
107
|
+
const file = exercisedPath(dir);
|
|
108
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
109
|
+
fs.writeFileSync(file, JSON.stringify(record, null, 2) + '\n', 'utf8');
|
|
110
|
+
return file;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Read the record, or `null` when there is none.
|
|
118
|
+
*
|
|
119
|
+
* A missing record means **no measurement**, never zero coverage, and every reader owes
|
|
120
|
+
* that distinction to its user: "your suite visits no page" and "nobody has watched your
|
|
121
|
+
* suite run" are different sentences with different remedies.
|
|
122
|
+
*/
|
|
123
|
+
function loadExercised(dir = (0, config_1.mappingDir)()) {
|
|
124
|
+
const file = exercisedPath(dir);
|
|
125
|
+
if (!fs.existsSync(file))
|
|
126
|
+
return null;
|
|
127
|
+
try {
|
|
128
|
+
const raw = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
129
|
+
if (!raw || !Array.isArray(raw.visited))
|
|
130
|
+
return null;
|
|
131
|
+
if (!Array.isArray(raw.notVisited))
|
|
132
|
+
raw.notVisited = [];
|
|
133
|
+
return raw;
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=exercised.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exercised.js","sourceRoot":"","sources":["../src/exercised.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,11 @@ export type { CrawlOptions } from './crawl';
|
|
|
18
18
|
export type { PageNameResolution } from './pageName';
|
|
19
19
|
export { scanText, ingestPaths, saveUsage, loadUsage, usageFiles, usagePath } from './ingest';
|
|
20
20
|
export type { Usage, SelectorSite, SelectorShape } from './ingest';
|
|
21
|
+
export { loadExercised, exercisedPath, contractPageNames, EXERCISED_FILENAME } from './exercised';
|
|
22
|
+
export type { ExercisedRecord } from './exercised';
|
|
23
|
+
export { computeTestDepth, computePageDepth, collectUnattributable, readTestDepth } from './testDepth';
|
|
24
|
+
export { globToRegex } from './volatile';
|
|
25
|
+
export type { TestDepthReport, PageDepth, UnattributableSite } from './testDepth';
|
|
21
26
|
export { mergeCaptures, unionElements, captureDir, CAPTURE_DIRNAME } from './captureMerge';
|
|
22
27
|
export type { CaptureShard, CaptureShardPage, MergeResult } from './captureMerge';
|
|
23
28
|
export { launchBrowser } from './launcher';
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.NAVIGATION_SVG_FILENAME = exports.NAVIGATION_FILENAME = exports.OVERVIEW_FILENAME = exports.navigationSvgPath = exports.navigationPath = exports.overviewPath = exports.writeOverview = exports.navigationGraph = exports.layoutGraph = exports.renderNavigationSvg = exports.renderNavigation = exports.renderOverview = exports.buildOverview = exports.minPagesForLayout = exports.stripLayoutFromPages = exports.extractLayout = exports.LAYOUT_DIRNAME = void 0;
|
|
3
|
+
exports.CAPTURE_DIRNAME = exports.captureDir = exports.unionElements = exports.mergeCaptures = exports.globToRegex = exports.readTestDepth = exports.collectUnattributable = exports.computePageDepth = exports.computeTestDepth = exports.EXERCISED_FILENAME = exports.contractPageNames = exports.exercisedPath = exports.loadExercised = exports.usagePath = exports.usageFiles = exports.loadUsage = exports.saveUsage = exports.ingestPaths = exports.scanText = exports.crawlApp = exports.sitemapsFromRobots = exports.isSitemapIndex = exports.extractLocs = exports.discoverFromSitemap = exports.UNSAFE_URL_RE = exports.mergePages = exports.toCandidate = exports.normalizedPath = exports.isSafeCandidateUrl = exports.resolvePageName = exports.pageNameFromUrl = exports.mapUrl = exports.markdownPath = exports.saveMarkdown = exports.renderPageContract = exports.saveMapping = exports.loadMapping = exports.extractInteractiveElements = exports.renderModelList = exports.defaultKeyEnv = exports.findProvider = exports.AI_PROVIDERS = exports.parseModelJson = exports.buildPrompt = exports.prefilter = exports.aiResolve = exports.createAiResolver = exports.llmResolverStub = exports.aiFill = exports.aiClick = void 0;
|
|
4
|
+
exports.NAVIGATION_SVG_FILENAME = exports.NAVIGATION_FILENAME = exports.OVERVIEW_FILENAME = exports.navigationSvgPath = exports.navigationPath = exports.overviewPath = exports.writeOverview = exports.navigationGraph = exports.layoutGraph = exports.renderNavigationSvg = exports.renderNavigation = exports.renderOverview = exports.buildOverview = exports.minPagesForLayout = exports.stripLayoutFromPages = exports.extractLayout = exports.LAYOUT_DIRNAME = exports.layoutPath = exports.layoutDir = exports.resolveSecret = exports.loadConfig = exports.replaceQuoted = exports.collectFiles = exports.applyRewrites = exports.computeRewrites = exports.launchBrowser = void 0;
|
|
5
5
|
var healer_1 = require("./playwright/healer");
|
|
6
6
|
Object.defineProperty(exports, "aiClick", { enumerable: true, get: function () { return healer_1.aiClick; } });
|
|
7
7
|
Object.defineProperty(exports, "aiFill", { enumerable: true, get: function () { return healer_1.aiFill; } });
|
|
@@ -50,6 +50,23 @@ Object.defineProperty(exports, "saveUsage", { enumerable: true, get: function ()
|
|
|
50
50
|
Object.defineProperty(exports, "loadUsage", { enumerable: true, get: function () { return ingest_1.loadUsage; } });
|
|
51
51
|
Object.defineProperty(exports, "usageFiles", { enumerable: true, get: function () { return ingest_1.usageFiles; } });
|
|
52
52
|
Object.defineProperty(exports, "usagePath", { enumerable: true, get: function () { return ingest_1.usagePath; } });
|
|
53
|
+
// The two halves `@ia-qa/qa-discovery` needs to build a coverage map, exported so it
|
|
54
|
+
// computes them with THIS implementation rather than a second one: the map and the healing
|
|
55
|
+
// summary must never be able to disagree about the same files on the same disk.
|
|
56
|
+
var exercised_1 = require("./exercised");
|
|
57
|
+
Object.defineProperty(exports, "loadExercised", { enumerable: true, get: function () { return exercised_1.loadExercised; } });
|
|
58
|
+
Object.defineProperty(exports, "exercisedPath", { enumerable: true, get: function () { return exercised_1.exercisedPath; } });
|
|
59
|
+
Object.defineProperty(exports, "contractPageNames", { enumerable: true, get: function () { return exercised_1.contractPageNames; } });
|
|
60
|
+
Object.defineProperty(exports, "EXERCISED_FILENAME", { enumerable: true, get: function () { return exercised_1.EXERCISED_FILENAME; } });
|
|
61
|
+
var testDepth_1 = require("./testDepth");
|
|
62
|
+
Object.defineProperty(exports, "computeTestDepth", { enumerable: true, get: function () { return testDepth_1.computeTestDepth; } });
|
|
63
|
+
Object.defineProperty(exports, "computePageDepth", { enumerable: true, get: function () { return testDepth_1.computePageDepth; } });
|
|
64
|
+
Object.defineProperty(exports, "collectUnattributable", { enumerable: true, get: function () { return testDepth_1.collectUnattributable; } });
|
|
65
|
+
Object.defineProperty(exports, "readTestDepth", { enumerable: true, get: function () { return testDepth_1.readTestDepth; } });
|
|
66
|
+
// One glob dialect across the ecosystem. `volatile`, `nameMask` and discovery's scope
|
|
67
|
+
// declaration must accept the same patterns, or a user learns three.
|
|
68
|
+
var volatile_1 = require("./volatile");
|
|
69
|
+
Object.defineProperty(exports, "globToRegex", { enumerable: true, get: function () { return volatile_1.globToRegex; } });
|
|
53
70
|
var captureMerge_1 = require("./captureMerge");
|
|
54
71
|
Object.defineProperty(exports, "mergeCaptures", { enumerable: true, get: function () { return captureMerge_1.mergeCaptures; } });
|
|
55
72
|
Object.defineProperty(exports, "unionElements", { enumerable: true, get: function () { return captureMerge_1.unionElements; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,8CAAyF;AAAhF,iGAAA,OAAO,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAE3D,0CAAkF;AAAzE,qGAAA,SAAS,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,0GAAA,cAAc,OAAA;AAE1D,sCAAyF;AAAhF,sGAAA,YAAY,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,yGAAA,eAAe,OAAA;AAEnE,6BAA6E;AAApE,iHAAA,0BAA0B,OAAA;AAAE,kGAAA,WAAW,OAAA;AAAE,kGAAA,WAAW,OAAA;AAE7D,uCAA4E;AAAnE,8GAAA,kBAAkB,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,wGAAA,YAAY,OAAA;AACvD,mCAAmD;AAA1C,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AAChC,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AACxB,6CAM4B;AAL1B,4GAAA,kBAAkB,OAAA;AAClB,wGAAA,cAAc,OAAA;AACd,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA;AACV,uGAAA,aAAa,OAAA;AAGf,+CAK6B;AAJ3B,8GAAA,mBAAmB,OAAA;AACnB,sGAAA,WAAW,OAAA;AACX,yGAAA,cAAc,OAAA;AACd,6GAAA,kBAAkB,OAAA;AAGpB,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AAGjB,mCAA8F;AAArF,kGAAA,QAAQ,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,mGAAA,SAAS,OAAA;AAE3E,+CAA2F;AAAlF,6GAAA,aAAa,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,0GAAA,UAAU,OAAA;AAAE,+GAAA,eAAe,OAAA;AAElE,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AAGtB,yCAA0F;AAAjF,4GAAA,eAAe,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,0GAAA,aAAa,OAAA;AACpE,mCAA4F;AAAnF,oGAAA,UAAU,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,wGAAA,cAAc,OAAA;AAEzE,mCAAkF;AAAzE,uGAAA,aAAa,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAE/D,uCAcoB;AAblB,yGAAA,aAAa,OAAA;AACb,0GAAA,cAAc,OAAA;AACd,4GAAA,gBAAgB,OAAA;AAChB,+GAAA,mBAAmB,OAAA;AACnB,uGAAA,WAAW,OAAA;AACX,2GAAA,eAAe,OAAA;AACf,yGAAA,aAAa,OAAA;AACb,wGAAA,YAAY,OAAA;AACZ,0GAAA,cAAc,OAAA;AACd,6GAAA,iBAAiB,OAAA;AACjB,6GAAA,iBAAiB,OAAA;AACjB,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,8CAAyF;AAAhF,iGAAA,OAAO,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAE3D,0CAAkF;AAAzE,qGAAA,SAAS,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,0GAAA,cAAc,OAAA;AAE1D,sCAAyF;AAAhF,sGAAA,YAAY,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,yGAAA,eAAe,OAAA;AAEnE,6BAA6E;AAApE,iHAAA,0BAA0B,OAAA;AAAE,kGAAA,WAAW,OAAA;AAAE,kGAAA,WAAW,OAAA;AAE7D,uCAA4E;AAAnE,8GAAA,kBAAkB,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,wGAAA,YAAY,OAAA;AACvD,mCAAmD;AAA1C,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AAChC,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AACxB,6CAM4B;AAL1B,4GAAA,kBAAkB,OAAA;AAClB,wGAAA,cAAc,OAAA;AACd,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA;AACV,uGAAA,aAAa,OAAA;AAGf,+CAK6B;AAJ3B,8GAAA,mBAAmB,OAAA;AACnB,sGAAA,WAAW,OAAA;AACX,yGAAA,cAAc,OAAA;AACd,6GAAA,kBAAkB,OAAA;AAGpB,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AAGjB,mCAA8F;AAArF,kGAAA,QAAQ,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,mGAAA,SAAS,OAAA;AAE3E,qFAAqF;AACrF,2FAA2F;AAC3F,gFAAgF;AAChF,yCAAkG;AAAzF,0GAAA,aAAa,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAE5E,yCAAuG;AAA9F,6GAAA,gBAAgB,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAAE,0GAAA,aAAa,OAAA;AACjF,sFAAsF;AACtF,qEAAqE;AACrE,uCAAyC;AAAhC,uGAAA,WAAW,OAAA;AAEpB,+CAA2F;AAAlF,6GAAA,aAAa,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,0GAAA,UAAU,OAAA;AAAE,+GAAA,eAAe,OAAA;AAElE,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AAGtB,yCAA0F;AAAjF,4GAAA,eAAe,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,0GAAA,aAAa,OAAA;AACpE,mCAA4F;AAAnF,oGAAA,UAAU,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,wGAAA,cAAc,OAAA;AAEzE,mCAAkF;AAAzE,uGAAA,aAAa,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAE/D,uCAcoB;AAblB,yGAAA,aAAa,OAAA;AACb,0GAAA,cAAc,OAAA;AACd,4GAAA,gBAAgB,OAAA;AAChB,+GAAA,mBAAmB,OAAA;AACnB,uGAAA,WAAW,OAAA;AACX,2GAAA,eAAe,OAAA;AACf,yGAAA,aAAa,OAAA;AACb,wGAAA,YAAY,OAAA;AACZ,0GAAA,cAAc,OAAA;AACd,6GAAA,iBAAiB,OAAA;AACjB,6GAAA,iBAAiB,OAAA;AACjB,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { PageMapping } from './aom';
|
|
2
|
+
import type { Usage } from './ingest';
|
|
3
|
+
import type { PageResolution } from './resolution';
|
|
4
|
+
/**
|
|
5
|
+
* How much of a page's contract the suite actually names.
|
|
6
|
+
*
|
|
7
|
+
* Reach — *did a test ever load this page* — is `exercised.ts`. This is the other axis:
|
|
8
|
+
* inside a page, of the elements the contract holds, how many does the suite designate at
|
|
9
|
+
* all? A page can be visited by twenty specs that only click one button.
|
|
10
|
+
*
|
|
11
|
+
* Computed from files this package already writes, so it costs nothing and needs no run:
|
|
12
|
+
* `mapping/*.json` for the denominator, `usage.json` for what the sources name, and
|
|
13
|
+
* `mapping/_resolved/` to bridge the two when a suite is written in CSS — a Page Object
|
|
14
|
+
* holding `.btn-primary` and a contract holding `#pay-now` describe the same button, and
|
|
15
|
+
* only a browser could ever have said so. That is what a `bound` binding records.
|
|
16
|
+
*
|
|
17
|
+
* **Two limits ship with every number here, and neither is a footnote.**
|
|
18
|
+
*
|
|
19
|
+
* *Naming is not asserting.* A test that clicks a button names it without checking
|
|
20
|
+
* anything. Nothing on disk distinguishes the two, so this file never says "tested" — it
|
|
21
|
+
* says "named", and every renderer must keep that word.
|
|
22
|
+
*
|
|
23
|
+
* *The denominator moves with exploration.* A contract captured without `--deep` holds the
|
|
24
|
+
* loaded state only, so the same suite scores higher against it than against the real page.
|
|
25
|
+
* `exploredDepth` travels with the page for exactly this reason.
|
|
26
|
+
*/
|
|
27
|
+
export interface PageDepth {
|
|
28
|
+
page: string;
|
|
29
|
+
/** Interactive elements the contract holds. */
|
|
30
|
+
elements: number;
|
|
31
|
+
/** Of those, how many at least one test names. */
|
|
32
|
+
named: number;
|
|
33
|
+
/** Test files that name something on this page, sorted. */
|
|
34
|
+
files: string[];
|
|
35
|
+
/** Clicks deep the contract was explored. Absent means the loaded state only. */
|
|
36
|
+
exploredDepth?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A name-anchored locator that cannot be credited to any page.
|
|
40
|
+
*
|
|
41
|
+
* `getByText`, `cy.contains`, `getByTitle`, `getByAltText` name a **string, not an
|
|
42
|
+
* element** — the contract holds interactive elements only, so a match proves nothing about
|
|
43
|
+
* which element the test meant. It is the same reasoning that forbids `fix` from rewriting
|
|
44
|
+
* them and `audit` from judging them, and the three must stay consistent.
|
|
45
|
+
*
|
|
46
|
+
* It is a reported number rather than a silent exclusion because a suite written entirely
|
|
47
|
+
* this way would otherwise score near-zero depth and read as untested. The count says *why*
|
|
48
|
+
* the depth is unmeasurable, which is a different problem with a different fix.
|
|
49
|
+
*/
|
|
50
|
+
export interface UnattributableSite {
|
|
51
|
+
text: string;
|
|
52
|
+
file: string;
|
|
53
|
+
line: number;
|
|
54
|
+
shape: string;
|
|
55
|
+
}
|
|
56
|
+
export interface TestDepthReport {
|
|
57
|
+
/**
|
|
58
|
+
* False when there is no inventory to measure against. Every reader must render this as
|
|
59
|
+
* *not measured* and never as zero — `ingest` may simply never have run.
|
|
60
|
+
*/
|
|
61
|
+
measurable: boolean;
|
|
62
|
+
pages: PageDepth[];
|
|
63
|
+
totals: {
|
|
64
|
+
elements: number;
|
|
65
|
+
named: number;
|
|
66
|
+
pages: number;
|
|
67
|
+
};
|
|
68
|
+
unattributable: UnattributableSite[];
|
|
69
|
+
/** Pages whose contract records no exploration — their denominator is the loaded state. */
|
|
70
|
+
shallowPages: number;
|
|
71
|
+
}
|
|
72
|
+
export declare function computePageDepth(mapping: PageMapping, usage: Usage | null, resolution: PageResolution | null): PageDepth;
|
|
73
|
+
/**
|
|
74
|
+
* Which literals in the inventory cannot be attributed to any element, deduplicated by
|
|
75
|
+
* source position — one line of a test file is one finding, however many pages it fails to
|
|
76
|
+
* match.
|
|
77
|
+
*/
|
|
78
|
+
export declare function collectUnattributable(usage: Usage | null): UnattributableSite[];
|
|
79
|
+
export declare function computeTestDepth(mappings: PageMapping[], usage: Usage | null, resolutions: Map<string, PageResolution>): TestDepthReport;
|
|
80
|
+
/**
|
|
81
|
+
* The same computation, reading `.ia-qa/` from disk.
|
|
82
|
+
*
|
|
83
|
+
* Kept apart from `computeTestDepth` so the rules above stay testable without a filesystem,
|
|
84
|
+
* and exported so `@ia-qa/qa-discovery` computes depth with **this** implementation rather
|
|
85
|
+
* than a second one — the coverage map and the healing summary must never be able to
|
|
86
|
+
* disagree about the same two files.
|
|
87
|
+
*/
|
|
88
|
+
export declare function readTestDepth(dir?: string, resolved?: string): TestDepthReport;
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.computePageDepth = computePageDepth;
|
|
37
|
+
exports.collectUnattributable = collectUnattributable;
|
|
38
|
+
exports.computeTestDepth = computeTestDepth;
|
|
39
|
+
exports.readTestDepth = readTestDepth;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const config_1 = require("./config");
|
|
43
|
+
const ingest_1 = require("./ingest");
|
|
44
|
+
const resolution_1 = require("./resolution");
|
|
45
|
+
const nameLocators_1 = require("./nameLocators");
|
|
46
|
+
const exercised_1 = require("./exercised");
|
|
47
|
+
/** Does this name-anchored site designate an element of this role? */
|
|
48
|
+
function siteMatchesRole(site, role) {
|
|
49
|
+
const roles = (0, nameLocators_1.candidateRoles)(site);
|
|
50
|
+
return roles !== null && roles.includes(role);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The contract selectors a test literal provably reaches, from one page's resolution.
|
|
54
|
+
*
|
|
55
|
+
* `bound` only. An `anchored` binding names an identity selector for an element the contract
|
|
56
|
+
* does **not** hold — it is a repair target, not evidence that a contracted element is
|
|
57
|
+
* covered — and `ambiguous` is a coin flip the suite created. Counting either as coverage
|
|
58
|
+
* would inflate the one number this file exists to state honestly.
|
|
59
|
+
*/
|
|
60
|
+
function boundSelectors(resolution) {
|
|
61
|
+
const out = new Set();
|
|
62
|
+
if (!resolution)
|
|
63
|
+
return out;
|
|
64
|
+
for (const binding of Object.values(resolution.bindings)) {
|
|
65
|
+
if (binding.status === 'bound' && binding.selector)
|
|
66
|
+
out.add(binding.selector);
|
|
67
|
+
}
|
|
68
|
+
return out;
|
|
69
|
+
}
|
|
70
|
+
function computePageDepth(mapping, usage, resolution) {
|
|
71
|
+
const bound = boundSelectors(resolution);
|
|
72
|
+
const files = new Set();
|
|
73
|
+
let named = 0;
|
|
74
|
+
for (const el of mapping.elements ?? []) {
|
|
75
|
+
let hit = false;
|
|
76
|
+
// A test writing the contract's own selector, and a test writing a different string
|
|
77
|
+
// that a browser proved reaches this element. The second is the common case in a
|
|
78
|
+
// legacy Page Object suite, and the whole reason `_resolved/` exists.
|
|
79
|
+
const literalSites = usage?.selectors?.[el.selector];
|
|
80
|
+
if (literalSites?.length) {
|
|
81
|
+
hit = true;
|
|
82
|
+
for (const s of literalSites)
|
|
83
|
+
files.add(s.file);
|
|
84
|
+
}
|
|
85
|
+
if (bound.has(el.selector))
|
|
86
|
+
hit = true;
|
|
87
|
+
// Name-anchored locators, credited only when the call's role can be this element's.
|
|
88
|
+
// `getByRole('button', {name:'Save'})` does not cover a link also called Save.
|
|
89
|
+
const nameSites = usage?.names?.[(0, nameLocators_1.normalizeName)(el.name)];
|
|
90
|
+
if (nameSites?.length) {
|
|
91
|
+
for (const site of nameSites) {
|
|
92
|
+
if (!(0, nameLocators_1.judgeable)(site) || !siteMatchesRole(site, el.role))
|
|
93
|
+
continue;
|
|
94
|
+
hit = true;
|
|
95
|
+
files.add(site.file);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (hit)
|
|
99
|
+
named += 1;
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
page: mapping.page,
|
|
103
|
+
elements: (mapping.elements ?? []).length,
|
|
104
|
+
named,
|
|
105
|
+
files: Array.from(files).sort(),
|
|
106
|
+
...(mapping.exploredDepth != null ? { exploredDepth: mapping.exploredDepth } : {}),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Which literals in the inventory cannot be attributed to any element, deduplicated by
|
|
111
|
+
* source position — one line of a test file is one finding, however many pages it fails to
|
|
112
|
+
* match.
|
|
113
|
+
*/
|
|
114
|
+
function collectUnattributable(usage) {
|
|
115
|
+
if (!usage?.names)
|
|
116
|
+
return [];
|
|
117
|
+
const seen = new Set();
|
|
118
|
+
const out = [];
|
|
119
|
+
for (const sites of Object.values(usage.names)) {
|
|
120
|
+
for (const site of sites) {
|
|
121
|
+
if ((0, nameLocators_1.judgeable)(site))
|
|
122
|
+
continue;
|
|
123
|
+
const key = `${site.file}:${site.line}`;
|
|
124
|
+
if (seen.has(key))
|
|
125
|
+
continue;
|
|
126
|
+
seen.add(key);
|
|
127
|
+
out.push({ text: site.text, file: site.file, line: site.line, shape: site.shape });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return out.sort((a, b) => (a.file === b.file ? a.line - b.line : a.file.localeCompare(b.file)));
|
|
131
|
+
}
|
|
132
|
+
function computeTestDepth(mappings, usage, resolutions) {
|
|
133
|
+
const measurable = !!usage && (Object.keys(usage.selectors ?? {}).length > 0 || Object.keys(usage.names ?? {}).length > 0);
|
|
134
|
+
const pages = mappings
|
|
135
|
+
.map((m) => computePageDepth(m, usage, resolutions.get(m.page) ?? null))
|
|
136
|
+
.sort((a, b) => a.page.localeCompare(b.page));
|
|
137
|
+
return {
|
|
138
|
+
measurable,
|
|
139
|
+
pages,
|
|
140
|
+
totals: {
|
|
141
|
+
pages: pages.length,
|
|
142
|
+
elements: pages.reduce((s, p) => s + p.elements, 0),
|
|
143
|
+
named: pages.reduce((s, p) => s + p.named, 0),
|
|
144
|
+
},
|
|
145
|
+
unattributable: collectUnattributable(usage),
|
|
146
|
+
shallowPages: pages.filter((p) => p.exploredDepth == null).length,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* The same computation, reading `.ia-qa/` from disk.
|
|
151
|
+
*
|
|
152
|
+
* Kept apart from `computeTestDepth` so the rules above stay testable without a filesystem,
|
|
153
|
+
* and exported so `@ia-qa/qa-discovery` computes depth with **this** implementation rather
|
|
154
|
+
* than a second one — the coverage map and the healing summary must never be able to
|
|
155
|
+
* disagree about the same two files.
|
|
156
|
+
*/
|
|
157
|
+
function readTestDepth(dir = (0, config_1.mappingDir)(), resolved = (0, config_1.resolvedDir)()) {
|
|
158
|
+
const mappings = [];
|
|
159
|
+
for (const page of (0, exercised_1.contractPageNames)(dir)) {
|
|
160
|
+
try {
|
|
161
|
+
mappings.push(JSON.parse(fs.readFileSync(path.join(dir, `${page}.json`), 'utf8')));
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
// An unreadable contract is one page missing from the denominator, never a crash:
|
|
165
|
+
// the same restraint `map` applies per page. It is reported by nothing here because
|
|
166
|
+
// every other verb that reads the same directory already reports it.
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
const resolutions = new Map();
|
|
170
|
+
for (const r of (0, resolution_1.loadAllResolutions)(resolved))
|
|
171
|
+
resolutions.set(r.page, r);
|
|
172
|
+
return computeTestDepth(mappings, (0, ingest_1.loadUsage)(), resolutions);
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=testDepth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testDepth.js","sourceRoot":"","sources":["../src/testDepth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuGA,4CA2CC;AAOD,sDAcC;AAED,4CAuBC;AAUD,sCAcC;AAxND,uCAAyB;AACzB,2CAA6B;AAE7B,qCAAmD;AACnD,qCAAqC;AAErC,6CAAkD;AAElD,iDAA0E;AAE1E,2CAAgD;AAsEhD,sEAAsE;AACtE,SAAS,eAAe,CAAC,IAAc,EAAE,IAAY;IACnD,MAAM,KAAK,GAAG,IAAA,6BAAc,EAAC,IAAI,CAAC,CAAC;IACnC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,UAAiC;IACvD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,IAAI,CAAC,UAAU;QAAE,OAAO,GAAG,CAAC;IAC5B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ;YAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,gBAAgB,CAC9B,OAAoB,EACpB,KAAmB,EACnB,UAAiC;IAEjC,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,oFAAoF;QACpF,iFAAiF;QACjF,sEAAsE;QACtE,MAAM,YAAY,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,YAAY,EAAE,MAAM,EAAE,CAAC;YACzB,GAAG,GAAG,IAAI,CAAC;YACX,KAAK,MAAM,CAAC,IAAI,YAAY;gBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC;YAAE,GAAG,GAAG,IAAI,CAAC;QAEvC,oFAAoF;QACpF,+EAA+E;QAC/E,MAAM,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,IAAA,4BAAa,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;YACtB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAA,wBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAClE,GAAG,GAAG,IAAI,CAAC;gBACX,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,GAAG;YAAE,KAAK,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM;QACzC,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;QAC/B,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,KAAmB;IACvD,IAAI,CAAC,KAAK,EAAE,KAAK;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAA,wBAAS,EAAC,IAAI,CAAC;gBAAE,SAAS;YAC9B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,SAAgB,gBAAgB,CAC9B,QAAuB,EACvB,KAAmB,EACnB,WAAwC;IAExC,MAAM,UAAU,GACd,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1G,MAAM,KAAK,GAAG,QAAQ;SACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;SACvE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhD,OAAO;QACL,UAAU;QACV,KAAK;QACL,MAAM,EAAE;YACN,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnD,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QACD,cAAc,EAAE,qBAAqB,CAAC,KAAK,CAAC;QAC5C,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,MAAM;KAClE,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,MAAc,IAAA,mBAAU,GAAE,EAAE,WAAmB,IAAA,oBAAW,GAAE;IACxF,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,IAAA,6BAAiB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,EAAE,MAAM,CAAC,CAAgB,CAAC,CAAC;QACpG,CAAC;QAAC,MAAM,CAAC;YACP,kFAAkF;YAClF,oFAAoF;YACpF,qEAAqE;QACvE,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,IAAA,+BAAkB,EAAC,QAAQ,CAAC;QAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,IAAA,kBAAS,GAAE,EAAE,WAAW,CAAC,CAAC;AAC9D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ia-qa/self-healing",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.1",
|
|
4
4
|
"description": "Your Playwright, Cypress or Selenium tests break when a selector moves — this finds the element again and rewrites the test. Deterministic: no LLM decides whether your build passes. Runs entirely on your machine, with a local MCP server for agents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"self-healing",
|