Update release notes and deploy workspace
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
# 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:
|
||||
|
||||
```text
|
||||
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.
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```js
|
||||
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.
|
||||
Reference in New Issue
Block a user