Files
vtuber-awards/docs/end-to-end-smoke.md
T
AzuTear 441ef2b850
CI - Build & Verify / Build, Typecheck & Hygiene (push) Successful in 59s
CI - Build & Verify / Deploy to award.noveria.net (push) Failing after 53s
Update release notes and deploy workspace
2026-06-29 17:49:54 +02:00

4.6 KiB

End-To-End Smoke Standard

This checklist defines the repeatable smoke path for the core awards workflow. It complements the build checks in docs/workflow.md and should be used after changes to nominations, categories, candidates, voting, winners, permissions, or public landing-page workflow.

Scope

Core workflow:

Nomination -> Admin preparation -> Candidate -> Voting -> Winner preparation -> Winner/archive

Public nomination is grouped by main category (Category.GroupName). Voting and winners stay on concrete subcategory Category rows.

Automated Local Smoke

Run this against a local backend. If an admin session token is available, the script also checks admin endpoints.

scripts/smoke-local.sh
ADMIN_SESSION_TOKEN=<token> scripts/smoke-local.sh

Expected local defaults:

  • Backend: http://127.0.0.1:5084
  • Frontend: http://127.0.0.1:5173
  • Database: PostgreSQL on localhost:5433

The script checks:

  • /api/health
  • /api/health/database
  • /api/public/overview
  • current-season category structure
  • legacy parent labels are not exposed by the public category endpoint
  • optional admin season/team endpoints when ADMIN_SESSION_TOKEN is set

Manual Browser Smoke

Use the local frontend with backend running as a pair.

Public Nomination

  • Open the public landing page.
  • Start nomination.
  • Confirm only main categories are selectable.
  • Submit 1, 2, and 3 links in one main category.
  • Confirm duplicate links in the same main category are blocked.
  • Confirm empty categories can be skipped.
  • Confirm Twitch links get tracker status when possible.
  • Confirm non-Twitch links are accepted and need manual tier choice.

Admin Review And Candidate Preparation

  • Open /admin/nominations.
  • Confirm nominations are grouped by main category and streamer identity.
  • Confirm the tracker tier suggestion is visible when available.
  • Promote a Twitch nomination using the suggested tier.
  • Promote a non-Twitch nomination with manual tier override.
  • Confirm candidate NominationTally reflects grouped nominations.
  • Confirm candidate clip metadata requires a link when winner clip is mandatory.

Voting

  • Open the public voting modal.
  • Confirm categories show as main category with subcategories.
  • Switch category and subcategory without the modal jumping or resizing.
  • Vote in at least one subcategory.
  • Save vote again and confirm this is treated as vote editing.
  • Confirm missing-vote warning appears before completion when applicable.

Admin Voting Workspace

  • Open /admin/voting.
  • Confirm the page appears only for roles with voting, analytics, or winners effective access.
  • Confirm the tree groups by main category, with subcategories as children.
  • Confirm leaderboard order defaults to most votes first.
  • Confirm vote count, candidate count, open reviews, clip status, readiness, ties or close races, and soft "few nominators" warnings are visible.
  • Use quick links to candidates, nominations/review, and winners.

Winners And Archive

  • Open /admin/winners.
  • Confirm it focuses on final winner assignment and landing-page release readiness.
  • Set or clear a winner in a subcategory.
  • Confirm max. 1x winner identity guard is visible/enforced.
  • Confirm missing winner clip blocks or warns according to workflow settings.
  • Confirm publishing is blocked while winners, reviews, or blocking workflow rules are incomplete.
  • Publish the year and confirm current winners appear on the landing page while the previous landing-page winner year moves into the archive list.
  • Confirm current landing-page winners are not listed as an archive year at the same time.
  • Open the public archive modal and confirm winner clip/video embeds render.

Permissions

  • Open /admin/team.
  • Confirm permission catalog includes current admin pages: Dashboard, Jahre, Nominierungen, Kategorien, Kandidaten, Clips, Landingpage, Risiko, Audit-Log, Analytics, Voting, Gewinner, Einstellungen, Team.
  • Confirm roles with analytics or winners still get effective voting access for navigation and route guards.
  • Confirm write actions still fail for read-only organization-team access.

Responsive Checks

Check public voting, admin voting, admin winners, and admin categories at:

  • 360px
  • 390px
  • 768px
  • desktop

In the browser console:

document.documentElement.scrollWidth <= window.innerWidth

The expression must be true unless a deliberate horizontal data table is in a contained scroll area.

Cleanup

Temporary local nominations, candidates, votes, clips, and winners may be created for smoke validation. Remove test artifacts before finishing if they would pollute future manual checks.