@sudobility/testomniac_runner_service 0.1.96 → 0.1.97
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/analyzer/page-analyzer/generators/navigation.d.ts +10 -1
- package/dist/analyzer/page-analyzer/generators/navigation.d.ts.map +1 -1
- package/dist/analyzer/page-analyzer/generators/navigation.js +67 -5
- package/dist/analyzer/page-analyzer/generators/navigation.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
import type { AnalyzerContext } from "../types";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Create direct navigation interactions for same-origin links discovered on
|
|
4
|
+
* the current page. These are placed in the "Direct Navigations" surface
|
|
5
|
+
* which runs as execution group 0 (before hover/content interactions), so
|
|
6
|
+
* discovered pages get short dependency chains.
|
|
7
|
+
*
|
|
8
|
+
* Navigation interactions never have a dependencyTestInteractionId — they
|
|
9
|
+
* navigate directly via goto.
|
|
10
|
+
*/
|
|
11
|
+
export declare function generateNavigationTestInteractions(analyzer: any, context: AnalyzerContext): Promise<void>;
|
|
3
12
|
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,kCAAkC,CACtD,
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD;;;;;;;;GAQG;AACH,wBAAsB,kCAAkC,CACtD,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAmEf"}
|
|
@@ -1,7 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Create direct navigation interactions for same-origin links discovered on
|
|
3
|
+
* the current page. These are placed in the "Direct Navigations" surface
|
|
4
|
+
* which runs as execution group 0 (before hover/content interactions), so
|
|
5
|
+
* discovered pages get short dependency chains.
|
|
6
|
+
*
|
|
7
|
+
* Navigation interactions never have a dependencyTestInteractionId — they
|
|
8
|
+
* navigate directly via goto.
|
|
9
|
+
*/
|
|
10
|
+
export async function generateNavigationTestInteractions(analyzer, context) {
|
|
11
|
+
const { api, runnerId, testEnvironmentId, sizeClass, uid, bundleRun } = context;
|
|
12
|
+
// Only generate for discovery runs that have a navigation surface
|
|
13
|
+
if (!context.navigationSurface || !bundleRun)
|
|
14
|
+
return;
|
|
15
|
+
const navSurfaceId = context.navigationSurface.id;
|
|
16
|
+
// Collect unique same-origin relative paths from actionable navigation items
|
|
17
|
+
const seenPaths = new Set();
|
|
18
|
+
seenPaths.add(context.currentPath); // skip the current page
|
|
19
|
+
const navPaths = [];
|
|
20
|
+
for (const item of context.actionableItems) {
|
|
21
|
+
if (item.actionKind !== "navigate" || !item.href)
|
|
22
|
+
continue;
|
|
23
|
+
const relativePath = extractRelativePath(item.href);
|
|
24
|
+
if (!relativePath || seenPaths.has(relativePath))
|
|
25
|
+
continue;
|
|
26
|
+
// Skip external links, anchors, and non-http
|
|
27
|
+
if (item.href.startsWith("mailto:") ||
|
|
28
|
+
item.href.startsWith("tel:") ||
|
|
29
|
+
item.href.startsWith("javascript:") ||
|
|
30
|
+
item.href === "#" ||
|
|
31
|
+
item.href.startsWith("#")) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
seenPaths.add(relativePath);
|
|
35
|
+
navPaths.push(relativePath);
|
|
36
|
+
}
|
|
37
|
+
if (navPaths.length === 0)
|
|
38
|
+
return;
|
|
39
|
+
// Get the open surface run for Direct Navigations
|
|
40
|
+
const surfaceRuns = await api.getOpenTestSurfaceRuns(bundleRun.id);
|
|
41
|
+
const navSurfaceRun = surfaceRuns.find((sr) => sr.testSurfaceId === navSurfaceId);
|
|
42
|
+
if (!navSurfaceRun)
|
|
43
|
+
return;
|
|
44
|
+
for (const path of navPaths) {
|
|
45
|
+
const navInteraction = analyzer.buildNavigationTestInteraction(path, sizeClass, uid);
|
|
46
|
+
const saved = await api.ensureTestInteraction(runnerId, navSurfaceId, navInteraction, testEnvironmentId);
|
|
47
|
+
try {
|
|
48
|
+
await api.createTestInteractionRun({
|
|
49
|
+
testInteractionId: saved.id,
|
|
50
|
+
testSurfaceRunId: navSurfaceRun.id,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// Run may already exist
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Do NOT reconcile — other navigation interactions (from hover-click
|
|
58
|
+
// discovery or scan bootstrap) should not be retired.
|
|
59
|
+
}
|
|
60
|
+
function extractRelativePath(href) {
|
|
61
|
+
try {
|
|
62
|
+
const url = new URL(href, "http://placeholder");
|
|
63
|
+
return url.pathname + url.search;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
6
68
|
}
|
|
7
69
|
//# sourceMappingURL=navigation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/navigation.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/navigation.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,QAAa,EACb,OAAwB;IAExB,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GACnE,OAAO,CAAC;IAEV,kEAAkE;IAClE,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,SAAS;QAAE,OAAO;IAErD,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAElD,6EAA6E;IAC7E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,wBAAwB;IAE5D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,SAAS;QAE3D,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;YAAE,SAAS;QAC3D,6CAA6C;QAC7C,IACE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YACnC,IAAI,CAAC,IAAI,KAAK,GAAG;YACjB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EACzB,CAAC;YACD,SAAS;QACX,CAAC;QAED,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAElC,kDAAkD;IAClD,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CACpC,CAAC,EAA6B,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,KAAK,YAAY,CACrE,CAAC;IACF,IAAI,CAAC,aAAa;QAAE,OAAO;IAE3B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,cAAc,GAAG,QAAQ,CAAC,8BAA8B,CAC5D,IAAI,EACJ,SAAS,EACT,GAAG,CACJ,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAC3C,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,iBAAiB,CAClB,CAAC;QACF,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,wBAAwB,CAAC;gBACjC,iBAAiB,EAAE,KAAK,CAAC,EAAE;gBAC3B,gBAAgB,EAAE,aAAa,CAAC,EAAE;aACnC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,sDAAsD;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|