@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 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analyzer/page-analyzer/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,19 @@
1
1
  import { PlaywrightAction, ExpectationType, ExpectationSeverity, } from "@sudobility/testomniac_types";
2
- import { computeHashes } from "../browser/page-utils";
2
+ import { computeHashes } from "../../browser/page-utils";
3
3
  import { createHash } from "node:crypto";
4
- import { fillValuePlanner } from "../planners/fill-value-planner";
5
- import { AUTH_URL_PATTERNS, SIGNUP_URL_PATTERNS } from "../config/constants";
4
+ import { fillValuePlanner } from "../../planners/fill-value-planner";
5
+ import { AUTH_URL_PATTERNS, SIGNUP_URL_PATTERNS } from "../../config/constants";
6
+ import { generateHoverFollowUpCases } from "./generators/hover-follow-up";
7
+ import { generateNavigationTestElements } from "./generators/navigation";
8
+ import { generateScaffoldTestElements } from "./generators/scaffolds";
9
+ import { generateRenderTestElements } from "./generators/render";
10
+ import { generateFormTestElements } from "./generators/forms";
11
+ import { generateE2ETestElements } from "./generators/e2e";
12
+ import { generateSemanticJourneyTestElements } from "./generators/semantic-journeys";
13
+ import { generateDialogLifecycleTestElements } from "./generators/dialogs";
14
+ import { generateKeyboardAndDisclosureTestElements } from "./generators/keyboard-disclosure";
15
+ import { generateVariantTestElements } from "./generators/variants";
16
+ import { generateContentTestElements } from "./generators/content";
6
17
  /**
7
18
  * PageAnalyzer generates expectations and discovers new test elements
8
19
  * during discovery mode.
@@ -51,121 +62,19 @@ export class PageAnalyzer {
51
62
  currentPageStateId,
52
63
  };
53
64
  if (this.isHoverOnly(testElement)) {
54
- await this.generateHoverFollowUpCases(testElement, resolvedContext);
65
+ await generateHoverFollowUpCases(this, testElement, resolvedContext);
55
66
  return;
56
67
  }
57
- // a. Navigation test elements — for every link on the page
58
- await this.generateNavigationTestElements(resolvedContext);
59
- // b. Render test elements — capture render coverage for the page
60
- await this.generateRenderTestElements(resolvedContext);
61
- // c. Form and password test elements — build form workflows from extracted forms
62
- await this.generateFormTestElements(resolvedContext);
63
- // d. Synthetic journey test elements — build generic business flows from common UI verbs
64
- await this.generateSemanticJourneyTestElements(resolvedContext);
65
- // e. Journey test elements — preserve discovered multi-step flows as standalone e2e tests
66
- await this.generateE2ETestElements(resolvedContext);
67
- // f. Dialog lifecycle cases — only when a dialog is already open in the analyzed state
68
- await this.generateDialogLifecycleTestElements(resolvedContext);
69
- // g. Scaffold test elements — for each scaffold's actionable elements
70
- await this.generateScaffoldTestElements(resolvedContext);
71
- // h. Content test elements — for non-scaffold actionable elements
72
- await this.generateContentTestElements(resolvedContext);
73
- // i. Keyboard/disclosure cases
74
- await this.generateKeyboardAndDisclosureTestElements(resolvedContext);
75
- // j. Variant/option cases
76
- await this.generateVariantTestElements(resolvedContext);
77
- }
78
- async generateHoverFollowUpCases(testElement, context) {
79
- const selector = this.getPrimarySelector(testElement);
80
- if (!selector || !context.currentPageStateId)
81
- return;
82
- const beginningItems = context.beginningPageStateId > 0
83
- ? await context.api.getItemsByPageState(context.beginningPageStateId)
84
- : [];
85
- const beginningKeys = new Set(beginningItems.map(item => this.getItemKey(item)).filter(Boolean));
86
- const revealedItems = this.selectRepresentativeItems(context.actionableItems.filter(item => {
87
- if (!this.isMouseActionable(item))
88
- return false;
89
- const key = this.getItemKey(item);
90
- return Boolean(key) && !beginningKeys.has(key);
91
- }));
92
- const hoveredItem = context.actionableItems.find(item => item.selector === selector) ?? null;
93
- if (revealedItems.length === 0 && hoveredItem) {
94
- const clickCase = this.buildClickTestElement(hoveredItem, context.currentPath, context.sizeClass, context.uid, context.currentPageStateId, context.currentTestElementId);
95
- const tc = await context.api.ensureTestElement(context.runnerId, context.currentTestSurfaceId, clickCase);
96
- await context.api.createTestElementRun({
97
- testElementId: tc.id,
98
- testSurfaceRunId: context.currentSurfaceRunId ?? undefined,
99
- });
100
- return;
101
- }
102
- for (const item of revealedItems) {
103
- const nextHover = this.buildHoverTestElement(item, context.currentPath, context.sizeClass, context.uid, context.currentPageStateId, context.currentTestElementId);
104
- const tc = await context.api.ensureTestElement(context.runnerId, context.currentTestSurfaceId, nextHover);
105
- await context.api.createTestElementRun({
106
- testElementId: tc.id,
107
- testSurfaceRunId: context.currentSurfaceRunId ?? undefined,
108
- });
109
- }
110
- }
111
- async generateNavigationTestElements(context) {
112
- if (context.pageRequiresLogin)
113
- return;
114
- const { api, runnerId, sizeClass, uid, navigationSurface, bundleRun } = context;
115
- const links = this.selectRepresentativeItems(context.actionableItems.filter(item => item.actionKind === "navigate" && item.href && item.visible));
116
- // Ensure navigation surface is in the bundle
117
- await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, navigationSurface.id);
118
- // Ensure a surface run exists for the navigation surface under this bundle run
119
- const surfaceRun = await this.ensureSurfaceRun(api, navigationSurface.id, bundleRun.id);
120
- for (const link of links) {
121
- if (!link.href)
122
- continue;
123
- const path = this.extractRelativePath(link.href);
124
- if (!path)
125
- continue;
126
- const testElement = this.buildNavigationTestElement(path, sizeClass, uid, context.currentPageStateId);
127
- const tc = await api.ensureTestElement(runnerId, navigationSurface.id, testElement);
128
- await api.createTestElementRun({
129
- testElementId: tc.id,
130
- testSurfaceRunId: surfaceRun.id,
131
- });
132
- }
133
- }
134
- async generateScaffoldTestElements(context) {
135
- const { api, runnerId, sizeClass, uid, bundleRun } = context;
136
- for (const scaffold of context.scaffolds) {
137
- const scaffoldItems = this.selectRepresentativeItems(this.getScaffoldSurfaceItems(context, scaffold));
138
- if (scaffoldItems.length === 0)
139
- continue;
140
- // Ensure a test surface for this scaffold
141
- const surfaceTitle = `Scaffold: ${scaffold.type}`;
142
- const surface = await api.ensureTestSurface(runnerId, {
143
- title: surfaceTitle,
144
- description: `Tests for ${scaffold.type} scaffold`,
145
- startingPageStateId: context.currentPageStateId,
146
- startingPath: context.currentPath,
147
- sizeClass,
148
- priority: 3,
149
- surface_tags: ["scaffold", scaffold.type],
150
- uid,
151
- });
152
- context.events.onTestSurfaceCreated({
153
- surfaceId: surface.id,
154
- title: surface.title,
155
- });
156
- await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
157
- const surfaceRun = await this.ensureSurfaceRun(api, surface.id, bundleRun.id);
158
- for (const item of scaffoldItems) {
159
- const testElement = this.shouldUseDirectControlInteraction(item)
160
- ? this.buildControlInteractionTestElement(item, context.currentPath, sizeClass, uid, context.currentPageStateId)
161
- : this.buildHoverTestElement(item, context.currentPath, sizeClass, uid, context.currentPageStateId);
162
- const tc = await api.ensureTestElement(runnerId, surface.id, testElement);
163
- await api.createTestElementRun({
164
- testElementId: tc.id,
165
- testSurfaceRunId: surfaceRun.id,
166
- });
167
- }
168
- }
68
+ await generateNavigationTestElements(this, resolvedContext);
69
+ await generateRenderTestElements(this, resolvedContext);
70
+ await generateFormTestElements(this, resolvedContext);
71
+ await generateSemanticJourneyTestElements(this, resolvedContext);
72
+ await generateE2ETestElements(this, resolvedContext);
73
+ await generateDialogLifecycleTestElements(this, resolvedContext);
74
+ await generateScaffoldTestElements(this, resolvedContext);
75
+ await generateContentTestElements(this, resolvedContext);
76
+ await generateKeyboardAndDisclosureTestElements(this, resolvedContext);
77
+ await generateVariantTestElements(this, resolvedContext);
169
78
  }
170
79
  getScaffoldSurfaceItems(context, scaffold) {
171
80
  return context.actionableItems.filter(item => {
@@ -175,284 +84,6 @@ export class PageAnalyzer {
175
84
  scaffold.selector);
176
85
  });
177
86
  }
178
- async generateRenderTestElements(context) {
179
- const { api, runnerId, sizeClass, uid, bundleRun } = context;
180
- const surface = await api.ensureTestSurface(runnerId, {
181
- title: `Render: ${context.currentPath}`,
182
- description: `Render validation for ${context.currentPath}`,
183
- startingPageStateId: context.currentPageStateId,
184
- startingPath: context.currentPath,
185
- sizeClass,
186
- priority: 2,
187
- surface_tags: ["render"],
188
- uid,
189
- });
190
- context.events.onTestSurfaceCreated({
191
- surfaceId: surface.id,
192
- title: surface.title,
193
- });
194
- await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
195
- const surfaceRun = await this.ensureSurfaceRun(api, surface.id, bundleRun.id);
196
- const testElement = this.buildRenderTestElement(context.currentPath, sizeClass, uid, context.currentPageStateId, context.pageId);
197
- const tc = await api.ensureTestElement(runnerId, surface.id, testElement);
198
- await api.createTestElementRun({
199
- testElementId: tc.id,
200
- testSurfaceRunId: surfaceRun.id,
201
- });
202
- }
203
- async generateFormTestElements(context) {
204
- if (context.forms.length === 0)
205
- return;
206
- const { api, runnerId, sizeClass, uid, bundleRun } = context;
207
- const surface = await api.ensureTestSurface(runnerId, {
208
- title: `Forms: ${context.currentPath}`,
209
- description: `Form workflows for ${context.currentPath}`,
210
- startingPageStateId: context.currentPageStateId,
211
- startingPath: context.currentPath,
212
- sizeClass,
213
- priority: 2,
214
- surface_tags: ["form"],
215
- uid,
216
- });
217
- context.events.onTestSurfaceCreated({
218
- surfaceId: surface.id,
219
- title: surface.title,
220
- });
221
- await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
222
- const surfaceRun = await this.ensureSurfaceRun(api, surface.id, bundleRun.id);
223
- for (let index = 0; index < context.forms.length; index++) {
224
- const form = context.forms[index];
225
- const formType = this.identifyFormType(form, context.currentPath);
226
- const formLabel = this.describeForm(form, index);
227
- const validValues = this.planFormValues(form, context.actionableItems);
228
- if (this.isSearchForm(form)) {
229
- const searchTests = this.buildSearchTestElements(form, formLabel, context.currentPath, sizeClass, uid, context.currentPageStateId, validValues, context.actionableItems);
230
- for (const searchTest of searchTests) {
231
- const searchElement = await api.ensureTestElement(runnerId, surface.id, searchTest);
232
- await api.createTestElementRun({
233
- testElementId: searchElement.id,
234
- testSurfaceRunId: surfaceRun.id,
235
- });
236
- }
237
- continue;
238
- }
239
- const positive = this.buildFormTestElement(form, formLabel, formType, context.currentPath, sizeClass, uid, context.currentPageStateId, validValues);
240
- const positiveElement = await api.ensureTestElement(runnerId, surface.id, positive);
241
- await api.createTestElementRun({
242
- testElementId: positiveElement.id,
243
- testSurfaceRunId: surfaceRun.id,
244
- });
245
- for (const field of form.fields.filter(field => this.isNegativeCandidateField(field))) {
246
- const negative = this.buildNegativeFormTestElement(form, formLabel, formType, field, context.currentPath, sizeClass, uid, context.currentPageStateId, validValues);
247
- const negativeElement = await api.ensureTestElement(runnerId, surface.id, negative);
248
- await api.createTestElementRun({
249
- testElementId: negativeElement.id,
250
- testSurfaceRunId: surfaceRun.id,
251
- });
252
- const correction = this.buildFormCorrectionTestElement(form, formLabel, formType, field, context.currentPath, sizeClass, uid, context.currentPageStateId, validValues);
253
- const correctionElement = await api.ensureTestElement(runnerId, surface.id, correction);
254
- await api.createTestElementRun({
255
- testElementId: correctionElement.id,
256
- testSurfaceRunId: surfaceRun.id,
257
- });
258
- }
259
- if (this.isPasswordScenario(formType, form)) {
260
- const passwordTests = this.buildPasswordTestElements(form, formLabel, formType, context.currentPath, sizeClass, uid, context.currentPageStateId, validValues, this.detectPasswordRequirements(this.extractVisibleText(context.html)));
261
- for (const passwordTest of passwordTests) {
262
- const passwordElement = await api.ensureTestElement(runnerId, surface.id, passwordTest);
263
- await api.createTestElementRun({
264
- testElementId: passwordElement.id,
265
- testSurfaceRunId: surfaceRun.id,
266
- });
267
- }
268
- }
269
- }
270
- }
271
- async generateE2ETestElements(context) {
272
- if (context.journeySteps.length < 2)
273
- return;
274
- const { api, runnerId, sizeClass, uid, bundleRun } = context;
275
- const surface = await api.ensureTestSurface(runnerId, {
276
- title: `Journeys: ${context.currentPath}`,
277
- description: `End-to-end journeys reaching ${context.currentPath}`,
278
- startingPageStateId: context.currentPageStateId,
279
- startingPath: context.currentPath,
280
- sizeClass,
281
- priority: 2,
282
- surface_tags: ["e2e"],
283
- uid,
284
- });
285
- context.events.onTestSurfaceCreated({
286
- surfaceId: surface.id,
287
- title: surface.title,
288
- });
289
- await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
290
- const surfaceRun = await this.ensureSurfaceRun(api, surface.id, bundleRun.id);
291
- const e2e = this.buildE2ETestElement(context.currentPath, sizeClass, uid, context.currentPageStateId, context.journeySteps);
292
- const tc = await api.ensureTestElement(runnerId, surface.id, e2e);
293
- await api.createTestElementRun({
294
- testElementId: tc.id,
295
- testSurfaceRunId: surfaceRun.id,
296
- });
297
- }
298
- async generateSemanticJourneyTestElements(context) {
299
- const journeys = this.buildSemanticJourneyTestElements(context);
300
- if (journeys.length === 0)
301
- return;
302
- const { api, runnerId, bundleRun } = context;
303
- const surface = await api.ensureTestSurface(runnerId, {
304
- title: `Journeys: ${context.currentPath}`,
305
- description: `Semantic multi-step journeys from ${context.currentPath}`,
306
- startingPageStateId: context.currentPageStateId,
307
- startingPath: context.currentPath,
308
- sizeClass: context.sizeClass,
309
- priority: 2,
310
- surface_tags: ["e2e", "semantic-journey"],
311
- uid: context.uid,
312
- });
313
- context.events.onTestSurfaceCreated({
314
- surfaceId: surface.id,
315
- title: surface.title,
316
- });
317
- await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
318
- const surfaceRun = await this.ensureSurfaceRun(api, surface.id, bundleRun.id);
319
- for (const journey of journeys) {
320
- const tc = await api.ensureTestElement(runnerId, surface.id, journey);
321
- await api.createTestElementRun({
322
- testElementId: tc.id,
323
- testSurfaceRunId: surfaceRun.id,
324
- });
325
- }
326
- }
327
- async generateDialogLifecycleTestElements(context) {
328
- if (!this.pageHasOpenDialog(context.html))
329
- return;
330
- const closeCandidates = this.selectRepresentativeItems(context.actionableItems.filter(item => item.visible &&
331
- !item.disabled &&
332
- item.selector &&
333
- this.isDialogCloseItem(item)));
334
- const tests = [];
335
- for (const item of closeCandidates) {
336
- tests.push(this.buildDialogCloseTestElement(item, context.currentPath, context.sizeClass, context.uid, context.currentPageStateId));
337
- }
338
- tests.push(this.buildEscapeDialogTestElement(context.currentPath, context.sizeClass, context.uid, context.currentPageStateId));
339
- const { api, runnerId, bundleRun } = context;
340
- const surface = await api.ensureTestSurface(runnerId, {
341
- title: `Dialogs: ${context.currentPath}`,
342
- description: `Dialog lifecycle checks for ${context.currentPath}`,
343
- startingPageStateId: context.currentPageStateId,
344
- startingPath: context.currentPath,
345
- sizeClass: context.sizeClass,
346
- priority: 2,
347
- surface_tags: ["dialog"],
348
- uid: context.uid,
349
- });
350
- context.events.onTestSurfaceCreated({
351
- surfaceId: surface.id,
352
- title: surface.title,
353
- });
354
- await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
355
- const surfaceRun = await this.ensureSurfaceRun(api, surface.id, bundleRun.id);
356
- for (const test of tests) {
357
- const tc = await api.ensureTestElement(runnerId, surface.id, test);
358
- await api.createTestElementRun({
359
- testElementId: tc.id,
360
- testSurfaceRunId: surfaceRun.id,
361
- });
362
- }
363
- }
364
- async generateKeyboardAndDisclosureTestElements(context) {
365
- const tests = this.buildKeyboardAndDisclosureTestElements(context);
366
- if (tests.length === 0)
367
- return;
368
- const { api, runnerId, bundleRun } = context;
369
- const surface = await api.ensureTestSurface(runnerId, {
370
- title: `Keyboard: ${context.currentPath}`,
371
- description: `Keyboard parity and disclosure checks for ${context.currentPath}`,
372
- startingPageStateId: context.currentPageStateId,
373
- startingPath: context.currentPath,
374
- sizeClass: context.sizeClass,
375
- priority: 3,
376
- surface_tags: ["keyboard", "disclosure"],
377
- uid: context.uid,
378
- });
379
- context.events.onTestSurfaceCreated({
380
- surfaceId: surface.id,
381
- title: surface.title,
382
- });
383
- await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
384
- const surfaceRun = await this.ensureSurfaceRun(api, surface.id, bundleRun.id);
385
- for (const test of tests) {
386
- const tc = await api.ensureTestElement(runnerId, surface.id, test);
387
- await api.createTestElementRun({
388
- testElementId: tc.id,
389
- testSurfaceRunId: surfaceRun.id,
390
- });
391
- }
392
- }
393
- async generateVariantTestElements(context) {
394
- const tests = this.buildVariantTestElements(context);
395
- if (tests.length === 0)
396
- return;
397
- const { api, runnerId, bundleRun } = context;
398
- const surface = await api.ensureTestSurface(runnerId, {
399
- title: `Variants: ${context.currentPath}`,
400
- description: `Variant and option state checks for ${context.currentPath}`,
401
- startingPageStateId: context.currentPageStateId,
402
- startingPath: context.currentPath,
403
- sizeClass: context.sizeClass,
404
- priority: 2,
405
- surface_tags: ["variant", "option"],
406
- uid: context.uid,
407
- });
408
- context.events.onTestSurfaceCreated({
409
- surfaceId: surface.id,
410
- title: surface.title,
411
- });
412
- await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
413
- const surfaceRun = await this.ensureSurfaceRun(api, surface.id, bundleRun.id);
414
- for (const test of tests) {
415
- const tc = await api.ensureTestElement(runnerId, surface.id, test);
416
- await api.createTestElementRun({
417
- testElementId: tc.id,
418
- testSurfaceRunId: surfaceRun.id,
419
- });
420
- }
421
- }
422
- async generateContentTestElements(context) {
423
- const { api, runnerId, sizeClass, uid, bundleRun, pageId: _pageId, } = context;
424
- // Content items are those NOT in a scaffold
425
- const contentItems = this.selectRepresentativeItems(context.actionableItems.filter(item => item.scaffoldId == null && this.isSurfaceCandidate(item)));
426
- if (contentItems.length === 0)
427
- return;
428
- const surfaceTitle = `Page: ${context.currentPath}`;
429
- const surface = await api.ensureTestSurface(runnerId, {
430
- title: surfaceTitle,
431
- description: `Tests for page content at ${context.currentPath}`,
432
- startingPageStateId: context.currentPageStateId,
433
- startingPath: context.currentPath,
434
- sizeClass,
435
- priority: 3,
436
- surface_tags: ["page-content"],
437
- uid,
438
- });
439
- context.events.onTestSurfaceCreated({
440
- surfaceId: surface.id,
441
- title: surface.title,
442
- });
443
- await api.ensureBundleSurfaceLink(bundleRun.testSurfaceBundleId, surface.id);
444
- const surfaceRun = await this.ensureSurfaceRun(api, surface.id, bundleRun.id);
445
- for (const item of contentItems) {
446
- const testElement = this.shouldUseDirectControlInteraction(item)
447
- ? this.buildControlInteractionTestElement(item, context.currentPath, sizeClass, uid, context.currentPageStateId)
448
- : this.buildHoverTestElement(item, context.currentPath, sizeClass, uid, context.currentPageStateId);
449
- const tc = await api.ensureTestElement(runnerId, surface.id, testElement);
450
- await api.createTestElementRun({
451
- testElementId: tc.id,
452
- testSurfaceRunId: surfaceRun.id,
453
- });
454
- }
455
- }
456
87
  async ensureSurfaceRun(api, testSurfaceId, bundleRunId) {
457
88
  const openSurfaceRuns = await api.getOpenTestSurfaceRuns(bundleRunId);
458
89
  const existing = openSurfaceRuns.find(surfaceRun => surfaceRun.testSurfaceId === testSurfaceId);
@@ -2550,4 +2181,4 @@ export class PageAnalyzer {
2550
2181
  return variants;
2551
2182
  }
2552
2183
  }
2553
- //# sourceMappingURL=page-analyzer.js.map
2184
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyzer/page-analyzer/index.ts"],"names":[],"mappings":"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"}