@sudobility/testomniac_runner_service 0.1.66 → 0.1.68

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.
Files changed (31) hide show
  1. package/dist/analyzer/page-analyzer/generators/content.d.ts.map +1 -1
  2. package/dist/analyzer/page-analyzer/generators/content.js +4 -2
  3. package/dist/analyzer/page-analyzer/generators/content.js.map +1 -1
  4. package/dist/analyzer/page-analyzer/generators/navigation.d.ts.map +1 -1
  5. package/dist/analyzer/page-analyzer/generators/navigation.js +3 -30
  6. package/dist/analyzer/page-analyzer/generators/navigation.js.map +1 -1
  7. package/dist/analyzer/page-analyzer/generators/scaffolds.d.ts.map +1 -1
  8. package/dist/analyzer/page-analyzer/generators/scaffolds.js +5 -2
  9. package/dist/analyzer/page-analyzer/generators/scaffolds.js.map +1 -1
  10. package/dist/analyzer/page-analyzer/index.d.ts.map +1 -1
  11. package/dist/analyzer/page-analyzer/index.js +94 -20
  12. package/dist/analyzer/page-analyzer/index.js.map +1 -1
  13. package/dist/api/client.d.ts +1 -1
  14. package/dist/api/client.d.ts.map +1 -1
  15. package/dist/api/client.js +2 -2
  16. package/dist/api/client.js.map +1 -1
  17. package/dist/browser/replay-selector.d.ts +23 -0
  18. package/dist/browser/replay-selector.d.ts.map +1 -0
  19. package/dist/browser/replay-selector.js +150 -0
  20. package/dist/browser/replay-selector.js.map +1 -0
  21. package/dist/expertise/tester/control-state.d.ts.map +1 -1
  22. package/dist/expertise/tester/control-state.js +2 -1
  23. package/dist/expertise/tester/control-state.js.map +1 -1
  24. package/dist/orchestrator/runner.d.ts +2 -0
  25. package/dist/orchestrator/runner.d.ts.map +1 -1
  26. package/dist/orchestrator/runner.js +170 -32
  27. package/dist/orchestrator/runner.js.map +1 -1
  28. package/dist/orchestrator/test-interaction-executor.d.ts.map +1 -1
  29. package/dist/orchestrator/test-interaction-executor.js +148 -4
  30. package/dist/orchestrator/test-interaction-executor.js.map +1 -1
  31. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA+Ef"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAmFf"}
@@ -6,6 +6,7 @@ export async function generateContentTestInteractions(analyzer, context) {
6
6
  await analyzer.reconcileGeneratedSurfaceElements(context, {
7
7
  surfaceTitle,
8
8
  desiredKeys: [],
9
+ dependencyTestInteractionId: context.currentTestInteractionId,
9
10
  });
10
11
  return;
11
12
  }
