@sudobility/testomniac_runner_service 0.1.53 → 0.1.54

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 (60) hide show
  1. package/dist/analyzer/page-analyzer/generators/content.d.ts +3 -0
  2. package/dist/analyzer/page-analyzer/generators/content.d.ts.map +1 -0
  3. package/dist/analyzer/page-analyzer/generators/content.js +34 -0
  4. package/dist/analyzer/page-analyzer/generators/content.js.map +1 -0
  5. package/dist/analyzer/page-analyzer/generators/dialogs.d.ts +3 -0
  6. package/dist/analyzer/page-analyzer/generators/dialogs.d.ts.map +1 -0
  7. package/dist/analyzer/page-analyzer/generators/dialogs.js +38 -0
  8. package/dist/analyzer/page-analyzer/generators/dialogs.js.map +1 -0
  9. package/dist/analyzer/page-analyzer/generators/e2e.d.ts +3 -0
  10. package/dist/analyzer/page-analyzer/generators/e2e.d.ts.map +1 -0
  11. package/dist/analyzer/page-analyzer/generators/e2e.js +28 -0
  12. package/dist/analyzer/page-analyzer/generators/e2e.js.map +1 -0
  13. package/dist/analyzer/page-analyzer/generators/forms.d.ts +3 -0
  14. package/dist/analyzer/page-analyzer/generators/forms.d.ts.map +1 -0
  15. package/dist/analyzer/page-analyzer/generators/forms.js +69 -0
  16. package/dist/analyzer/page-analyzer/generators/forms.js.map +1 -0
  17. package/dist/analyzer/page-analyzer/generators/hover-follow-up.d.ts +4 -0
  18. package/dist/analyzer/page-analyzer/generators/hover-follow-up.d.ts.map +1 -0
  19. package/dist/analyzer/page-analyzer/generators/hover-follow-up.js +34 -0
  20. package/dist/analyzer/page-analyzer/generators/hover-follow-up.js.map +1 -0
  21. package/dist/analyzer/page-analyzer/generators/keyboard-disclosure.d.ts +3 -0
  22. package/dist/analyzer/page-analyzer/generators/keyboard-disclosure.d.ts.map +1 -0
  23. package/dist/analyzer/page-analyzer/generators/keyboard-disclosure.js +30 -0
  24. package/dist/analyzer/page-analyzer/generators/keyboard-disclosure.js.map +1 -0
  25. package/dist/analyzer/page-analyzer/generators/navigation.d.ts +3 -0
  26. package/dist/analyzer/page-analyzer/generators/navigation.d.ts.map +1 -0
  27. package/dist/analyzer/page-analyzer/generators/navigation.js +22 -0
  28. package/dist/analyzer/page-analyzer/generators/navigation.js.map +1 -0
  29. package/dist/analyzer/page-analyzer/generators/render.d.ts +3 -0
  30. package/dist/analyzer/page-analyzer/generators/render.d.ts.map +1 -0
  31. package/dist/analyzer/page-analyzer/generators/render.js +26 -0
  32. package/dist/analyzer/page-analyzer/generators/render.js.map +1 -0
  33. package/dist/analyzer/page-analyzer/generators/scaffolds.d.ts +3 -0
  34. package/dist/analyzer/page-analyzer/generators/scaffolds.d.ts.map +1 -0
  35. package/dist/analyzer/page-analyzer/generators/scaffolds.js +36 -0
  36. package/dist/analyzer/page-analyzer/generators/scaffolds.js.map +1 -0
  37. package/dist/analyzer/page-analyzer/generators/semantic-journeys.d.ts +3 -0
  38. package/dist/analyzer/page-analyzer/generators/semantic-journeys.d.ts.map +1 -0
  39. package/dist/analyzer/page-analyzer/generators/semantic-journeys.js +30 -0
  40. package/dist/analyzer/page-analyzer/generators/semantic-journeys.js.map +1 -0
  41. package/dist/analyzer/page-analyzer/generators/variants.d.ts +3 -0
  42. package/dist/analyzer/page-analyzer/generators/variants.d.ts.map +1 -0
  43. package/dist/analyzer/page-analyzer/generators/variants.js +30 -0
  44. package/dist/analyzer/page-analyzer/generators/variants.js.map +1 -0
  45. package/dist/analyzer/{page-analyzer.d.ts → page-analyzer/index.d.ts} +4 -39
  46. package/dist/analyzer/page-analyzer/index.d.ts.map +1 -0
  47. package/dist/analyzer/{page-analyzer.js → page-analyzer/index.js} +26 -395
  48. package/dist/analyzer/page-analyzer/index.js.map +1 -0
  49. package/dist/analyzer/page-analyzer/types.d.ts +28 -0
  50. package/dist/analyzer/page-analyzer/types.d.ts.map +1 -0
  51. package/dist/analyzer/page-analyzer/types.js +1 -0
  52. package/dist/analyzer/page-analyzer/types.js.map +1 -0
  53. package/dist/orchestrator/runner.d.ts.map +1 -1
  54. package/dist/orchestrator/runner.js +19 -5
  55. package/dist/orchestrator/runner.js.map +1 -1
  56. package/dist/orchestrator/types.d.ts +2 -0
  57. package/dist/orchestrator/types.d.ts.map +1 -1
  58. package/package.json +1 -1
  59. package/dist/analyzer/page-analyzer.d.ts.map +0 -1
  60. package/dist/analyzer/page-analyzer.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ import type { AnalyzerContext } from "../types";
