brackt/app/models/__tests__
Claude 8900bf79dc
Announce drafted tennis players eliminated in non-scoring rounds
A player drafted in a tennis major (e.g. Jakob Mensik, out in the Round of
64) got no Discord announcement when the bracket was scored by sync. The
first three Grand Slam rounds are non-scoring, so an early-round loser earns
0 QP, gets no event_results row, and is dropped from the
"Qualifying Points Update" notification — the only announcement the tennis
sync emits mid-tournament.

Detect players knocked out on each sync and surface them:

- populateBracketFromDraw now returns newlyDecidedLoserIds: losers of
  matches that transition to complete on this run. Idempotent across
  re-syncs since playoff_matches persist, so a knockout is announced once.
- syncTennisDraw threads that set into notifyQualifyingPointsUpdate and
  fires the notification even when no QP changed.
- notifyQualifyingPointsUpdate builds an eliminated list scoped to players
  drafted in the league, deduped against QP earners (so a Round-of-16 loser
  who scores isn't listed twice), tagging the drafting manager.
- sendQualifyingPointsUpdateNotification renders a "Knocked Out" section and
  pings those managers; the QP Standings block is skipped when a sync only
  reports knockouts.

Tests cover the new detection, dedup, manager tagging, knockout-only
notifications, and rendering.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LkPWxSCunhPFknNUTXm4aZ
2026-07-03 14:42:06 +00:00
..
afl-finals.test.ts Add oxlint linting setup with zero errors (#194) 2026-03-21 09:44:05 -07:00
audit-log.test.ts Migrate auth from Clerk to BetterAuth (#354) 2026-04-29 10:03:50 -07:00
auto-pick.test.ts Canonical tournament layer: schema + backfill (1/2) (#365) 2026-05-01 20:13:18 -07:00
bracket-integration.test.ts Add oxlint linting setup with zero errors (#194) 2026-03-21 09:44:05 -07:00
bracket-seeding.test.ts Add oxlint linting setup with zero errors (#194) 2026-03-21 09:44:05 -07:00
bracket-templates.test.ts Fix college hockey bracket resolution (#396) 2026-05-08 12:29:39 -07:00
canonical-golf-skills.test.ts Canonical golf skills migration + copy participants feature (#369) 2026-05-02 10:29:28 -07:00
canonical-surface-elo.test.ts Canonical golf skills migration + copy participants feature (#369) 2026-05-02 10:29:28 -07:00
cfp-12-bracket.test.ts Add NCAA Football CFP simulator (12-team bracket) (#278) 2026-04-08 09:48:32 -04:00
commissioner.test.ts Refactor user profile to comprehensive settings page (#403) 2026-05-10 17:26:14 -07:00
cs2-major-stage.test.ts claude/fix-lint-errors-n48594 (#111) 2026-06-26 07:26:55 +00:00
draft-pick.test.ts Fix QP tie rounding and finalized scoring (#440) 2026-05-17 21:58:53 -07:00
executeAutoPick.timer.test.ts Fix draft timer: broadcasts, increments, reconnect sync, overnight pause (#72) 2026-06-06 05:57:46 +00:00
futures-odds-simulator.test.ts Centralize futures odds onto the simulator page and fix bulk import (#117) 2026-06-30 17:05:52 +00:00
golf-skills.test.ts Canonical golf skills migration + copy participants feature (#369) 2026-05-02 10:29:28 -07:00
group-stage-match.test.ts Add FIFA World Cup 2026 support with group stage display and Monte Carlo simulator (#242) 2026-03-29 10:27:47 -07:00
ncaa-68-bracket.test.ts Fix oxlint warnings: no-shadow, consistent-function-scoping, no-non-null-assertion, and others (#196) 2026-03-21 10:59:51 -07:00
nfl-bracket.test.ts Fix oxlint warnings: no-shadow, consistent-function-scoping, no-non-null-assertion, and others (#196) 2026-03-21 10:59:51 -07:00
participant-expected-value.test.ts Remove flaky context menu click tests (#81) 2026-06-10 05:59:49 +00:00
participant.test.ts Canonical tournament layer: schema + backfill (1/2) (#365) 2026-05-01 20:13:18 -07:00
playoff-match-game.test.ts Add playoff match game scheduling and odds management (#135) 2026-03-11 14:17:43 -07:00
playoff-match-odds.test.ts Add playoff match game scheduling and odds management (#135) 2026-03-11 14:17:43 -07:00
point-progression.test.ts feat: add recharts library and implement PointProgressionChart component for historical views 2025-11-14 21:18:34 -08:00
populate-bracket-from-draw.test.ts Announce drafted tennis players eliminated in non-scoring rounds 2026-07-03 14:42:06 +00:00
process-match-result.test.ts scoring notifications (#115) 2026-06-30 01:58:20 +00:00
progressive-floor-scoring.test.ts Fix partial bracket scoring, rank labels, and Discord notification bugs (#158) 2026-03-17 12:34:10 -07:00
qualifying-bracket-scoring.test.ts Auto-populate & auto-score tennis Grand Slam brackets from Wikipedia 2026-06-26 21:48:00 -07:00
qualifying-points.test.ts claude/discord-qp-notifications-75wa7k (#122) 2026-07-01 22:14:51 +00:00
regular-season-standings.test.ts Fix standings upsert no-op: use EXCLUDED pseudo-table (#215) 2026-03-23 21:22:53 -07:00
scoring-calculator-qp-notify.test.ts claude/discord-qp-notifications-75wa7k (#122) 2026-07-01 22:14:51 +00:00
scoring-calculator-qualifying.test.ts Fix QP tie rounding and finalized scoring (#440) 2026-05-17 21:58:53 -07:00
scoring-calculator.test.ts Fix QP tie rounding and finalized scoring (#440) 2026-05-17 21:58:53 -07:00
scoring-event-dashboard.test.ts Show events on multiple dates when games span requested date range (#254) 2026-04-01 13:39:03 -07:00
scoring-event-delete.test.ts Address review: don't auto-promote primary for golf; lighten window count 2026-07-02 05:27:14 +00:00
scoring-event-tournament-helpers.test.ts Unify majors: score once, fan out across windows + tennis bracket EV 2026-06-22 20:32:22 -07:00
season-match.test.ts claude/great-lovelace-r3bznh (#88) 2026-06-12 22:35:35 +00:00
season-participant-copy.test.ts Canonical golf skills migration + copy participants feature (#369) 2026-05-02 10:29:28 -07:00
season-standings.test.ts Add oxlint linting setup with zero errors (#194) 2026-03-21 09:44:05 -07:00
simulator-inputs.test.ts Fix futures odds being ignored when stale Elo exists 2026-06-25 17:43:31 +00:00
sport.test.ts Add public sports overview page (#451) 2026-05-19 23:02:58 -07:00
sports-season.clone.test.ts Formalize simulator system with manifest, input-policy, runner, and admin UI (#409) 2026-05-11 21:09:53 -07:00
sports-season.test.ts Add admin draft schedule Gantt chart 2026-07-02 00:44:23 +00:00
standings-snapshots.test.ts Add oxlint linting setup with zero errors (#194) 2026-03-21 09:44:05 -07:00
surface-elo.test.ts Canonical tournament layer: 2026-05-01 21:04:48 -07:00
team-projected-score.test.ts Fix QP tie rounding and finalized scoring (#440) 2026-05-17 21:58:53 -07:00
team-score-events.test.ts Canonical tournament layer: schema + backfill (1/2) (#365) 2026-05-01 20:13:18 -07:00
tiebreaker-logic.test.ts Fix tiebreaker incorrectly separating tied teams with pending participants, fixes #244 (#245) 2026-03-29 16:59:13 -07:00
tournament-result.test.ts Canonical tournament layer: schema + backfill (1/2) (#365) 2026-05-01 20:13:18 -07:00
tournament.test.ts Improve shared-tournament/event management UX 2026-07-02 05:17:37 +00:00
upcoming-calendar.test.ts claude/charming-tesla-re9ur7 (#93) 2026-06-16 22:11:01 +00:00
user.test.ts Refactor user profile to comprehensive settings page (#403) 2026-05-10 17:26:14 -07:00