@sudobility/testomniac_runner_service 0.1.40 → 0.1.42

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 (84) hide show
  1. package/CLAUDE.md +15 -15
  2. package/dist/analyzer/page-analyzer.d.ts +18 -18
  3. package/dist/analyzer/page-analyzer.d.ts.map +1 -1
  4. package/dist/analyzer/page-analyzer.js +83 -83
  5. package/dist/analyzer/page-analyzer.js.map +1 -1
  6. package/dist/api/client.d.ts +22 -22
  7. package/dist/api/client.d.ts.map +1 -1
  8. package/dist/api/client.js +57 -53
  9. package/dist/api/client.js.map +1 -1
  10. package/dist/detectors/action-description.d.ts +1 -1
  11. package/dist/detectors/action-description.d.ts.map +1 -1
  12. package/dist/detectors/action-description.js +1 -1
  13. package/dist/detectors/action-description.js.map +1 -1
  14. package/dist/detectors/index.d.ts +1 -1
  15. package/dist/detectors/index.d.ts.map +1 -1
  16. package/dist/detectors/index.js +1 -1
  17. package/dist/detectors/index.js.map +1 -1
  18. package/dist/domain/types.d.ts +1 -1
  19. package/dist/domain/types.d.ts.map +1 -1
  20. package/dist/expertise/tester-expertise.d.ts +1 -1
  21. package/dist/expertise/tester-expertise.js +1 -1
  22. package/dist/generation/e2e.d.ts +2 -2
  23. package/dist/generation/e2e.d.ts.map +1 -1
  24. package/dist/generation/e2e.js +3 -3
  25. package/dist/generation/e2e.js.map +1 -1
  26. package/dist/generation/form-negative.d.ts +2 -2
  27. package/dist/generation/form-negative.d.ts.map +1 -1
  28. package/dist/generation/form-negative.js +3 -3
  29. package/dist/generation/form-negative.js.map +1 -1
  30. package/dist/generation/form.d.ts +2 -2
  31. package/dist/generation/form.d.ts.map +1 -1
  32. package/dist/generation/form.js +3 -3
  33. package/dist/generation/form.js.map +1 -1
  34. package/dist/generation/generator.d.ts +2 -2
  35. package/dist/generation/generator.d.ts.map +1 -1
  36. package/dist/generation/generator.js +2 -2
  37. package/dist/generation/generator.js.map +1 -1
  38. package/dist/generation/interaction.d.ts +2 -2
  39. package/dist/generation/interaction.d.ts.map +1 -1
  40. package/dist/generation/interaction.js +3 -3
  41. package/dist/generation/interaction.js.map +1 -1
  42. package/dist/generation/navigation.d.ts +2 -2
  43. package/dist/generation/navigation.d.ts.map +1 -1
  44. package/dist/generation/navigation.js +3 -3
  45. package/dist/generation/navigation.js.map +1 -1
  46. package/dist/generation/password.d.ts +4 -4
  47. package/dist/generation/password.d.ts.map +1 -1
  48. package/dist/generation/password.js +3 -3
  49. package/dist/generation/password.js.map +1 -1
  50. package/dist/generation/playwright-export.d.ts +2 -2
  51. package/dist/generation/playwright-export.d.ts.map +1 -1
  52. package/dist/generation/playwright-export.js +3 -3
  53. package/dist/generation/playwright-export.js.map +1 -1
  54. package/dist/generation/render.d.ts +7 -7
  55. package/dist/generation/render.d.ts.map +1 -1
  56. package/dist/generation/render.js +3 -3
  57. package/dist/generation/render.js.map +1 -1
  58. package/dist/generation/surface-tagger.d.ts +4 -0
  59. package/dist/generation/surface-tagger.d.ts.map +1 -0
  60. package/dist/generation/{suite-tagger.js → surface-tagger.js} +2 -2
  61. package/dist/generation/surface-tagger.js.map +1 -0
  62. package/dist/index.d.ts +5 -5
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +3 -3
  65. package/dist/index.js.map +1 -1
  66. package/dist/orchestrator/runner.d.ts +1 -1
  67. package/dist/orchestrator/runner.d.ts.map +1 -1
  68. package/dist/orchestrator/runner.js +29 -29
  69. package/dist/orchestrator/runner.js.map +1 -1
  70. package/dist/orchestrator/test-element-executor.d.ts +15 -0
  71. package/dist/orchestrator/test-element-executor.d.ts.map +1 -0
  72. package/dist/orchestrator/{test-case-executor.js → test-element-executor.js} +55 -55
  73. package/dist/orchestrator/test-element-executor.js.map +1 -0
  74. package/dist/orchestrator/types.d.ts +4 -4
  75. package/dist/orchestrator/types.d.ts.map +1 -1
  76. package/dist/planners/fill-value-planner.js +1 -1
  77. package/dist/planners/fill-value-planner.js.map +1 -1
  78. package/package.json +3 -3
  79. package/dist/generation/suite-tagger.d.ts +0 -4
  80. package/dist/generation/suite-tagger.d.ts.map +0 -1
  81. package/dist/generation/suite-tagger.js.map +0 -1
  82. package/dist/orchestrator/test-case-executor.d.ts +0 -15
  83. package/dist/orchestrator/test-case-executor.d.ts.map +0 -1
  84. package/dist/orchestrator/test-case-executor.js.map +0 -1