@@ -28,8 +29,8 @@ export async function generateContentTestInteractions(analyzer, context) {
28
29
  const desiredKeys = [];
29
30
  for (const item of contentItems) {
30
31
  const testInteraction = analyzer.shouldUseDirectControlInteraction(item)
31
- ? analyzer.buildControlInteractionTestInteraction(item, context.currentPath, sizeClass, uid, context.currentPageStateId)
32
- : analyzer.buildHoverTestInteraction(item, context.currentPath, sizeClass, uid, context.currentPageStateId);
32
+ ? analyzer.buildControlInteractionTestInteraction(item, context.currentPath, sizeClass, uid, context.currentPageStateId, context.currentTestInteractionId)
33
+ : analyzer.buildHoverTestInteraction(item, context.currentPath, sizeClass, uid, context.currentPageStateId, context.currentTestInteractionId);
33
34
  desiredKeys.push(analyzer.getGeneratedKey(testInteraction));
34
35
  const tc = await api.ensureTestInteraction(runnerId, surface.id, testInteraction, testEnvironmentId);
35
36
  await api.createTestInteractionRun({
@@ -41,6 +42,7 @@ export async function generateContentTestInteractions(analyzer, context) {
41
42
  surfaceId: surface.id,
42
43
  surfaceTitle,
43
44
  desiredKeys,
45
+ dependencyTestInteractionId: context.currentTestInteractionId,
44
46
  });
45
47
  }
46
48
  //# sourceMappingURL=content.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/content.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,QAAa,EACb,OAAwB;IAExB,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GACnE,OAAO,CAAC;IAEV,MAAM,YAAY,GAAG,QAAQ,CAAC,yBAAyB,CACrD,OAAO,CAAC,eAAe,CAAC,MAAM,CAC5B,CAAC,IAAS,EAAE,EAAE,CACZ,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAC/D,CACF,CAAC;IACF,MAAM,YAAY,GAAG,SAAS,OAAO,CAAC,WAAW,EAAE,CAAC;IACpD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,CAAC,iCAAiC,CAAC,OAAO,EAAE;YACxD,YAAY;YACZ,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,iBAAiB,CACzC,QAAQ,EACR;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,6BAA6B,OAAO,CAAC,WAAW,EAAE;QAC/D,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;QAC/C,YAAY,EAAE,OAAO,CAAC,WAAW;QACjC,SAAS;QACT,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC,cAAc,CAAC;QAC9B,GAAG;KACJ,EACD,iBAAiB,CAClB,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;QAClC,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,uBAAuB,CAAC,SAAS,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAChD,GAAG,EACH,OAAO,CAAC,EAAE,EACV,SAAS,CAAC,EAAE,CACb,CAAC;IAEF,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,QAAQ,CAAC,iCAAiC,CAAC,IAAI,CAAC;YACtE,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAC7C,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,GAAG,EACH,OAAO,CAAC,kBAAkB,CAC3B;YACH,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAChC,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,GAAG,EACH,OAAO,CAAC,kBAAkB,CAC3B,CAAC;QACN,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5D,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,qBAAqB,CACxC,QAAQ,EACR,OAAO,CAAC,EAAE,EACV,eAAe,EACf,iBAAiB,CAClB,CAAC;QACF,MAAM,GAAG,CAAC,wBAAwB,CAAC;YACjC,iBAAiB,EAAE,EAAE,CAAC,EAAE;YACxB,gBAAgB,EAAE,UAAU,CAAC,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,CAAC,iCAAiC,CAAC,OAAO,EAAE;QACxD,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,YAAY;QACZ,WAAW;KACZ,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/content.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,QAAa,EACb,OAAwB;IAExB,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GACnE,OAAO,CAAC;IAEV,MAAM,YAAY,GAAG,QAAQ,CAAC,yBAAyB,CACrD,OAAO,CAAC,eAAe,CAAC,MAAM,CAC5B,CAAC,IAAS,EAAE,EAAE,CACZ,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAC/D,CACF,CAAC;IACF,MAAM,YAAY,GAAG,SAAS,OAAO,CAAC,WAAW,EAAE,CAAC;IACpD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,CAAC,iCAAiC,CAAC,OAAO,EAAE;YACxD,YAAY;YACZ,WAAW,EAAE,EAAE;YACf,2BAA2B,EAAE,OAAO,CAAC,wBAAwB;SAC9D,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,iBAAiB,CACzC,QAAQ,EACR;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,6BAA6B,OAAO,CAAC,WAAW,EAAE;QAC/D,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;QAC/C,YAAY,EAAE,OAAO,CAAC,WAAW;QACjC,SAAS;QACT,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC,cAAc,CAAC;QAC9B,GAAG;KACJ,EACD,iBAAiB,CAClB,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;QAClC,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,uBAAuB,CAAC,SAAS,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAChD,GAAG,EACH,OAAO,CAAC,EAAE,EACV,SAAS,CAAC,EAAE,CACb,CAAC;IAEF,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,QAAQ,CAAC,iCAAiC,CAAC,IAAI,CAAC;YACtE,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAC7C,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,GAAG,EACH,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,wBAAwB,CACjC;YACH,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAChC,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,GAAG,EACH,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,wBAAwB,CACjC,CAAC;QACN,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5D,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,qBAAqB,CACxC,QAAQ,EACR,OAAO,CAAC,EAAE,EACV,eAAe,EACf,iBAAiB,CAClB,CAAC;QACF,MAAM,GAAG,CAAC,wBAAwB,CAAC;YACjC,iBAAiB,EAAE,EAAE,CAAC,EAAE;YACxB,gBAAgB,EAAE,UAAU,CAAC,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,CAAC,iCAAiC,CAAC,OAAO,EAAE;QACxD,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,YAAY;QACZ,WAAW;QACX,2BAA2B,EAAE,OAAO,CAAC,wBAAwB;KAC9D,CAAC,CAAC;AACL,CAAC"}
@@ -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,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAkEf"}
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,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAMf"}
@@ -1,35 +1,8 @@
1
1
  export async function generateNavigationTestInteractions(analyzer, context) {
2
- if (context.pageRequiresLogin) {
3
- await analyzer.reconcileGeneratedSurfaceElements(context, {
4
- surfaceId: context.navigationSurface.id,
5
- surfaceTitle: context.navigationSurface.title,
6
- desiredKeys: [],
7
- });
8
- return;
9
- }
10
- const { api, runnerId, testEnvironmentId, sizeClass, uid, navigationSurface, bundleRun, } = context;
11
- const links = analyzer.selectRepresentativeItems(context.actionableItems.filter((item) => item.actionKind === "navigate" && item.href && item.visible));
12
- await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, navigationSurface.id);
13
- const surfaceRun = await analyzer.ensureSurfaceRun(api, navigationSurface.id, bundleRun.id);
14
- const desiredKeys = [];
15
- for (const link of links) {
16
- if (!link.href)
17
- continue;
18
- const path = analyzer.extractRelativePath(link.href);
19
- if (!path)
20
- continue;
21
- const testInteraction = analyzer.buildNavigationTestInteraction(path, sizeClass, uid, context.currentPageStateId);
22
- desiredKeys.push(analyzer.getGeneratedKey(testInteraction));
23
- const tc = await api.ensureTestInteraction(runnerId, navigationSurface.id, testInteraction, testEnvironmentId);
24
- await api.createTestInteractionRun({
25
- testInteractionId: tc.id,
26
- testSurfaceRunId: surfaceRun.id,
27
- });
28
- }
29
2
  await analyzer.reconcileGeneratedSurfaceElements(context, {
30
- surfaceId: navigationSurface.id,
31
- surfaceTitle: navigationSurface.title,
32
- desiredKeys,
3
+ surfaceId: context.navigationSurface.id,
4
+ surfaceTitle: context.navigationSurface.title,
5
+ desiredKeys: [],
33
6
  });
34
7
  }
35
8
  //# 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,QAAa,EACb,OAAwB;IAExB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,MAAM,QAAQ,CAAC,iCAAiC,CAAC,OAAO,EAAE;YACxD,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE;YACvC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK;YAC7C,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,EACJ,GAAG,EACH,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,GAAG,EACH,iBAAiB,EACjB,SAAS,GACV,GAAG,OAAO,CAAC;IACZ,MAAM,KAAK,GAAG,QAAQ,CAAC,yBAAyB,CAC9C,OAAO,CAAC,eAAe,CAAC,MAAM,CAC5B,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAC3E,CACF,CAAC;IAEF,MAAM,GAAG,CAAC,uBAAuB,CAC/B,SAAS,CAAC,mBAAmB,EAC7B,iBAAiB,CAAC,EAAE,CACrB,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAChD,GAAG,EACH,iBAAiB,CAAC,EAAE,EACpB,SAAS,CAAC,EAAE,CACb,CAAC;IAEF,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,SAAS;QACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,eAAe,GAAG,QAAQ,CAAC,8BAA8B,CAC7D,IAAI,EACJ,SAAS,EACT,GAAG,EACH,OAAO,CAAC,kBAAkB,CAC3B,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5D,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,qBAAqB,CACxC,QAAQ,EACR,iBAAiB,CAAC,EAAE,EACpB,eAAe,EACf,iBAAiB,CAClB,CAAC;QACF,MAAM,GAAG,CAAC,wBAAwB,CAAC;YACjC,iBAAiB,EAAE,EAAE,CAAC,EAAE;YACxB,gBAAgB,EAAE,UAAU,CAAC,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,CAAC,iCAAiC,CAAC,OAAO,EAAE;QACxD,SAAS,EAAE,iBAAiB,CAAC,EAAE;QAC/B,YAAY,EAAE,iBAAiB,CAAC,KAAK;QACrC,WAAW;KACZ,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/navigation.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,QAAa,EACb,OAAwB;IAExB,MAAM,QAAQ,CAAC,iCAAiC,CAAC,OAAO,EAAE;QACxD,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE;QACvC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK;QAC7C,WAAW,EAAE,EAAE;KAChB,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scaffolds.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/scaffolds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAwGf"}
1
+ {"version":3,"file":"scaffolds.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/scaffolds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA6Gf"}
@@ -29,8 +29,8 @@ export async function generateScaffoldTestInteractions(analyzer, context) {
29
29
  const desiredKeys = [];
30
30
  for (const item of scaffoldItems) {
31
31
  const testInteraction = analyzer.shouldUseDirectControlInteraction(item)
32
- ? analyzer.buildControlInteractionTestInteraction(item, context.currentPath, sizeClass, uid, context.currentPageStateId)
33
- : analyzer.buildHoverTestInteraction(item, context.currentPath, sizeClass, uid, context.currentPageStateId);
32
+ ? analyzer.buildControlInteractionTestInteraction(item, context.currentPath, sizeClass, uid, context.currentPageStateId, context.currentTestInteractionId)
33
+ : analyzer.buildHoverTestInteraction(item, context.currentPath, sizeClass, uid, context.currentPageStateId, context.currentTestInteractionId);
34
34
  desiredKeys.push(analyzer.getGeneratedKey(testInteraction));
35
35
  const tc = await api.ensureTestInteraction(runnerId, surface.id, testInteraction, testEnvironmentId);
36
36
  await api.createTestInteractionRun({
@@ -43,6 +43,7 @@ export async function generateScaffoldTestInteractions(analyzer, context) {
43
43
  surfaceId: surface.id,
44
44
  surfaceTitle,
45
45
  desiredKeys,
46
+ dependencyTestInteractionId: context.currentTestInteractionId,
46
47
  });
47
48
  }
48
49
  const existingSurfaces = await api.getTestSurfacesByRunner(runnerId);
@@ -52,6 +53,7 @@ export async function generateScaffoldTestInteractions(analyzer, context) {
52
53
  surfaceId: surface.id,
53
54
  surfaceTitle: surface.title,
54
55
  desiredKeys: [],
56
+ dependencyTestInteractionId: context.currentTestInteractionId,
55
57
  });
56
58
  }
57
59
  }
