Commit Graph

349 Commits

Author SHA1 Message Date
Daniel Schädler 7151976d26 feat: add backend beamer live updates 2026-04-23 14:35:16 +02:00
Daniel Schädler e41ef870f9 Merge branch 'codex/TUR-80-team-action-lists' into 'master'
TUR-80 playoff token collection tracking

Closes TUR-80

See merge request turniere/turniere-backend!49
2026-04-23 11:46:41 +00:00
Daniel Schädler 0f4ed8a0c3 fix: avoid rails array helper in websocket e2e 2026-04-23 12:50:17 +02:00
Daniel Schädler 26b87b9ead fix: harden websocket e2e helpers 2026-04-23 11:06:40 +02:00
Daniel Schädler 883638f4fd feat: add websocket team action updates 2026-04-23 10:19:47 +02:00
Daniel Schädler f81a8fb83e test: cover team action list update flows 2026-04-23 10:11:43 +02:00
Daniel Schädler fa83923bf2 docs: add team action list frontend guide 2026-04-23 10:08:19 +02:00
Daniel Schädler 443b7ff869 fix: sync team action item updates 2026-04-23 09:39:39 +02:00
Daniel Schädler ad96668a04 Merge branch 'TUR-52-backend-match-swap' into 'master'
TUR-52 backend match swap endpoint

Closes TUR-52

See merge request turniere/turniere-backend!48
2026-04-22 15:10:45 +00:00
Daniel Schädler eea065bd75 test: cover team action list follower sync 2026-04-22 16:56:11 +02:00
Daniel Schädler 7d65e4df82 feat: track team action list completion 2026-04-22 16:51:17 +02:00
Daniel Schädler 6f0ca455f7 Test match swaps in follower sync e2e 2026-04-22 16:42:58 +02:00
Daniel Schädler 201abe5145 Merge branch 'codex/TUR-45-third-place-match' into 'master'
TUR-45 add third-place playoff match

Closes TUR-45

