5.5 KiB
5.5 KiB
phase, slug, status, nyquist_compliant, wave_0_complete, created
| phase | slug | status | nyquist_compliant | wave_0_complete | created |
|---|---|---|---|---|---|
| 11.2 | ready-to-share-summercms-io-website-and-newsletter-plugin | draft | false | false | 2026-10-01 |
Phase 11.2 — Validation Strategy
Per-phase validation contract for feedback sampling during execution. Source:
11.2-RESEARCH.md§ Validation Architecture.
Test Infrastructure
| Property | Value |
|---|---|
| Framework | Go testing (stdlib, httptest, testing/fstest) in summercms.go, sm-summercmsio-plugin and sm-summercmsio-app; node:test in vue-summercmsio-app |
| Config file | none; vue-summercmsio-app/package.json script "test": "node --test tests/*.test.ts" (Wave 0) |
| Quick run command | touched repo: go vet ./... && go test ./...; site: pnpm generate && pnpm test |
| Full suite command | framework go vet ./... && go test ./...; app scripts/build.sh dev then go vet ./... && go test ./... (plugin with SUMMERCMS_REQUIRE_BUILD=1); site pnpm generate && pnpm test |
| Estimated runtime | ~180 seconds (framework DB suites dominate) |
Sampling Rate
- After every task commit: the touched repo's
go vet ./... && go test ./...(framework may use-shortexcept on D-25/D-41 tasks);pnpm generatewhen Nuxt files change - After every plan wave: framework full
go test ./...;scripts/build.sh dev; plugin tests withSUMMERCMS_REQUIRE_BUILD=1;pnpm test - Before
/gsd-verify-work: full suite green, plusSUMMERCMS_TERMINAL_CHECK=1with a local clone override,scripts/smoke.shon postgres:15,nginx -tof the shipped config - Max feedback latency: 180 seconds
Per-Task Verification Map
Filled from the PLAN.md files once written. Requirement → check map:
| Req | Behavior | Test Type | Automated Command | File Exists | Status |
|---|---|---|---|---|---|
| SC1 | generate succeeds; section ids, en.json copy, self-hosted fonts, robots + flat sitemap, absolute og:image, six commands | output assertion | pnpm generate && node --test tests/output.test.ts |
❌ W0 | ⬜ pending |
| SC1 | scroll-spy selection; copy payload = six lines | unit (TS) | node --test tests/scrollSpy.test.ts tests/terminal.test.ts |
❌ W0 | ⬜ pending |
| SC2 | status, content type and cache headers for /, /_nuxt, /_fonts, /docs, 404s, ETag/304, traversal |
unit | go test ./... -run TestStatic (plugin) |
❌ W0 | ⬜ pending |
| SC2 | plugin routes assemble without conflict; no admin routes | unit | go test ./... -run TestRoutesAssemble (plugin) |
❌ W0 | ⬜ pending |
| SC2 | binary boots on PG15 and serves both trees | integration smoke | scripts/smoke.sh (app) |
❌ W0 | ⬜ pending |
| SC3 | every href in the built index.html resolves | integration | SUMMERCMS_REQUIRE_BUILD=1 go test ./... -run TestLandingLinks (plugin) |
❌ W0 | ⬜ pending |
| SC3 | external links 200 anonymously | network, at cutover | SUMMERCMS_CHECK_EXTERNAL=1 go test ./... -run TestExternalLinks |
❌ W0 | ⬜ pending |
| SC4 | terminal commands run verbatim | scripted e2e | SUMMERCMS_TERMINAL_CHECK=1 go test -run TestTerminalCommands . (app) |
❌ W0 | ⬜ pending |
| SC4 | linux/amd64 binary with both trees embedded | scripted | scripts/build.sh dev && file bin/summercms-io |
❌ W0 | ⬜ pending |
| SC4 | nginx config syntactically valid | scripted | nginx -t -p $TMP -c $TMP/nginx.conf |
❌ W0 | ⬜ pending |
| D-25 | DB suites green on PG 15 | scripted throwaway | export + sed + go test (RESEARCH § PostgreSQL 15) |
✅ | ⬜ pending |
| D-41 | site_url parsed; header link only when set; unset output unchanged |
unit | go test ./internal/docsite -run 'TestParseSite|TestSiteURL' && go test ./cmd/summer -run TestDocsTree |
partial | ⬜ pending |
| SC5 | coverage of new Go code | unit | go test -cover ./... (plugin, app) |
❌ W0 | ⬜ pending |
Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky
Wave 0 Requirements
vue-summercmsio-app/tests/{output,scrollSpy,terminal}.test.tsand the"test"script- sm-summercmsio-plugin
static_test.go,routes_test.go,links_test.gowithfstest.MapFSfixtures - sm-summercmsio-app
terminal_check_test.go,scripts/smoke.sh, optionalscripts/check-nginx.sh - framework: extend
internal/docsite/load_test.goandtheme_test.goforsite_url
Manual-Only Verifications
| Behavior | Requirement | Why Manual | Test Instructions |
|---|---|---|---|
| Visual fidelity at 1280/721/720/375px, sticky header, Copy → "Copied" 1.5s, nav hidden ≤720px | SC1 | pixel and interaction fidelity against the handoff | open the generated site next to design/SummerCMS Landing.dc.html at each width |
| Clean-server bring-up on rome | SC4 | server not reachable from the dev machine | follow DEPLOY.md end to end; human checkpoint |
| Source link anonymous access | SC3 / D-38 | repo must be made public by the user first | run TestExternalLinks at cutover |
Validation Sign-Off
- All tasks have
<automated>verify or Wave 0 dependencies - Sampling continuity: no 3 consecutive tasks without automated verify
- Wave 0 covers all MISSING references
- No watch-mode flags
- Feedback latency < 180s
nyquist_compliant: trueset in frontmatter
Approval: pending