@@ -61,6 +63,7 @@ export async function generateScaffoldTestInteractions(analyzer, context) {
61
63
  await analyzer.reconcileGeneratedSurfaceElements(context, {
62
64
  surfaceTitle,
63
65
  desiredKeys,
66
+ dependencyTestInteractionId: context.currentTestInteractionId,
64
67
  });
65
68
  }
66
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scaffolds.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/scaffolds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffolds.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/scaffolds.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analyzer/page-analyzer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analyzer/page-analyzer/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { PlaywrightAction, ExpectationType, ExpectationSeverity, } from "@sudobility/testomniac_types";
2
+ import { buildReplaySelectorFromActionableItem } from "../../browser/replay-selector";
2
3
  import { computeHashes } from "../../browser/page-utils";
3
4
  import { createHash } from "node:crypto";
4
5
  import { fillValuePlanner } from "../../planners/fill-value-planner";
@@ -14,6 +15,9 @@ import { generateDialogLifecycleTestInteractions } from "./generators/dialogs";
14
15
  import { generateKeyboardAndDisclosureTestInteractions } from "./generators/keyboard-disclosure";
15
16
  import { generateVariantTestInteractions } from "./generators/variants";
16
17
  import { generateContentTestInteractions } from "./generators/content";
18
+ function logAnalyzer(step, details) {
19
+ console.info("[PageAnalyzer]", step, details ?? {});
20
+ }
17
21
  /**
18
22
  * PageAnalyzer generates expectations and discovers new test elements
19
23
  * during discovery mode.
@@ -59,16 +63,51 @@ export class PageAnalyzer {
59
63
  * Called AFTER expertises evaluate and the target page state is established.
60
64
  */