2
+ export declare function generateContentTestElements(analyzer: any, context: AnalyzerContext): Promise<void>;
3
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +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,2BAA2B,CAC/C,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAwDf"}
@@ -0,0 +1,34 @@
1
+ export async function generateContentTestElements(analyzer, context) {
2
+ const { api, runnerId, sizeClass, uid, bundleRun } = context;
3
+ const contentItems = analyzer.selectRepresentativeItems(context.actionableItems.filter((item) => item.scaffoldId == null && analyzer.isSurfaceCandidate(item)));
4
+ if (contentItems.length === 0)
5
+ return;
6
+ const surfaceTitle = `Page: ${context.currentPath}`;
7
+ const surface = await api.ensureTestSurface(runnerId, {
8
+ title: surfaceTitle,
9
+ description: `Tests for page content at ${context.currentPath}`,
10
+ startingPageStateId: context.currentPageStateId,
11
+ startingPath: context.currentPath,
12
+ sizeClass,
13
+ priority: 3,
14
+ surface_tags: ["page-content"],
15
+ uid,
16
+ });
17
+ context.events.onTestSurfaceCreated({
18
+ surfaceId: surface.id,
19
+ title: surface.title,
20
+ });
21
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
22
+ const surfaceRun = await analyzer.ensureSurfaceRun(api, surface.id, bundleRun.id);
23
+ for (const item of contentItems) {
24
+ const testElement = analyzer.shouldUseDirectControlInteraction(item)
25
+ ? analyzer.buildControlInteractionTestElement(item, context.currentPath, sizeClass, uid, context.currentPageStateId)
26
+ : analyzer.buildHoverTestElement(item, context.currentPath, sizeClass, uid, context.currentPageStateId);
27
+ const tc = await api.ensureTestElement(runnerId, surface.id, testElement);
28
+ await api.createTestElementRun({
29
+ testElementId: tc.id,
30
+ testSurfaceRunId: surfaceRun.id,
31
+ });
32
+ }
33
+ }
34
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/content.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,QAAa,EACb,OAAwB;IAExB,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE7D,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,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEtC,MAAM,YAAY,GAAG,SAAS,OAAO,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE;QACpD,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,CAAC,CAAC;IACH,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,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,QAAQ,CAAC,iCAAiC,CAAC,IAAI,CAAC;YAClE,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CACzC,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,GAAG,EACH,OAAO,CAAC,kBAAkB,CAC3B;YACH,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAC5B,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,GAAG,EACH,OAAO,CAAC,kBAAkB,CAC3B,CAAC;QACN,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC1E,MAAM,GAAG,CAAC,oBAAoB,CAAC;YAC7B,aAAa,EAAE,EAAE,CAAC,EAAE;YACpB,gBAAgB,EAAE,UAAU,CAAC,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AnalyzerContext } from "../types";
2
+ export declare function generateDialogLifecycleTestElements(analyzer: any, context: AnalyzerContext): Promise<void>;
3
+ //# sourceMappingURL=dialogs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogs.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/dialogs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,mCAAmC,CACvD,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAgEf"}
@@ -0,0 +1,38 @@
1
+ export async function generateDialogLifecycleTestElements(analyzer, context) {
2
+ if (!analyzer.pageHasOpenDialog(context.html))
3
+ return;
4
+ const closeCandidates = analyzer.selectRepresentativeItems(context.actionableItems.filter((item) => item.visible &&
5
+ !item.disabled &&
6
+ item.selector &&
7
+ analyzer.isDialogCloseItem(item)));
8
+ const tests = [];
9
+ for (const item of closeCandidates) {
10
+ tests.push(analyzer.buildDialogCloseTestElement(item, context.currentPath, context.sizeClass, context.uid, context.currentPageStateId));
11
+ }
12
+ tests.push(analyzer.buildEscapeDialogTestElement(context.currentPath, context.sizeClass, context.uid, context.currentPageStateId));
13
+ const { api, runnerId, bundleRun } = context;
14
+ const surface = await api.ensureTestSurface(runnerId, {
15
+ title: `Dialogs: ${context.currentPath}`,
16
+ description: `Dialog lifecycle checks for ${context.currentPath}`,
17
+ startingPageStateId: context.currentPageStateId,
18
+ startingPath: context.currentPath,
19
+ sizeClass: context.sizeClass,
20
+ priority: 2,
21
+ surface_tags: ["dialog"],
22
+ uid: context.uid,
23
+ });
24
+ context.events.onTestSurfaceCreated({
25
+ surfaceId: surface.id,
26
+ title: surface.title,
27
+ });
28
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
29
+ const surfaceRun = await analyzer.ensureSurfaceRun(api, surface.id, bundleRun.id);
30
+ for (const test of tests) {
31
+ const tc = await api.ensureTestElement(runnerId, surface.id, test);
32
+ await api.createTestElementRun({
33
+ testElementId: tc.id,
34
+ testSurfaceRunId: surfaceRun.id,
35
+ });
36
+ }
37
+ }
38
+ //# sourceMappingURL=dialogs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogs.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/dialogs.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,QAAa,EACb,OAAwB;IAExB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO;IAEtD,MAAM,eAAe,GAAG,QAAQ,CAAC,yBAAyB,CACxD,OAAO,CAAC,eAAe,CAAC,MAAM,CAC5B,CAAC,IAAS,EAAE,EAAE,CACZ,IAAI,CAAC,OAAO;QACZ,CAAC,IAAI,CAAC,QAAQ;QACd,IAAI,CAAC,QAAQ;QACb,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CACnC,CACF,CAAC;IAEF,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,QAAQ,CAAC,2BAA2B,CAClC,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,kBAAkB,CAC3B,CACF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CACR,QAAQ,CAAC,4BAA4B,CACnC,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,kBAAkB,CAC3B,CACF,CAAC;IAEF,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE;QACpD,KAAK,EAAE,YAAY,OAAO,CAAC,WAAW,EAAE;QACxC,WAAW,EAAE,+BAA+B,OAAO,CAAC,WAAW,EAAE;QACjE,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;QAC/C,YAAY,EAAE,OAAO,CAAC,WAAW;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IACH,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,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,GAAG,CAAC,oBAAoB,CAAC;YAC7B,aAAa,EAAE,EAAE,CAAC,EAAE;YACpB,gBAAgB,EAAE,UAAU,CAAC,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AnalyzerContext } from "../types";
2
+ export declare function generateE2ETestElements(analyzer: any, context: AnalyzerContext): Promise<void>;
3
+ //# sourceMappingURL=e2e.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/e2e.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAsCf"}
@@ -0,0 +1,28 @@
1
+ export async function generateE2ETestElements(analyzer, context) {
2
+ if (context.journeySteps.length < 2)
3
+ return;
4
+ const { api, runnerId, sizeClass, uid, bundleRun } = context;
5
+ const surface = await api.ensureTestSurface(runnerId, {
6
+ title: `Journeys: ${context.currentPath}`,
7
+ description: `End-to-end journeys reaching ${context.currentPath}`,
8
+ startingPageStateId: context.currentPageStateId,
9
+ startingPath: context.currentPath,
10
+ sizeClass,
11
+ priority: 2,
12
+ surface_tags: ["e2e"],
13
+ uid,
14
+ });
15
+ context.events.onTestSurfaceCreated({
16
+ surfaceId: surface.id,
17
+ title: surface.title,
18
+ });
19
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
20
+ const surfaceRun = await analyzer.ensureSurfaceRun(api, surface.id, bundleRun.id);
21
+ const e2e = analyzer.buildE2ETestElement(context.currentPath, sizeClass, uid, context.currentPageStateId, context.journeySteps);
22
+ const tc = await api.ensureTestElement(runnerId, surface.id, e2e);
23
+ await api.createTestElementRun({
24
+ testElementId: tc.id,
25
+ testSurfaceRunId: surfaceRun.id,
26
+ });
27
+ }
28
+ //# sourceMappingURL=e2e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/e2e.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAa,EACb,OAAwB;IAExB,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO;IAE5C,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC7D,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE;QACpD,KAAK,EAAE,aAAa,OAAO,CAAC,WAAW,EAAE;QACzC,WAAW,EAAE,gCAAgC,OAAO,CAAC,WAAW,EAAE;QAClE,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;QAC/C,YAAY,EAAE,OAAO,CAAC,WAAW;QACjC,SAAS;QACT,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC,KAAK,CAAC;QACrB,GAAG;KACJ,CAAC,CAAC;IACH,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,GAAG,GAAG,QAAQ,CAAC,mBAAmB,CACtC,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,GAAG,EACH,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,YAAY,CACrB,CAAC;IACF,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAClE,MAAM,GAAG,CAAC,oBAAoB,CAAC;QAC7B,aAAa,EAAE,EAAE,CAAC,EAAE;QACpB,gBAAgB,EAAE,UAAU,CAAC,EAAE;KAChC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AnalyzerContext } from "../types";
2
+ export declare function generateFormTestElements(analyzer: any, context: AnalyzerContext): Promise<void>;
3
+ //# sourceMappingURL=forms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/forms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAwJf"}
@@ -0,0 +1,69 @@
1
+ export async function generateFormTestElements(analyzer, context) {
2
+ if (context.forms.length === 0)
3
+ return;
4
+ const { api, runnerId, sizeClass, uid, bundleRun } = context;
5
+ const surface = await api.ensureTestSurface(runnerId, {
6
+ title: `Forms: ${context.currentPath}`,
7
+ description: `Form workflows for ${context.currentPath}`,
8
+ startingPageStateId: context.currentPageStateId,
9
+ startingPath: context.currentPath,
10
+ sizeClass,
11
+ priority: 2,
12
+ surface_tags: ["form"],
13
+ uid,
14
+ });
15
+ context.events.onTestSurfaceCreated({
16
+ surfaceId: surface.id,
17
+ title: surface.title,
18
+ });
19
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
20
+ const surfaceRun = await analyzer.ensureSurfaceRun(api, surface.id, bundleRun.id);
21
+ for (let index = 0; index < context.forms.length; index++) {
22
+ const form = context.forms[index];
23
+ const formType = analyzer.identifyFormType(form, context.currentPath);
24
+ const formLabel = analyzer.describeForm(form, index);
25
+ const validValues = analyzer.planFormValues(form, context.actionableItems);
26
+ if (analyzer.isSearchForm(form)) {
27
+ const searchTests = analyzer.buildSearchTestElements(form, formLabel, context.currentPath, sizeClass, uid, context.currentPageStateId, validValues, context.actionableItems);
28
+ for (const searchTest of searchTests) {
29
+ const searchElement = await api.ensureTestElement(runnerId, surface.id, searchTest);
30
+ await api.createTestElementRun({
31
+ testElementId: searchElement.id,
32
+ testSurfaceRunId: surfaceRun.id,
33
+ });
34
+ }
35
+ continue;
36
+ }
37
+ const positive = analyzer.buildFormTestElement(form, formLabel, formType, context.currentPath, sizeClass, uid, context.currentPageStateId, validValues);
38
+ const positiveElement = await api.ensureTestElement(runnerId, surface.id, positive);
39
+ await api.createTestElementRun({
40
+ testElementId: positiveElement.id,
41
+ testSurfaceRunId: surfaceRun.id,
42
+ });
43
+ for (const field of form.fields.filter((field) => analyzer.isNegativeCandidateField(field))) {
44
+ const negative = analyzer.buildNegativeFormTestElement(form, formLabel, formType, field, context.currentPath, sizeClass, uid, context.currentPageStateId, validValues);
45
+ const negativeElement = await api.ensureTestElement(runnerId, surface.id, negative);
46
+ await api.createTestElementRun({
47
+ testElementId: negativeElement.id,
48
+ testSurfaceRunId: surfaceRun.id,
49
+ });
50
+ const correction = analyzer.buildFormCorrectionTestElement(form, formLabel, formType, field, context.currentPath, sizeClass, uid, context.currentPageStateId, validValues);
51
+ const correctionElement = await api.ensureTestElement(runnerId, surface.id, correction);
52
+ await api.createTestElementRun({
53
+ testElementId: correctionElement.id,
54
+ testSurfaceRunId: surfaceRun.id,
55
+ });
56
+ }
57
+ if (analyzer.isPasswordScenario(formType, form)) {
58
+ const passwordTests = analyzer.buildPasswordTestElements(form, formLabel, formType, context.currentPath, sizeClass, uid, context.currentPageStateId, validValues, analyzer.detectPasswordRequirements(analyzer.extractVisibleText(context.html)));
59
+ for (const passwordTest of passwordTests) {
60
+ const passwordElement = await api.ensureTestElement(runnerId, surface.id, passwordTest);
61
+ await api.createTestElementRun({
62
+ testElementId: passwordElement.id,
63
+ testSurfaceRunId: surfaceRun.id,
64
+ });
65
+ }
66
+ }
67
+ }
68
+ }
69
+ //# sourceMappingURL=forms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/forms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { TestElement } from "@sudobility/testomniac_types";
2
+ import type { AnalyzerContext } from "../types";
3
+ export declare function generateHoverFollowUpCases(analyzer: any, testElement: TestElement, context: AnalyzerContext): Promise<void>;
4
+ //# sourceMappingURL=hover-follow-up.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover-follow-up.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/hover-follow-up.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,GAAG,EACb,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA+Df"}
@@ -0,0 +1,34 @@
1
+ export async function generateHoverFollowUpCases(analyzer, testElement, context) {
2
+ const selector = analyzer.getPrimarySelector(testElement);
3
+ if (!selector || !context.currentPageStateId)
4
+ return;
5
+ const beginningItems = context.beginningPageStateId > 0
6
+ ? await context.api.getItemsByPageState(context.beginningPageStateId)
7
+ : [];
8
+ const beginningKeys = new Set(beginningItems.map(item => analyzer.getItemKey(item)).filter(Boolean));
9
+ const revealedItems = analyzer.selectRepresentativeItems(context.actionableItems.filter((item) => {
10
+ if (!analyzer.isMouseActionable(item))
11
+ return false;
12
+ const key = analyzer.getItemKey(item);
13
+ return Boolean(key) && !beginningKeys.has(key);
14
+ }));
15
+ const hoveredItem = context.actionableItems.find(item => item.selector === selector) ?? null;
16
+ if (revealedItems.length === 0 && hoveredItem) {
17
+ const clickCase = analyzer.buildClickTestElement(hoveredItem, context.currentPath, context.sizeClass, context.uid, context.currentPageStateId, context.currentTestElementId);
18
+ const tc = await context.api.ensureTestElement(context.runnerId, context.currentTestSurfaceId, clickCase);
19
+ await context.api.createTestElementRun({
20
+ testElementId: tc.id,
21
+ testSurfaceRunId: context.currentSurfaceRunId ?? undefined,
22
+ });
23
+ return;
24
+ }
25
+ for (const item of revealedItems) {
26
+ const nextHover = analyzer.buildHoverTestElement(item, context.currentPath, context.sizeClass, context.uid, context.currentPageStateId, context.currentTestElementId);
27
+ const tc = await context.api.ensureTestElement(context.runnerId, context.currentTestSurfaceId, nextHover);
28
+ await context.api.createTestElementRun({
29
+ testElementId: tc.id,
30
+ testSurfaceRunId: context.currentSurfaceRunId ?? undefined,
31
+ });
32
+ }
33
+ }
34
+ //# sourceMappingURL=hover-follow-up.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover-follow-up.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/hover-follow-up.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAAa,EACb,WAAwB,EACxB,OAAwB;IAExB,MAAM,QAAQ,GAAG,QAAQ,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,kBAAkB;QAAE,OAAO;IAErD,MAAM,cAAc,GAClB,OAAO,CAAC,oBAAoB,GAAG,CAAC;QAC9B,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACrE,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACtE,CAAC;IAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,yBAAyB,CACtD,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE;QAC3C,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACpD,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,WAAW,GACf,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC;IAE3E,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,qBAAqB,CAC9C,WAAW,EACX,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,oBAAoB,CAC7B,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAC5C,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,oBAAoB,EAC5B,SAAS,CACV,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;YACrC,aAAa,EAAE,EAAE,CAAC,EAAE;YACpB,gBAAgB,EAAE,OAAO,CAAC,mBAAmB,IAAI,SAAS;SAC3D,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,qBAAqB,CAC9C,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,oBAAoB,CAC7B,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAC5C,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,oBAAoB,EAC5B,SAAS,CACV,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;YACrC,aAAa,EAAE,EAAE,CAAC,EAAE;YACpB,gBAAgB,EAAE,OAAO,CAAC,mBAAmB,IAAI,SAAS;SAC3D,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AnalyzerContext } from "../types";
2
+ export declare function generateKeyboardAndDisclosureTestElements(analyzer: any, context: AnalyzerContext): Promise<void>;
3
+ //# sourceMappingURL=keyboard-disclosure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard-disclosure.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/keyboard-disclosure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,yCAAyC,CAC7D,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAkCf"}
@@ -0,0 +1,30 @@
1
+ export async function generateKeyboardAndDisclosureTestElements(analyzer, context) {
2
+ const tests = analyzer.buildKeyboardAndDisclosureTestElements(context);
3
+ if (tests.length === 0)
4
+ return;
5
+ const { api, runnerId, bundleRun } = context;
6
+ const surface = await api.ensureTestSurface(runnerId, {
7
+ title: `Keyboard: ${context.currentPath}`,
8
+ description: `Keyboard parity and disclosure checks for ${context.currentPath}`,
9
+ startingPageStateId: context.currentPageStateId,
10
+ startingPath: context.currentPath,
11
+ sizeClass: context.sizeClass,
12
+ priority: 3,
13
+ surface_tags: ["keyboard", "disclosure"],
14
+ uid: context.uid,
15
+ });
16
+ context.events.onTestSurfaceCreated({
17
+ surfaceId: surface.id,
18
+ title: surface.title,
19
+ });
20
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
21
+ const surfaceRun = await analyzer.ensureSurfaceRun(api, surface.id, bundleRun.id);
22
+ for (const test of tests) {
23
+ const tc = await api.ensureTestElement(runnerId, surface.id, test);
24
+ await api.createTestElementRun({
25
+ testElementId: tc.id,
26
+ testSurfaceRunId: surfaceRun.id,
27
+ });
28
+ }
29
+ }
30
+ //# sourceMappingURL=keyboard-disclosure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard-disclosure.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/keyboard-disclosure.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,yCAAyC,CAC7D,QAAa,EACb,OAAwB;IAExB,MAAM,KAAK,GAAG,QAAQ,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC;IACvE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE/B,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE;QACpD,KAAK,EAAE,aAAa,OAAO,CAAC,WAAW,EAAE;QACzC,WAAW,EAAE,6CAA6C,OAAO,CAAC,WAAW,EAAE;QAC/E,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;QAC/C,YAAY,EAAE,OAAO,CAAC,WAAW;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;QACxC,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IACH,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,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,GAAG,CAAC,oBAAoB,CAAC;YAC7B,aAAa,EAAE,EAAE,CAAC,EAAE;YACpB,gBAAgB,EAAE,UAAU,CAAC,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AnalyzerContext } from "../types";
2
+ export declare function generateNavigationTestElements(analyzer: any, context: AnalyzerContext): Promise<void>;
3
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +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,8BAA8B,CAClD,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
@@ -0,0 +1,22 @@
1
+ export async function generateNavigationTestElements(analyzer, context) {
2
+ if (context.pageRequiresLogin)
3
+ return;
4
+ const { api, runnerId, sizeClass, uid, navigationSurface, bundleRun } = context;
5
+ const links = analyzer.selectRepresentativeItems(context.actionableItems.filter((item) => item.actionKind === "navigate" && item.href && item.visible));
6
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, navigationSurface.id);
7
+ const surfaceRun = await analyzer.ensureSurfaceRun(api, navigationSurface.id, bundleRun.id);
8
+ for (const link of links) {
9
+ if (!link.href)
10
+ continue;
11
+ const path = analyzer.extractRelativePath(link.href);
12
+ if (!path)
13
+ continue;
14
+ const testElement = analyzer.buildNavigationTestElement(path, sizeClass, uid, context.currentPageStateId);
15
+ const tc = await api.ensureTestElement(runnerId, navigationSurface.id, testElement);
16
+ await api.createTestElementRun({
17
+ testElementId: tc.id,
18
+ testSurfaceRunId: surfaceRun.id,
19
+ });
20
+ }
21
+ }
22
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/navigation.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,QAAa,EACb,OAAwB;IAExB,IAAI,OAAO,CAAC,iBAAiB;QAAE,OAAO;IAEtC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,GACnE,OAAO,CAAC;IACV,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,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,WAAW,GAAG,QAAQ,CAAC,0BAA0B,CACrD,IAAI,EACJ,SAAS,EACT,GAAG,EACH,OAAO,CAAC,kBAAkB,CAC3B,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,iBAAiB,CACpC,QAAQ,EACR,iBAAiB,CAAC,EAAE,EACpB,WAAW,CACZ,CAAC;QACF,MAAM,GAAG,CAAC,oBAAoB,CAAC;YAC7B,aAAa,EAAE,EAAE,CAAC,EAAE;YACpB,gBAAgB,EAAE,UAAU,CAAC,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AnalyzerContext } from "../types";
2
+ export declare function generateRenderTestElements(analyzer: any, context: AnalyzerContext): Promise<void>;
3
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAqCf"}
@@ -0,0 +1,26 @@
1
+ export async function generateRenderTestElements(analyzer, context) {
2
+ const { api, runnerId, sizeClass, uid, bundleRun } = context;
3
+ const surface = await api.ensureTestSurface(runnerId, {
4
+ title: `Render: ${context.currentPath}`,
5
+ description: `Render validation for ${context.currentPath}`,
6
+ startingPageStateId: context.currentPageStateId,
7
+ startingPath: context.currentPath,
8
+ sizeClass,
9
+ priority: 2,
10
+ surface_tags: ["render"],
11
+ uid,
12
+ });
13
+ context.events.onTestSurfaceCreated({
14
+ surfaceId: surface.id,
15
+ title: surface.title,
16
+ });
17
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
18
+ const surfaceRun = await analyzer.ensureSurfaceRun(api, surface.id, bundleRun.id);
19
+ const testElement = analyzer.buildRenderTestElement(context.currentPath, sizeClass, uid, context.currentPageStateId, context.pageId);
20
+ const tc = await api.ensureTestElement(runnerId, surface.id, testElement);
21
+ await api.createTestElementRun({
22
+ testElementId: tc.id,
23
+ testSurfaceRunId: surfaceRun.id,
24
+ });
25
+ }
26
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/render.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAAa,EACb,OAAwB;IAExB,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE7D,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE;QACpD,KAAK,EAAE,WAAW,OAAO,CAAC,WAAW,EAAE;QACvC,WAAW,EAAE,yBAAyB,OAAO,CAAC,WAAW,EAAE;QAC3D,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;QAC/C,YAAY,EAAE,OAAO,CAAC,WAAW;QACjC,SAAS;QACT,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,GAAG;KACJ,CAAC,CAAC;IACH,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,GAAG,QAAQ,CAAC,sBAAsB,CACjD,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,GAAG,EACH,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,MAAM,CACf,CAAC;IACF,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IAC1E,MAAM,GAAG,CAAC,oBAAoB,CAAC;QAC7B,aAAa,EAAE,EAAE,CAAC,EAAE;QACpB,gBAAgB,EAAE,UAAU,CAAC,EAAE;KAChC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AnalyzerContext } from "../types";
2
+ export declare function generateScaffoldTestElements(analyzer: any, context: AnalyzerContext): Promise<void>;
3
+ //# sourceMappingURL=scaffolds.d.ts.map
@@ -0,0 +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,4BAA4B,CAChD,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA0Df"}
@@ -0,0 +1,36 @@
1
+ export async function generateScaffoldTestElements(analyzer, context) {
2
+ const { api, runnerId, sizeClass, uid, bundleRun } = context;
3
+ for (const scaffold of context.scaffolds) {
4
+ const scaffoldItems = analyzer.selectRepresentativeItems(analyzer.getScaffoldSurfaceItems(context, scaffold));
5
+ if (scaffoldItems.length === 0)
6
+ continue;
7
+ const surfaceTitle = `Scaffold: ${scaffold.type}`;
8
+ const surface = await api.ensureTestSurface(runnerId, {
9
+ title: surfaceTitle,
10
+ description: `Tests for ${scaffold.type} scaffold`,
11
+ startingPageStateId: context.currentPageStateId,
12
+ startingPath: context.currentPath,
13
+ sizeClass,
14
+ priority: 3,
15
+ surface_tags: ["scaffold", scaffold.type],
16
+ uid,
17
+ });
18
+ context.events.onTestSurfaceCreated({
19
+ surfaceId: surface.id,
20
+ title: surface.title,
21
+ });
22
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
23
+ const surfaceRun = await analyzer.ensureSurfaceRun(api, surface.id, bundleRun.id);
24
+ for (const item of scaffoldItems) {
25
+ const testElement = analyzer.shouldUseDirectControlInteraction(item)
26
+ ? analyzer.buildControlInteractionTestElement(item, context.currentPath, sizeClass, uid, context.currentPageStateId)
27
+ : analyzer.buildHoverTestElement(item, context.currentPath, sizeClass, uid, context.currentPageStateId);
28
+ const tc = await api.ensureTestElement(runnerId, surface.id, testElement);
29
+ await api.createTestElementRun({
30
+ testElementId: tc.id,
31
+ testSurfaceRunId: surfaceRun.id,
32
+ });
33
+ }
34
+ }
35
+ }
36
+ //# sourceMappingURL=scaffolds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffolds.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/scaffolds.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,QAAa,EACb,OAAwB;IAExB,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE7D,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,QAAQ,CAAC,yBAAyB,CACtD,QAAQ,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CACpD,CAAC;QACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEzC,MAAM,YAAY,GAAG,aAAa,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YACpD,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,aAAa,QAAQ,CAAC,IAAI,WAAW;YAClD,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;YAC/C,YAAY,EAAE,OAAO,CAAC,WAAW;YACjC,SAAS;YACT,QAAQ,EAAE,CAAC;YACX,YAAY,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC;YACzC,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAClC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,MAAM,GAAG,CAAC,uBAAuB,CAC/B,SAAS,CAAC,mBAAmB,EAC7B,OAAO,CAAC,EAAE,CACX,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAChD,GAAG,EACH,OAAO,CAAC,EAAE,EACV,SAAS,CAAC,EAAE,CACb,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,iCAAiC,CAAC,IAAI,CAAC;gBAClE,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CACzC,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,GAAG,EACH,OAAO,CAAC,kBAAkB,CAC3B;gBACH,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAC5B,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,GAAG,EACH,OAAO,CAAC,kBAAkB,CAC3B,CAAC;YACN,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YAC1E,MAAM,GAAG,CAAC,oBAAoB,CAAC;gBAC7B,aAAa,EAAE,EAAE,CAAC,EAAE;gBACpB,gBAAgB,EAAE,UAAU,CAAC,EAAE;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AnalyzerContext } from "../types";
2
+ export declare function generateSemanticJourneyTestElements(analyzer: any, context: AnalyzerContext): Promise<void>;
3
+ //# sourceMappingURL=semantic-journeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-journeys.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/semantic-journeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,mCAAmC,CACvD,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAkCf"}
@@ -0,0 +1,30 @@
1
+ export async function generateSemanticJourneyTestElements(analyzer, context) {
2
+ const journeys = analyzer.buildSemanticJourneyTestElements(context);
3
+ if (journeys.length === 0)
4
+ return;
5
+ const { api, runnerId, bundleRun } = context;
6
+ const surface = await api.ensureTestSurface(runnerId, {
7
+ title: `Journeys: ${context.currentPath}`,
8
+ description: `Semantic multi-step journeys from ${context.currentPath}`,
9
+ startingPageStateId: context.currentPageStateId,
10
+ startingPath: context.currentPath,
11
+ sizeClass: context.sizeClass,
12
+ priority: 2,
13
+ surface_tags: ["e2e", "semantic-journey"],
14
+ uid: context.uid,
15
+ });
16
+ context.events.onTestSurfaceCreated({
17
+ surfaceId: surface.id,
18
+ title: surface.title,
19
+ });
20
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
21
+ const surfaceRun = await analyzer.ensureSurfaceRun(api, surface.id, bundleRun.id);
22
+ for (const journey of journeys) {
23
+ const tc = await api.ensureTestElement(runnerId, surface.id, journey);
24
+ await api.createTestElementRun({
25
+ testElementId: tc.id,
26
+ testSurfaceRunId: surfaceRun.id,
27
+ });
28
+ }
29
+ }
30
+ //# sourceMappingURL=semantic-journeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-journeys.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/semantic-journeys.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,QAAa,EACb,OAAwB;IAExB,MAAM,QAAQ,GAAG,QAAQ,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAElC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE;QACpD,KAAK,EAAE,aAAa,OAAO,CAAC,WAAW,EAAE;QACzC,WAAW,EAAE,qCAAqC,OAAO,CAAC,WAAW,EAAE;QACvE,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;QAC/C,YAAY,EAAE,OAAO,CAAC,WAAW;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC;QACzC,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IACH,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,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACtE,MAAM,GAAG,CAAC,oBAAoB,CAAC;YAC7B,aAAa,EAAE,EAAE,CAAC,EAAE;YACpB,gBAAgB,EAAE,UAAU,CAAC,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AnalyzerContext } from "../types";
2
+ export declare function generateVariantTestElements(analyzer: any, context: AnalyzerContext): Promise<void>;
3
+ //# sourceMappingURL=variants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/variants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAkCf"}
@@ -0,0 +1,30 @@
1
+ export async function generateVariantTestElements(analyzer, context) {
2
+ const tests = analyzer.buildVariantTestElements(context);
3
+ if (tests.length === 0)
4
+ return;
5
+ const { api, runnerId, bundleRun } = context;
6
+ const surface = await api.ensureTestSurface(runnerId, {
7
+ title: `Variants: ${context.currentPath}`,
8
+ description: `Variant and option state checks for ${context.currentPath}`,
9
+ startingPageStateId: context.currentPageStateId,
10
+ startingPath: context.currentPath,
11
+ sizeClass: context.sizeClass,
12
+ priority: 2,
13
+ surface_tags: ["variant", "option"],
14
+ uid: context.uid,
15
+ });
16
+ context.events.onTestSurfaceCreated({
17
+ surfaceId: surface.id,
18
+ title: surface.title,
19
+ });
20
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
21
+ const surfaceRun = await analyzer.ensureSurfaceRun(api, surface.id, bundleRun.id);
22
+ for (const test of tests) {
23
+ const tc = await api.ensureTestElement(runnerId, surface.id, test);
24
+ await api.createTestElementRun({
25
+ testElementId: tc.id,
26
+ testSurfaceRunId: surfaceRun.id,
27
+ });
28
+ }
29
+ }
30
+ //# sourceMappingURL=variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variants.js","sourceRoot":"","sources":["../../../../src/analyzer/page-analyzer/generators/variants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,QAAa,EACb,OAAwB;IAExB,MAAM,KAAK,GAAG,QAAQ,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE/B,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE;QACpD,KAAK,EAAE,aAAa,OAAO,CAAC,WAAW,EAAE;QACzC,WAAW,EAAE,uCAAuC,OAAO,CAAC,WAAW,EAAE;QACzE,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;QAC/C,YAAY,EAAE,OAAO,CAAC,WAAW;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;QACnC,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IACH,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,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,GAAG,CAAC,oBAAoB,CAAC;YAC7B,aAAa,EAAE,EAAE,CAAC,EAAE;YACpB,gBAAgB,EAAE,UAAU,CAAC,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -1,30 +1,6 @@
1
- import type { TestElement, Expectation, ActionableItem, SizeClass, TestSurfaceResponse, TestSurfaceBundleRunResponse, FormInfo, TestStep } from "@sudobility/testomniac_types";
2
- import type { ApiClient } from "../api/client";
3
- import type { DetectedScaffoldRegion } from "../scanner/component-detector";
4
- import type { ScanEventHandler } from "../orchestrator/types";
5
- export interface AnalyzerContext {
6
- runnerId: number;
7
- sizeClass: SizeClass;
8
- uid?: string;
9
- currentTestElementId: number;
10
- currentTestSurfaceId: number;
11
- currentSurfaceRunId: number | null;
12
- html: string;
13
- currentPageStateId: number;
14
- beginningPageStateId: number;
15
- currentPath: string;
16
- pageId: number;
17
- pageRequiresLogin: boolean;
18
- scaffolds: DetectedScaffoldRegion[];
19
- scaffoldSelectorByItemSelector: Record<string, string>;
20
- actionableItems: ActionableItem[];
21
- forms: FormInfo[];
22
- journeySteps: TestStep[];
23
- navigationSurface: TestSurfaceResponse;
24
- bundleRun: TestSurfaceBundleRunResponse;
25
- api: ApiClient;
26
- events: ScanEventHandler;
27
- }
1
+ import type { TestElement, Expectation } from "@sudobility/testomniac_types";
2
+ import type { AnalyzerContext } from "./types";
3
+ export type { AnalyzerContext } from "./types";
28
4
  /**
29
5
  * PageAnalyzer generates expectations and discovers new test elements
30
6
  * during discovery mode.
@@ -40,18 +16,7 @@ export declare class PageAnalyzer {
40
16
  * Called AFTER expertises evaluate and the target page state is established.
41
17
  */
42
18
  generateTestElements(testElement: TestElement, context: AnalyzerContext): Promise<void>;
43
- private generateHoverFollowUpCases;
44
- private generateNavigationTestElements;
45
- private generateScaffoldTestElements;
46
19
  private getScaffoldSurfaceItems;
47
- private generateRenderTestElements;
48
- private generateFormTestElements;
49
- private generateE2ETestElements;
50
- private generateSemanticJourneyTestElements;
51
- private generateDialogLifecycleTestElements;
52
- private generateKeyboardAndDisclosureTestElements;
53
- private generateVariantTestElements;
54
- private generateContentTestElements;
55
20
  private ensureSurfaceRun;
56
21
  private isMouseActionable;
57
22
  private isSurfaceCandidate;
@@ -153,4 +118,4 @@ export declare class PageAnalyzer {
153
118
  private detectPasswordRequirements;
154
119
  private generatePasswordVariants;
155
120
  }
156
- //# sourceMappingURL=page-analyzer.d.ts.map
121
+ //# sourceMappingURL=index.d.ts.map