Commit Graph

323 Commits

Author SHA1 Message Date
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
Daniel Schädler b8f8ffb411 More space for hound to be happy with 2019-10-26 01:35:46 +02:00
Daniel Schädler b37f510534 Unnecessary Variables 2019-10-26 01:35:00 +02:00
Daniel Schädler 400a396f00 Test match index controller with filter 2019-10-26 01:23:15 +02:00
Daniel Schädler 82e4ff90dc Test tournament.matches method 2019-10-26 01:22:52 +02:00
Thor77 d317585168
Add "simple" parameter to tournament show 2019-10-25 23:17:08 +02:00
Daniel Schädler 945ab4981a Use let more effectively 2019-06-18 22:35:17 +02:00
Daniel Schädler fa9f47903b Test trying to change the state to something other than :finished 2019-06-18 22:22:10 +02:00
Daniel Schädler 90d97962a3 Test trying to finish a group stage with unfinished matches 2019-06-18 22:22:10 +02:00
Daniel Schädler fd8ff20ce8 Test for correct error on finishing already finished stages 2019-06-18 22:22:10 +02:00
Daniel Schädler 8873e7a95b Test stage.teams returning [] on empty stage 2019-06-18 22:22:10 +02:00
Daniel Schädler b28561043e Implement stages controller (GET UPDATE) 2019-06-18 22:22:10 +02:00
Daniel Schädler 3dfeae8bf3 Test #teams_sorted_by_group_scores 2019-06-18 22:22:10 +02:00
Daniel Schädler 15e2bd830f Randomize points in group_scores factory 2019-06-18 22:22:10 +02:00
Daniel Schädler 4925ea9d83 Make teams added to PlayoffStage configurable 2019-06-18 22:22:10 +02:00
Daniel Schädler 748ac18b35 Implement finished_group_match factory 2019-06-18 22:22:10 +02:00
Daniel Schädler 4e72d015ff Implement method to check if stage is over 2019-06-18 19:22:05 +02:00
Daniel Schädler 68efd3caae Add factory for a finished_playoff_match 2019-06-18 19:22:05 +02:00
Daniel Schädler bc0c7fddc3 Make match position randomizable 2019-06-18 19:22:05 +02:00
Daniel Schädler 386155a690 Fix last Match not being stopped correctly 2019-06-18 14:09:29 +02:00
Thor77 3109308817 Fix teams not associated with created tournament
when choosing a group stage
2019-06-18 13:29:31 +02:00
Daniel Schädler 7630f6b432 Fix Typo 2019-06-17 15:02:30 +02:00
Daniel Schädler 6dff05b5e6 Test AdvanceTeamsInIntermediateStage Interactor 2019-06-17 15:02:30 +02:00
Daniel Schädler f35ba5c745 Create factory for :single_team_match 2019-06-17 15:02:30 +02:00
Daniel Schädler e0da9ff7b5 Assign empty array if object_to_save is nil before pushing values to it
https://stackoverflow.com/questions/12163625/create-or-append-to-array-in-ruby
2019-06-17 15:02:30 +02:00
Daniel Schädler c9e1e153df Add interactor to advance all teams stuck in single team matches
After playoffs are created, before saving the stage this interactor
goes to the intermediate stage, looks for all the matches that are
:single_team matches and populates the match below with their respective
"winner".
2019-06-17 15:02:30 +02:00
Daniel Schädler 98319e9625 Assign :intermediate_stage to first stage if single_team matches present 2019-06-17 15:02:30 +02:00