You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -223,11 +224,13 @@ All docs tests import from `helpers.ts`. Key exports:
223
224
|`highlightOn(locator)`| Add a red dashed outline around an element for visual emphasis. |
224
225
|`highlightOff(locator)`| Remove the highlight outline. |
225
226
|`dismissAllToasts(page)`| Dismiss every visible toast notification (iterate all, not just one). |
226
-
|`pinEntityTimestamps(json)`| Replace `createdAt`/`updatedAt` with `FIXED_ENTITY_TIMESTAMP` in a JSON value.|
227
+
|`pinEntityTimestamps(json)`| Replace `createdAt`/`updatedAt`(and `scheduledAt`/`lastRanAt` for scheduled trackers) with `FIXED_ENTITY_TIMESTAMP` in a JSON value. |
227
228
|`fixEntityTimestamps(page, pattern)`| Set up a route handler that pins timestamps in GET JSON responses matching `pattern`. |
228
229
|`fixResponderRequestFields(page)`| Intercept responder request history API and pin `createdAt`/`clientAddress` to fixed values. |
229
230
|`fixCertificateTemplateValidityDates(page)`| Pin `notValidBefore`/`notValidAfter` to fixed dates while preserving their duration. |
|`fixTrackerExecutionLogs(page)`| Intercept tracker execution log responses and pin `startedAt`/`finishedAt`/phase durations to fixed values. |
233
+
|`fixTrackerHealthDots(page)`| Intercept tracker health summary (`logs_summary`) responses and pin timestamps to fixed values for stable health dot screenshots. |
231
234
232
235
### Screenshot stability
233
236
@@ -285,6 +288,10 @@ Each source of dynamic data needs explicit stabilization in the test code:
285
288
`element.evaluate()` after the UI renders them.
286
289
-**Home page summary**: Intercept `/api/ui/home/summary` and call `pinEntityTimestamps()`
287
290
on `recentItems` to avoid relative time strings.
291
+
-**Tracker execution logs**: Intercept `*/logs` responses and pin `startedAt`/`finishedAt`
292
+
and phase durations with `fixTrackerExecutionLogs(page)`.
293
+
-**Tracker health dots**: Intercept `*/logs_summary` responses and pin timestamps with
294
+
`fixTrackerHealthDots(page)`.
288
295
289
296
General pattern for stabilization - intercept with `page.route()`, call `route.fetch()`
290
297
to get the real response, mutate the JSON, then `route.fulfill({ response, json })`:
0 commit comments