**Phase 04 final verification — all green** Implemented/verified - Both phase tasks already complete (`complete/04_huntington_role/01`,`02`); this pass was final verification + docs. - `src/index.html` HNB "Lead MLOps Engineer · Jun 2026 – Present" entry first with 3 bullets; Nimbis closed at `Jan 2022 – Apr 2026`. Tests / lint / gate - `./build.sh` → `dist/` rebuilt (9 hashed assets) · `npm test` → **47 passed, 0 failed** - `bash .agents/validate.sh` → **exit 0**: 47/47 E2E, `HEADER CHECK PASSED` (real podman image, `/`, `/index.html`, hashed css), hygiene checks clean - `node --check` all `src/*.js` + `tests/e2e/*.js` + `playwright.config.js` OK; `bash -n` on `build.sh`, `scripts/check-headers.sh`, `.agents/validate.sh` OK (no JS lint toolchain by design) Completion criteria - `grep -c "Huntington National Bank" dist/index.html` = **1**; `Jun 2026 – Present` at dist:118 — PASS - Nimbis `Jan 2022 – Apr 2026` at dist:138; only one `– Present` in file — PASS - Regression test `experience timeline leads with Huntington National Bank role` present at `tests/e2e/01-page.spec.js:28` and passing — PASS - `./build.sh && npm test` fully green (47 ≥ 45) — PASS · No behavior change: terminal/vim/achievements/menu specs all pass — PASS - Coverage >90% on new/modified code: vacuous (HTML + test only, no JS/CSS touched) — PASS Documentation (fixed) - README: `check-headers.sh` claimed "aborting at the first failing path" — it actually checks all three paths then exits non-zero; also added the real webServer command (`--bind 0.0.0.0`) and `npm run test:headed`. - AGENTS.md: `innerHTML` allowance scoped precisely (only the `cmdText === 'neofetch'` branch in terminal.js; vim/achievements only static or `escapeHtml()`-escaped). Notable: `.agents/PLAN.md` §4/§5 still say "44 tests" (now 47) — PLAN.md is locked to me; flagged for user approval. Next pending phase: `.agents/phases/todo/05_update_projects_section`
This commit is contained in:
@@ -63,9 +63,11 @@ This is the integration test for the header fix: it builds the **real** image
|
||||
with podman (or docker), runs it on the scratch address `127.0.0.1:18099`, and
|
||||
asserts all four security headers on each response class — `/`, `/index.html`
|
||||
and the first hashed asset found in `index.html`. On success it prints one
|
||||
`OK:` line per path and `HEADER CHECK PASSED` (exit 0); a missing header prints
|
||||
`FAIL: <header> missing on <path>` and exits non-zero, aborting at the first
|
||||
failing path. No local `./build.sh` is needed — the image builds itself. The
|
||||
`OK:` line per path and `HEADER CHECK PASSED` (exit 0). A missing header prints
|
||||
`FAIL: <header> missing on <path>`; all three paths are checked before the
|
||||
script prints `HEADER CHECK FAILED` and exits non-zero, so one run reports every
|
||||
violation (once a header has failed somewhere, the later `OK:` lines are
|
||||
suppressed). No local `./build.sh` is needed — the image builds itself. The
|
||||
container is removed by the script; `.agents/validate.sh` removes the leftover
|
||||
`homepage-headercheck-*` image tag. Run it after **any** change to
|
||||
`nginx.conf`, `nginx-security-headers.inc` or the `Dockerfile`.
|
||||
@@ -114,8 +116,14 @@ flat terminal modules (`terminal.js`, `terminal-commands.js`,
|
||||
npm install # installs the pinned @playwright/test dev dependency
|
||||
./build.sh # src/ -> dist/ (content-hashed asset names)
|
||||
npm test # Playwright E2E suite against dist/ on 127.0.0.1:8123
|
||||
npm run test:headed # same suite, visible browser
|
||||
```
|
||||
|
||||
`playwright.config.js` points `baseURL` at `http://127.0.0.1:8123` and starts
|
||||
the static server with `python3 -m http.server 8123 --bind 0.0.0.0 --directory
|
||||
dist` — the port is bound on all interfaces while the suite runs, so use it on a
|
||||
trusted network.
|
||||
|
||||
The fake terminal performs **no real network I/O**. `curl` and `wget` render
|
||||
deterministic simulated output built by `simulatedCurlOutput()` /
|
||||
`simulatedWgetOutput()` in `src/terminal-commands.js`, which echo the requested
|
||||
|
||||
Reference in New Issue
Block a user