@sudobility/testomniac_runner_service 0.1.97 → 0.1.98
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 +4 -0
- package/dist/analyzer/page-analyzer/generators/navigation.d.ts.map +1 -1
- package/dist/analyzer/page-analyzer/generators/navigation.js +46 -17
- package/dist/analyzer/page-analyzer/generators/navigation.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,10 @@ import type { AnalyzerContext } from "../types";
|
|
|
7
7
|
*
|
|
8
8
|
* Navigation interactions never have a dependencyTestInteractionId — they
|
|
9
9
|
* navigate directly via goto.
|
|
10
|
+
*
|
|
11
|
+
* Items are passed through selectRepresentativeItems so that product grids
|
|
12
|
+
* (18 product links with the same structure) produce only a few representative
|
|
13
|
+
* navigations instead of one per product.
|
|
10
14
|
*/
|
|
11
15
|
export declare function generateNavigationTestInteractions(analyzer: any, context: AnalyzerContext): Promise<void>;
|
|
12
16
|
//# 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
|
|
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;;;;;;;;;;;;GAYG;AACH,wBAAsB,kCAAkC,CACtD,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAkFf"}
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Navigation interactions never have a dependencyTestInteractionId — they
|
|
8
8
|
* navigate directly via goto.
|
|
9
|
+
*
|
|
10
|
+
* Items are passed through selectRepresentativeItems so that product grids
|
|
11
|
+
* (18 product links with the same structure) produce only a few representative
|
|
12
|
+
* navigations instead of one per product.
|
|
9
13
|
*/
|
|
10
14
|
export async function generateNavigationTestInteractions(analyzer, context) {
|
|
11
15
|
const { api, runnerId, testEnvironmentId, sizeClass, uid, bundleRun } = context;
|
|
@@ -13,26 +17,44 @@ export async function generateNavigationTestInteractions(analyzer, context) {
|
|
|
13
17
|
if (!context.navigationSurface || !bundleRun)
|
|
14
18
|
return;
|
|
15
19
|
const navSurfaceId = context.navigationSurface.id;
|
|
16
|
-
//
|
|
17
|
-
const
|
|
18
|
-
seenPaths.add(context.currentPath); // skip the current page
|
|
19
|
-
const navPaths = [];
|
|
20
|
-
for (const item of context.actionableItems) {
|
|
20
|
+
// Filter to navigation items with valid same-origin hrefs
|
|
21
|
+
const navItems = context.actionableItems.filter(item => {
|
|
21
22
|
if (item.actionKind !== "navigate" || !item.href)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (item.href.startsWith("mailto:") ||
|
|
23
|
+
return false;
|
|
24
|
+
// Skip anchors, mailto, tel, javascript
|
|
25
|
+
if (item.href === "#" ||
|
|
26
|
+
item.href.startsWith("#") ||
|
|
27
|
+
item.href.startsWith("mailto:") ||
|
|
28
28
|
item.href.startsWith("tel:") ||
|
|
29
|
-
item.href.startsWith("javascript:")
|
|
30
|
-
|
|
31
|
-
item.href.startsWith("#")) {
|
|
32
|
-
continue;
|
|
29
|
+
item.href.startsWith("javascript:")) {
|
|
30
|
+
return false;
|
|
33
31
|
}
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
// Skip action URLs (e.g. add-to-cart links with side effects)
|
|
33
|
+
const path = extractRelativePath(item.href);
|
|
34
|
+
if (!path)
|
|
35
|
+
return false;
|
|
36
|
+
if (isActionUrl(path))
|
|
37
|
+
return false;
|
|
38
|
+
// Skip current page
|
|
39
|
+
if (path === context.currentPath)
|
|
40
|
+
return false;
|
|
41
|
+
return true;
|
|
42
|
+
});
|
|
43
|
+
if (navItems.length === 0)
|
|
44
|
+
return;
|
|
45
|
+
// Apply the same representative-item dedup used for hover/content
|
|
46
|
+
// interactions — product grid links get capped to MAX_REPS_PER_STYLE
|
|
47
|
+
const representative = analyzer.selectRepresentativeItems(navItems);
|
|
48
|
+
// Deduplicate by relative path
|
|
49
|
+
const seenPaths = new Set();
|
|
50
|
+
seenPaths.add(context.currentPath);
|
|
51
|
+
const navPaths = [];
|
|
52
|
+
for (const item of representative) {
|
|
53
|
+
const path = extractRelativePath(item.href);
|
|
54
|
+
if (!path || seenPaths.has(path))
|
|
55
|
+
continue;
|
|
56
|
+
seenPaths.add(path);
|
|
57
|
+
navPaths.push(path);
|
|
36
58
|
}
|
|
37
59
|
if (navPaths.length === 0)
|
|
38
60
|
return;
|
|
@@ -66,4 +88,11 @@ function extractRelativePath(href) {
|
|
|
66
88
|
return null;
|
|
67
89
|
}
|
|
68
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Detect URLs that trigger server-side actions (add to cart, delete, etc.)
|
|
93
|
+
* rather than navigating to a viewable page.
|
|
94
|
+
*/
|
|
95
|
+
function isActionUrl(path) {
|
|
96
|
+
return /[?&](ec_action|action|add_to_cart|remove|delete)=/i.test(path);
|
|
97
|
+
}
|
|
69
98
|
//# sourceMappingURL=navigation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/navigation.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/navigation.ts"],"names":[],"mappings":"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"}
|