See merge request turniere/turniere-backend!47
2026-04-22 14:36:27 +00:00
Daniel Schädler 99538a3343 Add backend group match swap endpoint 2026-04-22 15:48:06 +02:00
Daniel Schädler 57aecd7cc5 feat: add third place playoff match 2026-04-22 15:46:48 +02:00
Daniel Schädler 2912645499 fix: require deciders for advancing ties 2026-04-22 15:19:53 +02:00
Daniel Schädler af7beb193a fix: stabilize sync privacy and e2e coverage 2026-04-20 22:08:49 +02:00
Daniel Schädler 2019d0d029 test: hide sync metadata from public show 2026-04-20 19:48:10 +02:00
Daniel Schädler b65dd35654 fix: add sync roundtrip verification 2026-04-20 19:36:40 +02:00
Daniel Schädler 03947ac0ca Sync beamer state to followers 2026-04-16 15:55:20 +02:00
Daniel Schädler 8789c2cb2e Merge origin/master into follower sync 2026-04-16 15:54:32 +02:00
Daniel Schädler 9681eebdc4 Fix default beamer factory lint 2026-04-16 13:18:08 +02:00
Daniel Schädler 761bb8daea Simplify default beamer handling 2026-04-16 13:02:40 +02:00
Daniel Schädler e52fb2897a Add large sync roundtrip coverage 2026-04-16 10:25:32 +02:00
Daniel Schädler 5126e94c26 Add sync schema contract guardrails 2026-04-16 10:23:52 +02:00
Tobias Huber 2ceba1dfcf Merge branch 'master' into TUR-32_backend-beamer 2026-04-16 08:11:02 +02:00
Daniel Schädler 07b7a78bd5 Merge origin/master into follower sync 2026-04-15 16:43:38 +02:00
Daniel Schädler 24d4c0a253 Hide live tie metadata and stream CI logs 2026-04-15 14:35:00 +02:00
Daniel Schädler 3e2400616b Stabilize backend test fixtures 2026-04-15 12:29:32 +02:00
Daniel Schädler ce7b5c5ac7 Fix match points specs 2026-04-15 11:22:55 +02:00
Daniel Schädler 7da30df291 Defer decider checks until groups finish 2026-04-15 10:43:21 +02:00
Daniel Schädler a92337013e Move profiling out of prod image 2026-04-15 10:16:18 +02:00
Daniel Schädler 43aa0e11ba Restrict render profiling to non-prod 2026-04-15 10:02:26 +02:00
Daniel Schädler 8d72b863d0 Add HTTP E2E render profiling 2026-04-15 09:56:33 +02:00
Daniel Schädler 2d273f067c Optimize tournament render hot path 2026-04-15 09:36:56 +02:00
Daniel Schädler 26679d87c2 Add sync snapshot tracking 2026-04-14 22:36:39 +02:00
Daniel Schädler c4f182a6a8 Stabilize follow sync CI network checks 2026-04-14 22:11:34 +02:00
Daniel Schädler 4d9255354b Reset sync retries on new snapshots 2026-04-14 21:34:04 +02:00
Daniel Schädler 38bbdf4b04 Stream follower blackbox progress 2026-04-14 21:10:53 +02:00
Daniel Schädler 8bdd7fd1be Enqueue sync after transaction commit 2026-04-14 20:59:30 +02:00
Daniel Schädler 9cfd0c9444 Harden follower sync wait timeout 2026-04-14 20:27:50 +02:00
Daniel Schädler 3cbeff617a Allow follower takeover updates 2026-04-14 20:11:42 +02:00
Daniel Schädler ff83d7c370 Fix follower sync E2E CI helper 2026-04-14 14:50:49 +02:00
Daniel Schädler 38a3d7f8e3 Strengthen follower sync lifecycle E2E 2026-04-14 14:42:25 +02:00
Daniel Schädler d27755600a Harden follower sync ID-independence E2E 2026-04-14 14:36:38 +02:00
Daniel Schädler 8ab53fa854 Fix follower sync E2E helper 2026-04-14 14:27:34 +02:00
Tobias Huber 58267b6b3a Fix timer timezone handling 2026-04-14 07:10:51 +02:00
Tobias Huber 19f744daeb Add Beamer entity with CRUD API and name-based lookup
New Beamer model scoped to tournaments for multi-projector display control.
Includes migration, validations, serializer, controller with by_name
fallback endpoint, routing, and full RSpec test coverage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 07:10:44 +02:00
Daniel Schädler bbb1ad97ef Make follower sync asynchronous 2026-04-13 20:54:28 +02:00
Daniel Schädler 133ebae847 Add read-only tournament follower sync 2026-04-13 20:32:34 +02:00
Daniel Schädler 4713a020fa Implement TUR-58 group stage decider matches 2026-04-12 19:13:52 +02:00
Daniel Schädler 11b1004053 Stabilize match controller failure spec 2026-04-12 18:19:28 +02:00
Daniel Schädler 6d21dad5d7 Fix final match completion after group stage 2026-04-12 18:07:08 +02:00
Daniel Schädler a484ed164f Fix direct comparison E2E expectation 2026-04-12 17:48:12 +02:00
Daniel Schädler eedafe1276 Add ranking decision metadata for group scores 2026-04-12 17:47:28 +02:00
Daniel Schädler 7cef4a9b5e Fix group score direct comparison tiebreak 2026-04-12 17:03:33 +02:00
Daniel Schädler c32d944d87 Fix blackbox HTTP E2E bootstrap coverage 2026-04-12 16:12:41 +02:00
Daniel Schädler 7f04e75649 Expand backend HTTP E2E API coverage 2026-04-12 16:06:23 +02:00
Daniel Schädler eca1ba5622 Skip HTTP E2E outside dedicated env 2026-04-11 14:15:18 +02:00
Daniel Schädler 39ba1cff22 Run backend E2E over HTTP 2026-04-11 13:40:12 +02:00
Daniel Schädler 71be61791a Add backend lifecycle E2E coverage 2026-04-11 13:12:49 +02:00
Daniel Schädler 2b0eccf9bd Skip profiling by default 2025-03-16 13:45:10 +01:00
Daniel Schädler 060f3d0422 Hopefully 🤞 fix flaky test 2025-03-16 13:44:37 +01:00
Daniel Schädler 99b6500e5f Install and configure rubyprof 2025-03-16 13:22:08 +01:00
Daniel Schädler 954b62e06e Debugging for slowest specs 2025-03-16 12:44:07 +01:00
Daniel Schädler cccb8cc806 Mock groupstageservice when changing playoff params 2025-03-16 12:41:28 +01:00
Daniel Schädler f00c5ac8dc Merge branch 'annotate_advancing_teams' into 'master'
Annotate advancing teams

