The top-level testDir is './tests', which scopes Playwright's file discovery.
global.setup.ts lives at repo root, so the setup project's testMatch regex
never got a chance to match — Playwright silently ran 0 setup tests, the
storage-state file at playwright/.auth/admin.json was never written, and
every dependent test failed on storageState load with ENOENT.
Adding 'testDir: \".\"' on the setup project lets Playwright scan repo root
for files matching the testMatch regex without affecting the chromium
project, which still uses the top-level './tests' testDir.
Bug present since the initial smoke suite (d46a1e4). Has been blocking
PRAutoBlogger workflow-driven prod deploys since the smoke gate was added
on 2026-04-26 (prautoblogger 96f0248d). v0.14.0 and v0.15.0 reached prod
via manual SSH rsync outside the workflow.
Agent-Session: cto peptide-e2e-setup-project-fix
When smoke.yml runs via workflow_call from another repo (peptide-repo-core,
peptide-starter-theme, etc.), GitHub Actions checks out the CALLER's repo
by default. The caller has no package-lock.json, so setup-node's npm cache
lookup fails with 'Some specified paths were not resolved'.
Fix: add repository/ref to the checkout step so we always fetch peptide-e2e
regardless of who calls the workflow. This ensures npm ci and Playwright
have the correct test code and dependency lockfile.
03-admin-plugins.spec.ts and 04-rest-api.spec.ts were cut off mid-test,
causing Playwright TypeScript parse failures and the smoke gate to show
0 jobs. Added the missing test bodies, assertions, and closing braces.
New tests added:
- PR Core Settings page loads (03)
- Peptide CPT verified via /wp-json/wp/v2/types/peptide (04)
Fixes smoke gate for all future deploys.