@andwhy/e2e-pipeline 0.14.4 → 0.14.6

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@andwhy/e2e-pipeline",
3
- "version": "0.14.4",
3
+ "version": "0.14.6",
4
4
  "description": "Scaffolds the full e2e testing pipeline: agent-assisted Playwright tests, CI runs against Vercel previews, and Checkly monitors that follow production deploys",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "e2e-pipeline",
3
3
  "displayName": "&why e2e pipeline",
4
- "version": "0.14.4",
4
+ "version": "0.14.6",
5
5
  "description": "Agent-assisted Playwright e2e tests: planner, generator and healer agents plus the playwright-test-pipeline skill that drives Plan → Generate → Heal, Checkly preview validation and deployment.",
6
6
  "author": {
7
7
  "name": "&why",
@@ -7,7 +7,7 @@ description: Guides the full workflow for creating and maintaining Playwright
7
7
  tests, asks to "test" a page/feature/flow, or asks how the test pipeline
8
8
  works.
9
9
  metadata:
10
- version: "0.14.4"
10
+ version: "0.14.6"
11
11
  ---
12
12
 
13
13
  # Playwright Test Pipeline
@@ -512,15 +512,15 @@ Set up once per project:
512
512
  7. Dry run: GitHub → Actions → "Checkly auto-heal" → Run workflow, with the
513
513
  suite's check name. Confirm the run completes and the message shows up in
514
514
  the e2e channel and, via the rule, in the project channel (a passing
515
- check should end as "not reproducible" — summary only, no message — so a
516
- real dry run is easiest right after any genuine failure).
515
+ check ends as "not reproducible", posted as a short info message).
517
516
 
518
517
  What the user should expect afterwards: a failing monitor produces either a
519
518
  `checkly-heal` PR plus a Slack note (stale or flaky test — **review
520
519
  required, the PR is never merged automatically**; PRs carrying app-side test
521
520
  hooks say so and point at their preview run for validation), or a Slack
522
521
  escalation (regression, fix needs a behavioral app change, agent failed). A
523
- transient blip that doesn't reproduce stays silent by design.
522
+ failure that passes on re-run gets a short info message and nothing else;
523
+ the same check showing up there repeatedly is the cue to look at it.
524
524
 
525
525
  ## Checkly auto-heal (CI, not this session)
526
526
 
@@ -87,6 +87,9 @@ BASE_URL=<production-url> pnpm playwright test <failing-spec> --project=Chrome -
87
87
  immediately — no repeat runs, no wider investigation. Checkly saw it fail
88
88
  and it passes now, so the blip was transient; a genuinely unstable test
89
89
  will alert again, and that repetition is the signal a human acts on.
90
+ The summary is all the Slack message shows: if you saw something that
91
+ makes such blips fail the check (retries off in the monitor, a fragile
92
+ wait), name it there in a second sentence.
90
93
 
91
94
  ### 3. Triage — before any edit
92
95
 
@@ -1,5 +1,9 @@
1
1
  import { defineConfig, devices } from "@playwright/test";
2
2
 
3
+ // Checkly sets CHECKLY=1 but not CI. Without this, monitors run with the
4
+ // local settings: no retries, so one stalled page load fails the check.
5
+ const isCI = !!process.env.CI || process.env.CHECKLY === "1";
6
+
3
7
  export default defineConfig({
4
8
  // e2e specs live here so other suites elsewhere under tests/ are not picked
5
9
  // up. If the repo already has such a suite (unit, a11y), give it its own
@@ -9,9 +13,9 @@ export default defineConfig({
9
13
  // Seeds are run directly by the Playwright MCP, not as tests of their own.
10
14
  testIgnore: "**/seed.spec.*",
11
15
  fullyParallel: true,
12
- forbidOnly: !!process.env.CI,
13
- retries: process.env.CI ? 2 : 0,
14
- workers: process.env.CI ? 1 : undefined,
16
+ forbidOnly: isCI,
17
+ retries: isCI ? 2 : 0,
18
+ workers: isCI ? 1 : undefined,
15
19
  reporter: "html",
16
20
  use: {
17
21
  baseURL: process.env.BASE_URL ?? "http://localhost:3000",
@@ -1,5 +1,9 @@
1
1
  import { defineConfig, devices } from "@playwright/test";
2
2
 
3
+ // Checkly sets CHECKLY=1 but not CI. Without this, monitors run with the
4
+ // local settings: no retries, so one stalled page load fails the check.
5
+ const isCI = !!process.env.CI || process.env.CHECKLY === "1";
6
+
3
7
  export default defineConfig({
4
8
  // e2e specs live here so other suites elsewhere under tests/ are not picked
5
9
  // up. If the repo already has such a suite (unit, a11y), give it its own
@@ -9,9 +13,9 @@ export default defineConfig({
9
13
  // Seeds are run directly by the Playwright MCP, not as tests of their own.
10
14
  testIgnore: "**/seed.spec.*",
11
15
  fullyParallel: true,
12
- forbidOnly: !!process.env.CI,
13
- retries: process.env.CI ? 2 : 0,
14
- workers: process.env.CI ? 1 : undefined,
16
+ forbidOnly: isCI,
17
+ retries: isCI ? 2 : 0,
18
+ workers: isCI ? 1 : undefined,
15
19
  reporter: "html",
16
20
  use: {
17
21
  baseURL: process.env.BASE_URL ?? "http://localhost:3000",