See merge request turniere/turniere-backend!28
2025-03-14 14:23:58 +00:00
Daniel Schädler b1cc300d98 Merge branch 'first_vs_second_with_offset' into 'master'
First vs second with offset

See merge request turniere/turniere-backend!29
2025-03-14 12:35:17 +00:00
Daniel Schädler 4d62f6777a Adjust tests to match new version of advancing teams 2025-03-14 13:32:15 +01:00
Daniel Schädler 34814a837a Merge remote-tracking branch 'origin/master' into annotate_advancing_teams 2025-03-14 13:27:03 +01:00
Daniel Schädler f71c7ec57f Merge branch 'timer' into 'master'
Timer

See merge request turniere/turniere-backend!30
2025-03-14 12:00:29 +00:00
Daniel Schädler 9f1807ab4b Test timer_end is in show tournament 2025-03-14 12:47:06 +01:00
Daniel Schädler d1c6ee2da5 Fix split and rotate call 2025-03-13 12:56:20 +01:00
Daniel Schädler d1cbe8a354 Fix tests 2025-03-13 12:52:12 +01:00
Daniel Schädler 41fbf654df Add todo 2025-03-13 12:41:48 +01:00
Daniel Schädler 4d1e2c5164 Add option to also pass seconds to timer_end 2025-03-10 12:37:19 +01:00
Daniel Schädler bdcc6e1182 Fix tests 2025-03-10 11:51:36 +01:00
Daniel Schädler 3bb8afeae6 Remove focused tests 2025-03-09 21:14:18 +01:00
Daniel Schädler 4449314cf6 Improve "normal" controller tests 2025-03-09 21:07:36 +01:00
Daniel Schädler 79bafec693 Add advancing teams into tournaments show endpoint 2025-03-09 21:05:41 +01:00
Daniel Schädler cf3cc9cebb Add tests about the advancing teams 2025-03-09 20:14:34 +01:00
Daniel Schädler 5786607b7f Reload group_scores from database after update 2025-03-09 20:04:00 +01:00
Daniel Schädler a74236982d Generate a valid tournament like at bpwstr 2025-03-09 19:34:49 +01:00
Daniel Schädler 5c6b683526 All groups are created equal 2025-03-08 17:46:55 +01:00
Daniel Schädler 119cffc4ff Remove coveralls for good 2025-03-08 17:39:46 +01:00
Daniel Schädler 322d1e2ed4 Add dummy tournament with group stage 2025-03-08 17:39:36 +01:00
Tobias Huber 3c1168212e add timer_end to tournaments model 2025-03-08 17:08:48 +01:00
Daniel Schädler 7edf1c5140 REVERT ME run only focused tests 2025-03-08 16:27:35 +01:00
Daniel Schädler 0d30886168 REVERT ME run only focused tests 2025-03-08 16:12:01 +01:00
Daniel Schädler 834b3ca433 REVERT ME run only focused tests 2025-03-04 21:59:57 +01:00
Daniel Schädler 6fcdeac054 Move array splitting and rotating to utils 2025-03-04 21:34:16 +01:00
Daniel Schädler 938ae92f59 Revert "Add test data for beerpong"
This reverts commit c708b86c35.
2025-03-02 12:20:29 +01:00
Daniel Schädler c708b86c35 Add test data for beerpong 2025-02-12 22:29:11 +01:00
Daniel Schädler cac378ff5c
Add file to report test runtimes 2022-07-01 22:30:14 +02:00
Daniel Schädler e448f9ccc3
Remove specific bet specs 2022-06-25 17:34:43 +02:00
Daniel Schädler 0518f6691b Remove expensive tests 2022-06-12 21:42:20 +00:00
Daniel Schädler eb5c3b5faf
Test huge playoff stage generation 2022-05-29 23:58:07 +02:00
Daniel Schädler c3af6f9232
Rubocop -A 2021-08-15 14:31:50 +02:00
Thor77 bb4a950138
Fix warning about content/media type for Rails 6 2020-06-05 20:41:33 +02:00
Daniel Schädler 777ee95281 Readability +4 2019-10-26 01:38:06 +02:00