feat(qa): add smoke test suite + post-deploy workflow
Some checks failed
CI / Lint → Typecheck → Test → Build (22) (push) Failing after 12s
Deploy / Build AI Services Image (push) Failing after 10s
Security Scanning / Trivy Scan — API Image (push) Failing after 1m25s
Security Scanning / Trivy Scan — Web Image (push) Failing after 46s
Security Scanning / Trivy Scan — AI Services Image (push) Failing after 43s
Deploy / Deploy to Staging (push) Has been skipped
Deploy / Smoke Test Staging (push) Has been skipped
Deploy / Deploy to Production (push) Has been skipped
Deploy / Smoke Test Production (push) Has been skipped
Security Scanning / Security Gate (push) Failing after 1s
Deploy / Rollback Staging (push) Has been skipped
CI / E2E Tests (push) Has been skipped
CodeQL Analysis / CodeQL (javascript-typescript) (push) Failing after 32s
Deploy / Build API Image (push) Failing after 26s
Deploy / Build Web Image (push) Failing after 10s
E2E Tests / Playwright E2E (push) Failing after 21s
Security Scanning / Dependency Audit (pnpm) (push) Failing after 5s
Security Scanning / Trivy Filesystem Scan (push) Failing after 42s
Deploy / Rollback Production (push) Has been skipped

- e2e/api/smoke.spec.ts — 9 @smoke API tests covering health, auth roundtrip,
  token refresh, listings, search, payments, subscriptions, and inquiries
- e2e/web/smoke.spec.ts — 7 @smoke Web tests covering homepage, login/register
  pages, listings, search, listing detail 404 handling, and console-error check
- playwright.config.ts — smoke-api and smoke-web projects (grep: /@smoke/)
  allowing targeted post-deploy execution without the full suite
- .github/workflows/smoke.yml — workflow_dispatch + workflow_call trigger for
  running only the @smoke subset against staging or production URLs

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Ho Ngoc Hai
2026-04-21 00:47:40 +07:00
parent 33a5ff407b
commit 26b6b37cee
4 changed files with 355 additions and 0 deletions

View File

@@ -58,6 +58,24 @@ export default defineConfig({
baseURL: process.env.WEB_BASE_URL ?? `http://localhost:${WEB_PORT}`,
},
},
// Smoke projects — subsets of api/web tagged @smoke for post-deploy checks
{
name: 'smoke-api',
testDir: './e2e/api',
grep: /@smoke/,
use: {
baseURL: process.env.API_BASE_URL ?? `http://localhost:${API_PORT}/api/v1/`,
},
},
{
name: 'smoke-web',
testDir: './e2e/web',
grep: /@smoke/,
use: {
...devices['Desktop Chrome'],
baseURL: process.env.WEB_BASE_URL ?? `http://localhost:${WEB_PORT}`,
},
},
],
webServer: [