deckhearth/tests/smoke/app.smoke.spec.ts
Randall Stillwell bb05ca731b bootstrap: agent pipeline v0.5.0 + ship-readiness review
Installs the three-layer agent-pipeline scaffold (https://github.com/varutasu/agent-pipeline @ v0.5.0):

L1 — Context (curated brain)
- AGENTS.md: orientation, conventions, 8 explicit gotchas
- .cursor/rules/: no-go-zones, api-routes, auth-and-permissions,
  db-and-schema, ui-and-theming, schema-map
- .cursor/skills/: add-api-route, add-page recipes
- docs/agent-context/README.md: layer explainer
- docs/SCHEMA_MAP.md: hand-curated Neon Postgres reference
  (replaces Prisma schema map since stack is raw SQL)

L2 — Subagent roles (copied verbatim from upstream templates)
- 9 .cursor/agents/role-*.md files: Conductor, IA-Architect,
  UX-Reviewer, Architect, Implementer, Reviewer,
  Design-System-Auditor, A11y-Auditor, Doc-Writer

L3 — Pipeline scaffolding (Vercel variant)
- CI: lint + schema-map-drift only (no duplicate build —
  Vercel handles it). Test job commented out until vitest lands.
- preview-smoke + visual-diff via wait-for-vercel-preview
- pr-health-rollup sticky comment aggregator
- agent-context-drift weekly cron
- PULL_REQUEST_TEMPLATE, CODEOWNERS (auth/admin paths tagged)
- .convoys/ folder + seed ship-readiness.md review
- lib/flags/index.js (JS — converted from TS template)
- scripts/wt.sh (Cursor 3.2 deprecation stub),
  scripts/log-convoy-event.sh
- tests/smoke/app.smoke.spec.ts (Playwright skeleton)

Manifest
- .agent-context-manifest.yml: tracks 31 artifacts by sha256
  for future sync-agent-context drift detection

Review
- .convoys/ship-readiness.md: 16 findings (7 P0 ship-blockers,
  5 P1 quality-bar, 4 P2 refactor, P3 UX/IA/a11y/docs) with
  proposed 13-convoy launch sequence.

No production code changed in this commit. All findings in
the ship-readiness review will be addressed in follow-up convoys
starting with fix-auth-bypass.

Structural brain: user-code-review-graph MCP has indexed the
codebase (122 files, 628 nodes, 5602 edges, 11 communities,
84 flows). Per-developer; not committed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 23:16:08 -05:00

32 lines
1.2 KiB
TypeScript

import { test, expect } from '@playwright/test';
/**
* Smoke tests run against a deployed preview URL.
* BASE_URL is injected by the GitHub Action (PREVIEW_URL).
*
* Add or replace tests here for each critical user path you ship.
* Keep this file fast (<60s total). For deeper E2E, use a separate suite.
*/
const BASE = process.env.BASE_URL ?? 'http://localhost:3000';
test.describe('smoke: app boots and core pages render', () => {
test('home redirects or renders without 5xx', async ({ page }) => {
const response = await page.goto(BASE);
expect(response?.status(), 'home should not 5xx').toBeLessThan(500);
});
test('sign-in page renders', async ({ page }) => {
await page.goto(`${BASE}/login`);
await expect(page.getByRole('button', { name: /sign in/i })).toBeVisible({ timeout: 10_000 });
});
test('public health endpoint responds', async ({ request }) => {
const res = await request.get(`${BASE}/api/health`);
expect(res.ok(), `${BASE}/api/health should respond 2xx`).toBeTruthy();
});
});
// Add convoy-specific smoke tests below as features ship. Each new flag-gated
// feature should add a smoke test that exercises the happy path with the flag
// forced on (if your flag wrapper supports query-string overrides).