Initialize project with basic structure, including Docker configuration, backend and frontend setup, environment configuration, and essential files for development.
This commit is contained in:
45
backend/internal/domain/tournament_test.go
Normal file
45
backend/internal/domain/tournament_test.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package domain
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestSingleEliminationAdvancement(t *testing.T) {
|
||||
tr, err := NewTournament("cup", "event", "Night Cup", []string{"a", "b", "c", "d"})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
tr.Rounds[0][0].WinnerTeamID = "a"
|
||||
if err := tr.Advance(0, 0); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
tr.Rounds[0][1].WinnerTeamID = "d"
|
||||
if err := tr.Advance(0, 1); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got := tr.Rounds[1][0]; got.TeamAID != "a" || got.TeamBID != "d" {
|
||||
t.Fatalf("unexpected final: %+v", got)
|
||||
}
|
||||
tr.Rounds[1][0].WinnerTeamID = "d"
|
||||
if err := tr.Advance(1, 0); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if tr.WinnerTeamID != "d" {
|
||||
t.Fatalf("winner = %q", tr.WinnerTeamID)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTournamentCreatesByeForNonPowerOfTwo(t *testing.T) {
|
||||
tr, err := NewTournament("cup", "event", "Cup", []string{"a", "b", "c"})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(tr.Rounds) != 2 || len(tr.Rounds[0]) != 2 {
|
||||
t.Fatalf("unexpected bracket shape: %+v", tr.Rounds)
|
||||
}
|
||||
bye := tr.Rounds[0][1]
|
||||
if bye.TeamAID != "b" || bye.TeamBID != "" || bye.WinnerTeamID != "b" {
|
||||
t.Fatalf("unexpected bye: %+v", bye)
|
||||
}
|
||||
if tr.Rounds[1][0].TeamBID != "b" {
|
||||
t.Fatalf("bye was not advanced: %+v", tr.Rounds[1][0])
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user