package/CLAUDE.md CHANGED
@@ -6,7 +6,7 @@ Shared execution and discovery library used by Testomniac runner clients.
6
6
 
7
7
  This package owns the active runtime architecture for:
8
8
 
9
- - executing persisted test suites, cases, and case runs
9
+ - executing persisted test surfaces, cases, and element runs
10
10
  - analyzing resulting browser states
11
11
  - generating discovery-time follow-up coverage
12
12
  - evaluating expertises and recording findings
@@ -20,38 +20,38 @@ the runtime entry point.
20
20
 
21
21
  Persistent coverage:
22
22
 
23
- - `test_suite_bundle`
24
- - `test_suite`
25
- - `test_case`
23
+ - `test_surface_bundle`
24
+ - `test_surface`
25
+ - `test_element`
26
26
  - `test_action`
27
27
 
28
28
  Run records:
29
29
 
30
30
  - `test_run`
31
- - `test_suite_bundle_run`
32
- - `test_suite_run`
33
- - `test_case_run`
31
+ - `test_surface_bundle_run`
32
+ - `test_surface_run`
33
+ - `test_element_run`
34
34
  - `test_run_finding`
35
35
 
36
36
  ## Execution Flow
37
37
 
38
38
  1. A client calls `runTestRun()`.
39
39
  2. The runner claims the `test_run`.
40
- 3. It loads the active bundle run and iterates pending suite runs.
41
- 4. For each suite run, it iterates pending case runs whose dependencies are
40
+ 3. It loads the active bundle run and iterates pending surface runs.
41
+ 4. For each surface run, it iterates pending element runs whose dependencies are
42
42
  ready.
43
- 5. `executeTestCase()` navigates, recreates dependency setup when needed,
43
+ 5. `executeTestElement()` navigates, recreates dependency setup when needed,
44
44
  executes actions, gathers runtime artifacts, and runs expertises.
45
45
  6. If the root run is a discovery run, `PageAnalyzer` creates or resolves the
46
46
  target page state and generates follow-up cases and runs.
47
- 7. The runner completes suite runs, bundle runs, and the root test run.
47
+ 7. The runner completes surface runs, bundle runs, and the root test run.
48
48
 
49
49
  ## Discovery Rules
50
50
 
51
- - Every actionable element starts with a hover test case.
51
+ - Every actionable element starts with a hover test element.
52
52
  - After hover:
53
- - if no new actionable items appear, generate a dependent click test case
54
- - if new actionable items appear, generate dependent hover test cases from
53
+ - if no new actionable items appear, generate a dependent click test element
54
+ - if new actionable items appear, generate dependent hover test elements from
55
55
  the hover target page state
56
56
  - `PageAnalyzer` owns target-page-state creation and follow-up case generation.
57
57
  - Expertises do not generate coverage.
@@ -61,7 +61,7 @@ Run records:
61
61
  - [`src/adapter.ts`](src/adapter.ts): browser abstraction
62
62
  - [`src/api/client.ts`](src/api/client.ts): scanner API client
63
63
  - [`src/orchestrator/runner.ts`](src/orchestrator/runner.ts): `runTestRun()`
64
- - [`src/orchestrator/test-case-executor.ts`](src/orchestrator/test-case-executor.ts):
64
+ - [`src/orchestrator/test-element-executor.ts`](src/orchestrator/test-element-executor.ts):
65
65
  single-case execution
66
66
  - [`src/analyzer/page-analyzer.ts`](src/analyzer/page-analyzer.ts):
67
67
  discovery-time target-state and follow-up coverage logic
@@ -1,13 +1,13 @@
1
- import type { TestCase, Expectation, ActionableItem, SizeClass, TestSuiteResponse, TestSuiteBundleRunResponse } from "@sudobility/testomniac_types";
1
+ import type { TestElement, Expectation, ActionableItem, SizeClass, TestSurfaceResponse, TestSurfaceBundleRunResponse } from "@sudobility/testomniac_types";
2
2
  import type { ApiClient } from "../api/client";
3
3
  import type { DetectedScaffoldRegion } from "../scanner/component-detector";