61
65
  async generateTestInteractions(testInteraction, context) {
66
+ logAnalyzer("generate:start", {
67
+ sourceTitle: testInteraction.title,
68
+ sourceType: testInteraction.type,
69
+ sourcePriority: testInteraction.priority,
70
+ sourceSurfaceTags: testInteraction.surface_tags,
71
+ currentTestInteractionId: context.currentTestInteractionId,
72
+ currentTestSurfaceId: context.currentTestSurfaceId,
73
+ currentSurfaceRunId: context.currentSurfaceRunId ?? null,
74
+ beginningPageStateId: context.beginningPageStateId,
75
+ currentPageStateId: context.currentPageStateId,
76
+ currentPath: context.currentPath,
77
+ actionableItemsCount: context.actionableItems.length,
78
+ formsCount: context.forms.length,
79
+ scaffoldsCount: context.scaffolds.length,
80
+ });
62
81
  const normalizedContext = this.normalizeContext(context);
63
82
  const currentPageStateId = await this.ensureTargetPageState(normalizedContext);
64
83
  const resolvedContext = {
65
84
  ...normalizedContext,
66
85
  currentPageStateId,
67
86
  };
87
+ logAnalyzer("generate:resolved-context", {
88
+ sourceTitle: testInteraction.title,
89
+ sourceType: testInteraction.type,
90
+ currentTestInteractionId: resolvedContext.currentTestInteractionId,
91
+ currentTestSurfaceId: resolvedContext.currentTestSurfaceId,
92
+ currentSurfaceRunId: resolvedContext.currentSurfaceRunId ?? null,
93
+ beginningPageStateId: resolvedContext.beginningPageStateId,
94
+ currentPageStateId: resolvedContext.currentPageStateId,
95
+ currentPath: resolvedContext.currentPath,
96
+ });
68
97
  if (this.isHoverOnly(testInteraction)) {
98
+ logAnalyzer("generate:hover-only", {
99
+ sourceTitle: testInteraction.title,
100
+ currentTestInteractionId: resolvedContext.currentTestInteractionId,
101
+ currentPageStateId: resolvedContext.currentPageStateId,
102
+ });
69
103
  await generateHoverFollowUpCases(this, testInteraction, resolvedContext);
70
104
  return;
71
105
  }
106
+ logAnalyzer("generate:full-pass", {
107
+ sourceTitle: testInteraction.title,
108
+ currentTestInteractionId: resolvedContext.currentTestInteractionId,
109
+ currentPageStateId: resolvedContext.currentPageStateId,
110
+ });
72
111
  await generateRenderTestInteractions(this, resolvedContext);
73
112
  await generateFormTestInteractions(this, resolvedContext);
74
113
  await generateSemanticJourneyTestInteractions(this, resolvedContext);
@@ -84,8 +123,15 @@ export class PageAnalyzer {
84
123
  const surface = params.surfaceId != null
85
124
  ? { id: params.surfaceId, title: params.surfaceTitle }
86
125
  : await this.findExistingSurfaceByTitle(context, params.surfaceTitle);
87
- if (!surface)
126
+ if (!surface) {
127
+ logAnalyzer("reconcile:surface-missing", {
128
+ requestedSurfaceId: params.surfaceId ?? null,
129
+ requestedSurfaceTitle: params.surfaceTitle,
130
+ dependencyTestInteractionId: params.dependencyTestInteractionId ?? null,
131
+ desiredKeysCount: params.desiredKeys.length,
132
+ });
88
133
  return;
134
+ }
89
135
  const existing = await context.api.getTestInteractionsByTestSurface(surface.id, true);
90
136
  const desiredKeys = new Set(params.desiredKeys.map(key => key.trim()).filter(Boolean));
91
137
  const obsoleteIds = existing
@@ -104,9 +150,22 @@ export class PageAnalyzer {
104
150
  return !existingKey || !desiredKeys.has(existingKey);
105
151
  })
106
152
  .map(testInteraction => testInteraction.id);
153
+ logAnalyzer("reconcile:evaluated", {
154
+ surfaceId: surface.id,
155
+ surfaceTitle: surface.title,
156
+ dependencyTestInteractionId: params.dependencyTestInteractionId ?? null,
157
+ desiredKeysCount: desiredKeys.size,
158
+ existingCount: existing.length,
159
+ obsoleteIds,
160
+ });
107
161
  if (obsoleteIds.length === 0)
108
162
  return;
109
163
  await context.api.retireTestInteractions(obsoleteIds);
164
+ logAnalyzer("reconcile:retired", {
165
+ surfaceId: surface.id,
166
+ surfaceTitle: surface.title,
167
+ obsoleteIds,
168
+ });
110
169
  }