4
4
  export interface AnalyzerContext {
5
5
  runnerId: number;
6
6
  sizeClass: SizeClass;
7
7
  uid?: string;
8
- currentTestCaseId: number;
9
- currentTestSuiteId: number;
10
- currentSuiteRunId: number | null;
8
+ currentTestElementId: number;
9
+ currentTestSurfaceId: number;
10
+ currentSurfaceRunId: number | null;
11
11
  html: string;
12
12
  currentPageStateId: number;
13
13
  beginningPageStateId: number;
@@ -16,35 +16,35 @@ export interface AnalyzerContext {
16
16
  pageRequiresLogin: boolean;
17
17
  scaffolds: DetectedScaffoldRegion[];
18
18
  actionableItems: ActionableItem[];
19
- navigationSuite: TestSuiteResponse;
20
- bundleRun: TestSuiteBundleRunResponse;
19
+ navigationSurface: TestSurfaceResponse;
20
+ bundleRun: TestSurfaceBundleRunResponse;
21
21
  api: ApiClient;
22
22
  }
23
23
  /**
24
- * PageAnalyzer generates expectations and discovers new test cases
24
+ * PageAnalyzer generates expectations and discovers new test elements
25
25
  * during discovery mode.
26
26
  */
27
27
  export declare class PageAnalyzer {
28
28
  /**
29
- * Generate baseline expectations for a test case.
29
+ * Generate baseline expectations for a test element.
30
30
  * Called BEFORE expertises evaluate.
31
31
  */
32
- generateExpectations(testCase: TestCase): Expectation[];
32
+ generateExpectations(testElement: TestElement): Expectation[];
33
33
  /**
34
- * Generate new test cases for scaffolds and page content.
34
+ * Generate new test elements for scaffolds and page content.
35
35
  * Called AFTER expertises evaluate and the target page state is established.
36
36
  */
37
- generateTestCases(testCase: TestCase, context: AnalyzerContext): Promise<void>;
37
+ generateTestElements(testElement: TestElement, context: AnalyzerContext): Promise<void>;
38
38
  private generateHoverFollowUpCases;
39
- private generateNavigationTestCases;
40
- private generateScaffoldTestCases;
41
- private generateContentTestCases;
42
- private ensureSuiteRun;
39
+ private generateNavigationTestElements;
40
+ private generateScaffoldTestElements;
41
+ private generateContentTestElements;
42
+ private ensureSurfaceRun;
43
43
  private isMouseActionable;
44
44
  private extractRelativePath;
45
- private buildNavigationTestCase;
46
- private buildHoverTestCase;
47
- private buildClickTestCase;
45
+ private buildNavigationTestElement;
46
+ private buildHoverTestElement;
47
+ private buildClickTestElement;
48
48
  private isHoverOnly;
49
49
  private getPrimarySelector;
50
50
  private getItemKey;
@@ -1 +1 @@
1
- {"version":3,"file":"page-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/page-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,0BAA0B,EAG3B,MAAM,8BAA8B,CAAC;AAOtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,eAAe,EAAE,iBAAiB,CAAC;IACnC,SAAS,EAAE,0BAA0B,CAAC;IACtC,GAAG,EAAE,SAAS,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,EAAE;IAiCvD;;;OAGG;IACG,iBAAiB,CACrB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC;YAsBF,0BAA0B;YAkE1B,2BAA2B;YA+C3B,yBAAyB;YA6CzB,wBAAwB;YAiDxB,cAAc;IAkB5B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,uBAAuB;IAgC/B,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,UAAU;YAUJ,qBAAqB;CAqCpC"}
1
+ {"version":3,"file":"page-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/page-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,4BAA4B,EAG7B,MAAM,8BAA8B,CAAC;AAOtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,SAAS,EAAE,4BAA4B,CAAC;IACxC,GAAG,EAAE,SAAS,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB;;;OAGG;IACH,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,EAAE;IAiC7D;;;OAGG;IACG,oBAAoB,CACxB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC;YAsBF,0BAA0B;YAkE1B,8BAA8B;YA+C9B,4BAA4B;YAwD5B,2BAA2B;YAwD3B,gBAAgB;IAkB9B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,0BAA0B;IAgClC,OAAO,CAAC,qBAAqB;IAoC7B,OAAO,CAAC,qBAAqB;IAoC7B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,UAAU;YAUJ,qBAAqB;CAqCpC"}
@@ -2,15 +2,15 @@ import { PlaywrightAction, ExpectationType, ExpectationSeverity, } from "@sudobi
2
2
  import { computeHashes } from "../browser/page-utils";
3
3
  import { createHash } from "node:crypto";
4
4
  /**
5
- * PageAnalyzer generates expectations and discovers new test cases
5
+ * PageAnalyzer generates expectations and discovers new test elements
6
6
  * during discovery mode.
7
7
  */
8
8
  export class PageAnalyzer {
9
9
  /**
10
- * Generate baseline expectations for a test case.
10
+ * Generate baseline expectations for a test element.
11
11
  * Called BEFORE expertises evaluate.
12
12
  */
13
- generateExpectations(testCase) {
13
+ generateExpectations(testElement) {
14
14
  const expectations = [
15
15
  {
16
16
  expectationType: ExpectationType.PageLoaded,
@@ -19,9 +19,9 @@ export class PageAnalyzer {
19
19
  playwrightCode: "await expect(page).not.toHaveTitle(/error/i)",
20
20
  },
21
21
  ];
22
- // If test case has only a navigation action, no more expectations
23
- const isNavigationOnly = testCase.steps.length === 1 &&
24
- testCase.steps[0].action.actionType === PlaywrightAction.Goto;
22
+ // If test element has only a navigation action, no more expectations
23
+ const isNavigationOnly = testElement.steps.length === 1 &&
24
+ testElement.steps[0].action.actionType === PlaywrightAction.Goto;
25
25
  if (!isNavigationOnly) {
26
26
  expectations.push({
27
27
  expectationType: ExpectationType.NoConsoleErrors,
@@ -39,28 +39,28 @@ export class PageAnalyzer {
39
39
  return expectations;
40
40
  }
41
41
  /**
42
- * Generate new test cases for scaffolds and page content.
42
+ * Generate new test elements for scaffolds and page content.
43
43
  * Called AFTER expertises evaluate and the target page state is established.
44
44
  */
45
- async generateTestCases(testCase, context) {
45
+ async generateTestElements(testElement, context) {
46
46
  const currentPageStateId = await this.ensureTargetPageState(context);
47
47
  const resolvedContext = {
48
48
  ...context,
49
49
  currentPageStateId,
50
50
  };
51
- if (this.isHoverOnly(testCase)) {
52
- await this.generateHoverFollowUpCases(testCase, resolvedContext);
51
+ if (this.isHoverOnly(testElement)) {
52
+ await this.generateHoverFollowUpCases(testElement, resolvedContext);
53
53
  return;
54
54
  }
55
- // a. Navigation test cases — for every link on the page
56
- await this.generateNavigationTestCases(resolvedContext);
57
- // b. Scaffold test cases — for each scaffold's actionable elements
58
- await this.generateScaffoldTestCases(resolvedContext);
59
- // c. Content test cases — for non-scaffold actionable elements
60
- await this.generateContentTestCases(resolvedContext);
55
+ // a. Navigation test elements — for every link on the page
56
+ await this.generateNavigationTestElements(resolvedContext);
57
+ // b. Scaffold test elements — for each scaffold's actionable elements
58
+ await this.generateScaffoldTestElements(resolvedContext);
59
+ // c. Content test elements — for non-scaffold actionable elements
60
+ await this.generateContentTestElements(resolvedContext);
61
61
  }
62
- async generateHoverFollowUpCases(testCase, context) {
63
- const selector = this.getPrimarySelector(testCase);
62
+ async generateHoverFollowUpCases(testElement, context) {
63
+ const selector = this.getPrimarySelector(testElement);
64
64
  if (!selector || !context.currentPageStateId)
65
65
  return;
66
66
  const beginningItems = context.beginningPageStateId > 0
@@ -75,114 +75,114 @@ export class PageAnalyzer {
75
75
  });
76
76
  const hoveredItem = context.actionableItems.find(item => item.selector === selector) ?? null;
77
77
  if (revealedItems.length === 0 && hoveredItem) {
78
- const clickCase = this.buildClickTestCase(hoveredItem, context.currentPath, context.sizeClass, context.uid, context.currentPageStateId, context.currentTestCaseId);
79
- const tc = await context.api.ensureTestCase(context.runnerId, context.currentTestSuiteId, clickCase);
80
- await context.api.createTestCaseRun({
81
- testCaseId: tc.id,
82
- testSuiteRunId: context.currentSuiteRunId ?? undefined,
78
+ const clickCase = this.buildClickTestElement(hoveredItem, context.currentPath, context.sizeClass, context.uid, context.currentPageStateId, context.currentTestElementId);
79
+ const tc = await context.api.ensureTestElement(context.runnerId, context.currentTestSurfaceId, clickCase);
80
+ await context.api.createTestElementRun({
81
+ testElementId: tc.id,
82
+ testSurfaceRunId: context.currentSurfaceRunId ?? undefined,
83
83
  });
84
84
  return;
85
85
  }
86
86
  for (const item of revealedItems) {
87
- const nextHover = this.buildHoverTestCase(item, context.currentPath, context.sizeClass, context.uid, context.currentPageStateId, context.currentTestCaseId);
88
- const tc = await context.api.ensureTestCase(context.runnerId, context.currentTestSuiteId, nextHover);
89
- await context.api.createTestCaseRun({
90
- testCaseId: tc.id,
91
- testSuiteRunId: context.currentSuiteRunId ?? undefined,
87
+ const nextHover = this.buildHoverTestElement(item, context.currentPath, context.sizeClass, context.uid, context.currentPageStateId, context.currentTestElementId);
88
+ const tc = await context.api.ensureTestElement(context.runnerId, context.currentTestSurfaceId, nextHover);
89
+ await context.api.createTestElementRun({
90
+ testElementId: tc.id,
91
+ testSurfaceRunId: context.currentSurfaceRunId ?? undefined,
92
92
  });
93
93
  }
94
94
  }
95
- async generateNavigationTestCases(context) {
95
+ async generateNavigationTestElements(context) {
96
96
  if (context.pageRequiresLogin)
97
97
  return;
98
- const { api, runnerId, sizeClass, uid, navigationSuite, bundleRun } = context;
98
+ const { api, runnerId, sizeClass, uid, navigationSurface, bundleRun } = context;
99
99
  const links = context.actionableItems.filter(item => item.actionKind === "navigate" && item.href && item.visible);
100
- // Ensure navigation suite is in the bundle
101
- await api.ensureBundleSuiteLink(bundleRun.testSuiteBundleId, navigationSuite.id);
102
- // Ensure a suite run exists for the navigation suite under this bundle run
103
- const suiteRun = await this.ensureSuiteRun(api, navigationSuite.id, bundleRun.id);
100
+ // Ensure navigation surface is in the bundle
101
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, navigationSurface.id);
102
+ // Ensure a surface run exists for the navigation surface under this bundle run
103
+ const surfaceRun = await this.ensureSurfaceRun(api, navigationSurface.id, bundleRun.id);
104
104
  for (const link of links) {
105
105
  if (!link.href)
106
106
  continue;
107
107
  const path = this.extractRelativePath(link.href);
108
108
  if (!path)
109
109
  continue;
110
- const testCase = this.buildNavigationTestCase(path, sizeClass, uid, context.currentPageStateId);
111
- const tc = await api.ensureTestCase(runnerId, navigationSuite.id, testCase);
112
- await api.createTestCaseRun({
113
- testCaseId: tc.id,
114
- testSuiteRunId: suiteRun.id,
110
+ const testElement = this.buildNavigationTestElement(path, sizeClass, uid, context.currentPageStateId);
111
+ const tc = await api.ensureTestElement(runnerId, navigationSurface.id, testElement);
112
+ await api.createTestElementRun({
113
+ testElementId: tc.id,
114
+ testSurfaceRunId: surfaceRun.id,
115
115
  });
116
116
  }
117
117
  }
118
- async generateScaffoldTestCases(context) {
118
+ async generateScaffoldTestElements(context) {
119
119
  const { api, runnerId, sizeClass, uid, bundleRun } = context;
120
120
  for (const scaffold of context.scaffolds) {
121
121
  // Find actionable items belonging to this scaffold
122
122
  const scaffoldItems = context.actionableItems.filter(item => item.scaffoldId != null && this.isMouseActionable(item));
123
123
  if (scaffoldItems.length === 0)
124
124
  continue;
125
- // Ensure a test suite for this scaffold
126
- const suiteTitle = `Scaffold: ${scaffold.type}`;
127
- const suite = await api.ensureTestSuite(runnerId, {
128
- title: suiteTitle,
125
+ // Ensure a test surface for this scaffold
126
+ const surfaceTitle = `Scaffold: ${scaffold.type}`;
127
+ const surface = await api.ensureTestSurface(runnerId, {
128
+ title: surfaceTitle,
129
129
  description: `Tests for ${scaffold.type} scaffold`,
130
130
  startingPageStateId: context.currentPageStateId,
131
131
  startingPath: context.currentPath,
132
132
  sizeClass,
133
133
  priority: 3,
134
- suite_tags: ["scaffold", scaffold.type],
134
+ surface_tags: ["scaffold", scaffold.type],
135
135
  uid,
136
136
  });
137
- await api.ensureBundleSuiteLink(bundleRun.testSuiteBundleId, suite.id);
138
- const suiteRun = await this.ensureSuiteRun(api, suite.id, bundleRun.id);
137
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
138
+ const surfaceRun = await this.ensureSurfaceRun(api, surface.id, bundleRun.id);
139
139
  for (const item of scaffoldItems) {
140
- const testCase = this.buildHoverTestCase(item, context.currentPath, sizeClass, uid, context.currentPageStateId);
141
- const tc = await api.ensureTestCase(runnerId, suite.id, testCase);
142
- await api.createTestCaseRun({
143
- testCaseId: tc.id,
144
- testSuiteRunId: suiteRun.id,
140
+ const testElement = this.buildHoverTestElement(item, context.currentPath, sizeClass, uid, context.currentPageStateId);
141
+ const tc = await api.ensureTestElement(runnerId, surface.id, testElement);
142
+ await api.createTestElementRun({
143
+ testElementId: tc.id,
144
+ testSurfaceRunId: surfaceRun.id,
145
145
  });
146
146
  }
147
147
  }
148
148
  }
149
- async generateContentTestCases(context) {
149
+ async generateContentTestElements(context) {
150
150
  const { api, runnerId, sizeClass, uid, bundleRun, pageId: _pageId, } = context;
151
151
  // Content items are those NOT in a scaffold
152
152
  const contentItems = context.actionableItems.filter(item => item.scaffoldId == null && this.isMouseActionable(item));
153
153
  if (contentItems.length === 0)
154
154
  return;
155
- const suiteTitle = `Page: ${context.currentPath}`;
156
- const suite = await api.ensureTestSuite(runnerId, {
157
- title: suiteTitle,
155
+ const surfaceTitle = `Page: ${context.currentPath}`;
156
+ const surface = await api.ensureTestSurface(runnerId, {
157
+ title: surfaceTitle,
158
158
  description: `Tests for page content at ${context.currentPath}`,
159
159
  startingPageStateId: context.currentPageStateId,
160
160
  startingPath: context.currentPath,
161
161
  sizeClass,
162
162
  priority: 3,
163
- suite_tags: ["page-content"],
163
+ surface_tags: ["page-content"],
164
164
  uid,
165
165
  });
166
- await api.ensureBundleSuiteLink(bundleRun.testSuiteBundleId, suite.id);
167
- const suiteRun = await this.ensureSuiteRun(api, suite.id, bundleRun.id);
166
+ await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
167
+ const surfaceRun = await this.ensureSurfaceRun(api, surface.id, bundleRun.id);
168
168
  for (const item of contentItems) {
169
- const testCase = this.buildHoverTestCase(item, context.currentPath, sizeClass, uid, context.currentPageStateId);
170
- const tc = await api.ensureTestCase(runnerId, suite.id, testCase);
171
- await api.createTestCaseRun({
172
- testCaseId: tc.id,
173
- testSuiteRunId: suiteRun.id,
169
+ const testElement = this.buildHoverTestElement(item, context.currentPath, sizeClass, uid, context.currentPageStateId);
170
+ const tc = await api.ensureTestElement(runnerId, surface.id, testElement);
171
+ await api.createTestElementRun({
172
+ testElementId: tc.id,
173
+ testSurfaceRunId: surfaceRun.id,
174
174
  });
175
175
  }
176
176
  }
177
- async ensureSuiteRun(api, testSuiteId, bundleRunId) {
178
- const openSuiteRuns = await api.getOpenTestSuiteRuns(bundleRunId);
179
- const existing = openSuiteRuns.find(suiteRun => suiteRun.testSuiteId === testSuiteId);
177
+ async ensureSurfaceRun(api, testSurfaceId, bundleRunId) {
178
+ const openSurfaceRuns = await api.getOpenTestSurfaceRuns(bundleRunId);
179
+ const existing = openSurfaceRuns.find(surfaceRun => surfaceRun.testSurfaceId === testSurfaceId);
180
180
  if (existing) {
181
181
  return existing;
182
182
  }
183
- return api.createTestSuiteRun({
184
- testSuiteId,
185
- testSuiteBundleRunId: bundleRunId,
183
+ return api.createTestSurfaceRun({
184
+ testSurfaceId,
185
+ testSurfaceBundleRunId: bundleRunId,
186
186
  });
187
187
  }
188
188
  isMouseActionable(item) {
@@ -199,12 +199,12 @@ export class PageAnalyzer {
199
199
  return null;
200
200
  }
201
201
  }
202
- buildNavigationTestCase(path, sizeClass, uid, startingPageStateId) {
202
+ buildNavigationTestElement(path, sizeClass, uid, startingPageStateId) {
203
203
  return {
204
204
  title: `Navigate to ${path}`,
205
205
  type: "navigation",
206
206
  sizeClass,
207
- suite_tags: ["navigation"],
207
+ surface_tags: ["navigation"],
208
208
  priority: 3,
209
209
  startingPageStateId,
210
210
  startingPath: path,
@@ -225,15 +225,15 @@ export class PageAnalyzer {
225
225
  uid,
226
226
  };
227
227
  }
228
- buildHoverTestCase(item, startingPath, sizeClass, uid, startingPageStateId, dependencyTestCaseId) {
228
+ buildHoverTestElement(item, startingPath, sizeClass, uid, startingPageStateId, dependencyTestElementId) {
229
229
  const label = item.accessibleName || item.textContent || item.selector;
230
230
  return {
231
231
  title: `Hover over ${label}`,
232
232
  type: "interaction",
233
233
  sizeClass,
234
- suite_tags: ["interaction", "hover"],
234
+ surface_tags: ["interaction", "hover"],
235
235
  priority: 4,
236
- dependencyTestCaseId,
236
+ dependencyTestElementId,
237
237
  startingPageStateId,
238
238
  startingPath,
239
239
  steps: [
@@ -253,15 +253,15 @@ export class PageAnalyzer {
253
253
  uid,
254
254
  };
255
255
  }
256
- buildClickTestCase(item, startingPath, sizeClass, uid, startingPageStateId, dependencyTestCaseId) {
256
+ buildClickTestElement(item, startingPath, sizeClass, uid, startingPageStateId, dependencyTestElementId) {
257
257
  const label = item.accessibleName || item.textContent || item.selector;
258
258
  return {
259
259
  title: `Click ${label}`,
260
260
  type: "interaction",
261
261
  sizeClass,
262
- suite_tags: ["interaction", "click"],
262
+ surface_tags: ["interaction", "click"],
263
263
  priority: 5,
264
- dependencyTestCaseId,
264
+ dependencyTestElementId,
265
265
  startingPageStateId,
266
266
  startingPath,
267
267
  steps: [
@@ -281,12 +281,12 @@ export class PageAnalyzer {
281
281
  uid,
282
282
  };
283
283
  }
284
- isHoverOnly(testCase) {
285
- return (testCase.steps.length === 1 &&
286
- testCase.steps[0].action.actionType === PlaywrightAction.Hover);
284
+ isHoverOnly(testElement) {
285
+ return (testElement.steps.length === 1 &&
286
+ testElement.steps[0].action.actionType === PlaywrightAction.Hover);
287
287
  }
288
- getPrimarySelector(testCase) {
289
- const step = testCase.steps[0];
288
+ getPrimarySelector(testElement) {
289
+ const step = testElement.steps[0];
290
290
  return step?.action.path ?? null;
291
291
  }
292
292
  getItemKey(item) {
@@ -1 +1 @@
1
- {"version":3,"file":"page-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/page-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/page-analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { UpdateTestRunStatsRequest, CompleteTestRunRequest, RunnerResponse, PageResponse, CreatePageStateRequest, PageStateResponse, ActionableItemResponse, PersonaResponse, UseCaseResponse, InputValueResponse, FormResponse, TestCaseResponse, CreateTestRunRequest, TestRunResponse, CreateTestCaseRunRequest, TestCaseRunResponse, CompleteTestCaseRunRequest, CreateTestSuiteRunRequest, CompleteTestSuiteRunRequest, TestSuiteRunResponse, CreateTestSuiteBundleRunRequest, CompleteTestSuiteBundleRunRequest, TestSuiteBundleRunResponse, TestSuiteBundleResponse, TestSuiteBundleSuiteLinkResponse, CreateReportEmailRequest, HtmlElementResponse, ScaffoldResponse, FindOrCreateScaffoldRequest, PageHashes, DecomposedPageHashes, ActionableItem, TestCase, LegacyTestCase, FormInfo, CreateElementIdentityRequest, UpdateElementIdentityRequest, ElementIdentityResponse, PageStatePatternResponse, UiPattern, CreateTestActionRequest, TestActionResponse, CreateTestRunFindingRequest, TestRunFindingResponse, ExpertiseResponse, CreateExpertiseRequest, ExpertiseRuleResponse, CreateExpertiseRuleRequest, TestSuite, TestSuiteResponse } from "@sudobility/testomniac_types";
1
+ import type { UpdateTestRunStatsRequest, CompleteTestRunRequest, RunnerResponse, PageResponse, CreatePageStateRequest, PageStateResponse, ActionableItemResponse, PersonaResponse, UseCaseResponse, InputValueResponse, FormResponse, TestElementResponse, CreateTestRunRequest, TestRunResponse, CreateTestElementRunRequest, TestElementRunResponse, CompleteTestElementRunRequest, CreateTestSurfaceRunRequest, CompleteTestSurfaceRunRequest, TestSurfaceRunResponse, CreateTestSurfaceBundleRunRequest, CompleteTestSurfaceBundleRunRequest, TestSurfaceBundleRunResponse, TestSurfaceBundleResponse, TestSurfaceBundleSurfaceLinkResponse, CreateReportEmailRequest, HtmlElementResponse, ScaffoldResponse, FindOrCreateScaffoldRequest, PageHashes, DecomposedPageHashes, ActionableItem, TestElement, LegacyTestElement, FormInfo, CreateElementIdentityRequest, UpdateElementIdentityRequest, ElementIdentityResponse, PageStatePatternResponse, UiPattern, CreateTestActionRequest, TestActionResponse, CreateTestRunFindingRequest, TestRunFindingResponse, ExpertiseResponse, CreateExpertiseRequest, ExpertiseRuleResponse, CreateExpertiseRuleRequest, TestSurface, TestSurfaceResponse } from "@sudobility/testomniac_types";
2
2
  type CompleteRunPayload = CompleteTestRunRequest;
3
3
  export declare class ApiClient {
4
4
  private baseUrl;
@@ -13,8 +13,8 @@ export declare class ApiClient {
13
13
  updateTestRunStats(testRunId: number, stats: UpdateTestRunStatsRequest): Promise<void>;
14
14
  completeTestRun(testRunId: number, payload: CompleteRunPayload): Promise<void>;
15
15
  createTestRun(request: CreateTestRunRequest): Promise<TestRunResponse>;
16
- createTestCaseRun(request: CreateTestCaseRunRequest): Promise<TestCaseRunResponse>;
17
- completeTestCaseRun(testCaseRunId: number, payload: CompleteTestCaseRunRequest): Promise<void>;
16
+ createTestElementRun(request: CreateTestElementRunRequest): Promise<TestElementRunResponse>;
17
+ completeTestElementRun(testElementRunId: number, payload: CompleteTestElementRunRequest): Promise<void>;
18
18
  getRunner(id: number): Promise<RunnerResponse | null>;
19
19
  getPage(id: number): Promise<PageResponse | null>;
20
20
  findOrCreatePage(runnerId: number, relativePath: string): Promise<PageResponse>;
@@ -95,18 +95,18 @@ export declare class ApiClient {
95
95
  getInputValuesByUseCase(useCaseId: number): Promise<InputValueResponse[]>;
96
96
  insertForm(pageStateId: number, form: FormInfo, formType?: string): Promise<FormResponse>;
97
97
  getFormsByPageState(pageStateId: number): Promise<FormResponse[]>;
98
- insertTestCase(runnerId: number, testCase: TestCase | LegacyTestCase, testSuiteId?: number): Promise<TestCaseResponse>;
99
- getTestCasesByRunner(runnerId: number): Promise<TestCaseResponse[]>;
98
+ insertTestElement(runnerId: number, testElement: TestElement | LegacyTestElement, testSurfaceId?: number): Promise<TestElementResponse>;
99
+ getTestElementsByRunner(runnerId: number): Promise<TestElementResponse[]>;
100
100
  createTestAction(params: CreateTestActionRequest): Promise<TestActionResponse>;
101
- getTestActionsByCase(testCaseId: number): Promise<TestActionResponse[]>;
101
+ getTestActionsByCase(testElementId: number): Promise<TestActionResponse[]>;
102
102
  createTestRunFinding(params: CreateTestRunFindingRequest): Promise<TestRunFindingResponse>;
103
103
  getExpertises(): Promise<ExpertiseResponse[]>;
104
104
  getExpertiseRules(expertiseId: number): Promise<ExpertiseRuleResponse[]>;
105
105
  createExpertise(params: CreateExpertiseRequest): Promise<ExpertiseResponse>;
106
106
  createExpertiseRule(params: CreateExpertiseRuleRequest): Promise<ExpertiseRuleResponse>;
107
- insertTestSuite(runnerId: number, testSuite: TestSuite): Promise<TestSuiteResponse>;
108
- getTestSuitesByRunner(runnerId: number): Promise<TestSuiteResponse[]>;
109
- getTestSuite(id: number): Promise<TestSuiteResponse | null>;
107
+ insertTestSurface(runnerId: number, testSurface: TestSurface): Promise<TestSurfaceResponse>;
108
+ getTestSurfacesByRunner(runnerId: number): Promise<TestSurfaceResponse[]>;
109
+ getTestSurface(id: number): Promise<TestSurfaceResponse | null>;
110
110
  createReportEmail(params: CreateReportEmailRequest): Promise<void>;
111
111
  findOrCreateHtmlElement(html: string, hash: string): Promise<HtmlElementResponse>;
112
112
  findOrCreateScaffold(params: FindOrCreateScaffoldRequest): Promise<ScaffoldResponse>;
@@ -118,20 +118,20 @@ export declare class ApiClient {
118
118
  findOrCreateElementIdentity(params: CreateElementIdentityRequest): Promise<ElementIdentityResponse>;
119
119
  getElementIdentitiesByRunner(runnerId: number): Promise<ElementIdentityResponse[]>;
120
120
  updateElementIdentity(id: number, params: UpdateElementIdentityRequest): Promise<void>;
121
- ensureTestSuiteBundle(runnerId: number, title: string, uid?: string): Promise<TestSuiteBundleResponse>;
122
- ensureTestSuite(runnerId: number, testSuite: TestSuite): Promise<TestSuiteResponse>;
123
- ensureTestCase(runnerId: number, testSuiteId: number, testCase: TestCase): Promise<TestCaseResponse>;
124
- ensureBundleSuiteLink(testSuiteBundleId: number, testSuiteId: number): Promise<TestSuiteBundleSuiteLinkResponse>;
121
+ ensureTestSurfaceBundle(runnerId: number, title: string, uid?: string): Promise<TestSurfaceBundleResponse>;
122
+ ensureTestSurface(runnerId: number, testSurface: TestSurface): Promise<TestSurfaceResponse>;
123
+ ensureTestElement(runnerId: number, testSurfaceId: number, testElement: TestElement): Promise<TestElementResponse>;
124
+ ensureBundleSurfaceLink(testSurfaceBundleId: number, testSurfaceId: number): Promise<TestSurfaceBundleSurfaceLinkResponse>;
125
125
  claimTestRun(testRunId: number, runnerInstanceId: string, runnerInstanceName: string): Promise<boolean>;
126
- createTestSuiteRun(request: CreateTestSuiteRunRequest): Promise<TestSuiteRunResponse>;
127
- completeTestSuiteRun(id: number, payload: CompleteTestSuiteRunRequest): Promise<void>;
128
- createTestSuiteBundleRun(request: CreateTestSuiteBundleRunRequest): Promise<TestSuiteBundleRunResponse>;
129
- getTestSuiteBundleRun(id: number): Promise<TestSuiteBundleRunResponse | null>;
130
- completeTestSuiteBundleRun(id: number, payload: CompleteTestSuiteBundleRunRequest): Promise<void>;
131
- getTestCasesByTestSuite(testSuiteId: number): Promise<TestCaseResponse[]>;
132
- getTestSuitesByBundle(bundleId: number): Promise<TestSuiteResponse[]>;
133
- getOpenTestCaseRuns(testSuiteRunId: number): Promise<TestCaseRunResponse[]>;
134
- getOpenTestSuiteRuns(bundleRunId: number): Promise<TestSuiteRunResponse[]>;
126
+ createTestSurfaceRun(request: CreateTestSurfaceRunRequest): Promise<TestSurfaceRunResponse>;
127
+ completeTestSurfaceRun(id: number, payload: CompleteTestSurfaceRunRequest): Promise<void>;
128
+ createTestSurfaceBundleRun(request: CreateTestSurfaceBundleRunRequest): Promise<TestSurfaceBundleRunResponse>;
129
+ getTestSurfaceBundleRun(id: number): Promise<TestSurfaceBundleRunResponse | null>;
130
+ completeTestSurfaceBundleRun(id: number, payload: CompleteTestSurfaceBundleRunRequest): Promise<void>;
131
+ getTestElementsByTestSurface(testSurfaceId: number): Promise<TestElementResponse[]>;
132
+ getTestSurfacesByBundle(bundleId: number): Promise<TestSurfaceResponse[]>;
133
+ getOpenTestElementRuns(testSurfaceRunId: number): Promise<TestElementRunResponse[]>;
134
+ getOpenTestSurfaceRuns(bundleRunId: number): Promise<TestSurfaceRunResponse[]>;
135
135
  }
136
136
  export declare function getApiClient(baseUrl?: string, apiKey?: string): ApiClient;
137
137
  export {};