111
170
  async findExistingSurfaceByTitle(context, title) {
112
171
  const surfaces = await context.api.getTestSurfacesByRunner(context.runnerId);
@@ -125,12 +184,23 @@ export class PageAnalyzer {
125
184
  const openSurfaceRuns = await api.getOpenTestSurfaceRuns(bundleRunId);
126
185
  const existing = openSurfaceRuns.find(surfaceRun => surfaceRun.testSurfaceId === testSurfaceId);
127
186
  if (existing) {
187
+ logAnalyzer("surface-run:reused", {
188
+ bundleRunId,
189
+ testSurfaceId,
190
+ surfaceRunId: existing.id,
191
+ });
128
192
  return existing;
129
193
  }
130
- return api.createTestSurfaceRun({
194
+ const created = await api.createTestSurfaceRun({
131
195
  testSurfaceId,
132
196
  testSurfaceBundleRunId: bundleRunId,
133
197
  });
198
+ logAnalyzer("surface-run:created", {
199
+ bundleRunId,
200
+ testSurfaceId,
201
+ surfaceRunId: created.id,
202
+ });
203
+ return created;
134
204
  }
135
205
  isMouseActionable(item) {
136
206
  return (item.visible &&
@@ -180,12 +250,13 @@ export class PageAnalyzer {
180
250
  }
181
251
  buildHoverTestInteraction(item, startingPath, sizeClass, uid, startingPageStateId, dependencyTestInteractionId) {
182
252
  const label = this.describeActionableItem(item);
253
+ const replaySelector = buildReplaySelectorFromActionableItem(item);
183
254
  return {
184
255
  title: `Hover over ${label}`,
185
256
  type: "interaction",
186
257
  sizeClass,
187
258
  surface_tags: ["interaction", "hover"],
188
- priority: 4,
259
+ priority: 1,
189
260
  dependencyTestInteractionId,
190
261
  startingPageStateId,
191
262
  startingPath,
@@ -193,8 +264,8 @@ export class PageAnalyzer {
193
264
  {
194
265
  action: {
195
266
  actionType: PlaywrightAction.Hover,
196
- path: item.selector ?? undefined,
197
- playwrightCode: `await page.hover('${item.selector}')`,
267
+ path: replaySelector,
268
+ playwrightCode: `await page.hover('${replaySelector}')`,
198
269
  description: `Hover over ${label}`,
199
270
  },
200
271
  expectations: [],
@@ -209,6 +280,7 @@ export class PageAnalyzer {
209
280
  }
210
281
  buildClickTestInteraction(item, startingPath, sizeClass, uid, startingPageStateId, dependencyTestInteractionId) {
211
282
  const label = this.describeActionableItem(item);
283
+ const replaySelector = buildReplaySelectorFromActionableItem(item);
212
284
  return {
213
285
  title: `Click ${label}`,
214
286
  type: "interaction",
@@ -222,8 +294,8 @@ export class PageAnalyzer {
222
294
  {
223
295
  action: {
224
296
  actionType: PlaywrightAction.Click,
225
- path: item.selector ?? undefined,
226
- playwrightCode: `await page.click('${item.selector}')`,
297
+ path: replaySelector,
298
+ playwrightCode: `await page.click('${replaySelector}')`,
227
299
  description: `Click ${label}`,
228
300
  },
229
301
  expectations: [],
@@ -1776,8 +1848,9 @@ export class PageAnalyzer {
1776
1848
  inputType === "radio" ||
1777
1849
  inputType === "checkbox");
1778
1850
  }
1779
- buildControlInteractionTestInteraction(item, startingPath, sizeClass, uid, startingPageStateId) {
1851
+ buildControlInteractionTestInteraction(item, startingPath, sizeClass, uid, startingPageStateId, dependencyTestInteractionId) {
1780
1852
  const label = this.describeActionableItem(item);
1853
+ const replaySelector = buildReplaySelectorFromActionableItem(item);
1781
1854
  const role = (item.role ?? "").toLowerCase();
1782
1855
  const inputType = (item.inputType ?? "").toLowerCase();
1783
1856
  const isTab = role === "tab";
@@ -1797,38 +1870,38 @@ export class PageAnalyzer {
1797
1870
  const isImmutable = this.looksVisuallyDisabledButEnabled(item);
1798
1871
  let actionType = PlaywrightAction.Click;
1799
1872
  let actionValue;
1800
- let playwrightCode = `await page.click('${item.selector}')`;
1873
+ let playwrightCode = `await page.click('${replaySelector}')`;
1801
1874
  let description = `${isTab ? "Select" : "Activate"} ${label}`;
1802
1875
  if (isFillControl) {
1803
1876
  actionType = PlaywrightAction.Type;
1804
1877
  actionValue = plannedValue;
1805
- playwrightCode = `await page.locator('${item.selector}').type('${this.escapeSingleQuotes(plannedValue ?? "")}')`;
1878
+ playwrightCode = `await page.locator('${replaySelector}').type('${this.escapeSingleQuotes(plannedValue ?? "")}')`;
1806
1879
  description = `Type into ${label}`;
1807
1880
  }
1808
1881
  else if (isSelectControl) {
1809
1882
  actionType = PlaywrightAction.SelectOption;
1810
1883
  actionValue = plannedValue;
1811
- playwrightCode = `await page.locator('${item.selector}').selectOption('${this.escapeSingleQuotes(plannedValue ?? "")}')`;
1884
+ playwrightCode = `await page.locator('${replaySelector}').selectOption('${this.escapeSingleQuotes(plannedValue ?? "")}')`;
1812
1885
  description = `Select ${label}`;
1813
1886
  }
1814
1887
  else if (isRadioControl) {
1815
1888
  actionType = PlaywrightAction.Click;
1816
- playwrightCode = `await page.click('${item.selector}')`;
1889
+ playwrightCode = `await page.click('${replaySelector}')`;
1817
1890
  description = `Select ${label}`;
1818
1891
  }
1819
1892
  const expectations = isImmutable
1820
- ? this.buildImmutableControlExpectations(item, label)
1893
+ ? this.buildImmutableControlExpectations(item, label, replaySelector)
1821
1894
  : expectsInputValue
1822
1895
  ? [
1823
1896
  this.makeExpectation(ExpectationType.InputValue, `${description} should update the control value`, {
1824
- targetPath: item.selector,
1897
+ targetPath: replaySelector,
1825
1898
  expectedValue: plannedValue,
1826
1899
  }),
1827
1900
  ]
1828
1901
  : expectsChecked
1829
1902
  ? [
1830
1903
  this.makeExpectation(ExpectationType.ElementChecked, `${label} should react to user input`, {
1831
- targetPath: item.selector,
1904
+ targetPath: replaySelector,
1832
1905
  }),
1833
1906
  ]
1834
1907
  : [];
@@ -1842,13 +1915,14 @@ export class PageAnalyzer {
1842
1915
  role || inputType || item.actionKind || "control",
1843
1916
  ],
1844
1917
  priority: 3,
1918
+ dependencyTestInteractionId,
1845
1919
  startingPageStateId,
1846
1920
  startingPath,
1847
1921
  steps: [
1848
1922
  {
1849
1923
  action: {
1850
1924
  actionType,
1851
- path: item.selector ?? undefined,
1925
+ path: replaySelector,
1852
1926
  value: actionValue,
1853
1927
  playwrightCode,
1854
1928
  description,
@@ -1862,16 +1936,16 @@ export class PageAnalyzer {
1862
1936
  ? `${label} should remain non-interactive despite appearing disabled`
1863
1937
  : `${label} should react without runtime errors`),
1864
1938
  uid,
1865
- generatedKey: this.buildGeneratedKey("control", startingPageStateId, isImmutable ? "immutable" : "enabled", role || inputType || item.actionKind || "control", item.stableKey ?? item.selector ?? label),
1939
+ generatedKey: this.buildGeneratedKey("control", startingPageStateId, dependencyTestInteractionId, isImmutable ? "immutable" : "enabled", role || inputType || item.actionKind || "control", item.stableKey ?? item.selector ?? label),
1866
1940
  };
1867
1941
  }
1868
- buildImmutableControlExpectations(item, label) {
1942
+ buildImmutableControlExpectations(item, label, replaySelector) {
1869
1943
  const role = (item.role ?? "").toLowerCase();
1870
1944
  const inputType = (item.inputType ?? "").toLowerCase();
1871
1945
  if (item.actionKind === "fill" || item.actionKind === "select") {
1872
1946
  return [
1873
1947
  this.makeExpectation(ExpectationType.InputValue, `${label} should not respond to user input while it appears disabled`, {
1874
- targetPath: item.selector,
1948
+ targetPath: replaySelector,
1875
1949
  expectNoChange: true,
1876
1950
  }),
1877
1951
  ];
@@ -1885,7 +1959,7 @@ export class PageAnalyzer {
1885
1959
  item.actionKind === "radio_select") {
1886
1960
  return [
1887
1961
  this.makeExpectation(ExpectationType.ElementChecked, `${label} should not change state while it appears disabled`, {
1888
- targetPath: item.selector,
1962
+ targetPath: replaySelector,
1889
1963
  expectNoChange: true,
1890
1964
  }),
1891
1965
  ];