Skip to content

Commit 1b7f953

Browse files
committed
Disallow changing number of playoff alliances after alliance selection.
1 parent 0e300d0 commit 1b7f953

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

web/setup_settings.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,16 @@ func (web *Web) settingsPostHandler(w http.ResponseWriter, r *http.Request) {
5555
playoffType = model.DoubleEliminationPlayoff
5656
numAlliances = 8
5757
}
58-
if eventSettings.PlayoffType != playoffType {
58+
if eventSettings.PlayoffType != playoffType || eventSettings.NumPlayoffAlliances != numAlliances {
5959
alliances, err := web.arena.Database.GetAllAlliances()
6060
if err != nil {
6161
handleWebErr(w, err)
6262
return
6363
}
6464
if len(alliances) > 0 {
65-
web.renderSettings(w, r, "Cannot change playoff type after alliance selection has been finalized.")
65+
web.renderSettings(
66+
w, r, "Cannot change playoff type or size after alliance selection has been finalized.",
67+
)
6668
return
6769
}
6870
}

web/setup_settings_test.go

+9-3
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,21 @@ func TestSetupSettingsDoubleElimination(t *testing.T) {
5050

5151
func TestSetupSettingsInvalidValues(t *testing.T) {
5252
web := setupTestWeb(t)
53+
recorder := web.postHttpResponse("/setup/settings", "playoffType=SingleEliminationPlayoff&numPlayoffAlliances=8")
54+
assert.Equal(t, 303, recorder.Code)
5355

5456
// Invalid number of alliances.
55-
recorder := web.postHttpResponse("/setup/settings", "playoffType=SingleEliminationPlayoff&numAlliances=1")
57+
recorder = web.postHttpResponse("/setup/settings", "playoffType=SingleEliminationPlayoff&numAlliances=1")
5658
assert.Contains(t, recorder.Body.String(), "must be between 2 and 16")
5759

5860
// Changing the playoff type after alliance selection is finalized.
5961
assert.Nil(t, web.arena.Database.CreateAlliance(&model.Alliance{Id: 1}))
60-
recorder = web.postHttpResponse("/setup/settings", "playoffType=SingleEliminationPlayoff&numPlayoffAlliances=8")
61-
assert.Contains(t, recorder.Body.String(), "Cannot change playoff type after alliance selection")
62+
recorder = web.postHttpResponse("/setup/settings", "playoffType=DoubleEliminationPlayoff")
63+
assert.Contains(t, recorder.Body.String(), "Cannot change playoff type or size after alliance selection")
64+
65+
// Changing the playoff size after alliance selection is finalized.
66+
recorder = web.postHttpResponse("/setup/settings", "numPlayoffAlliances=2")
67+
assert.Contains(t, recorder.Body.String(), "Cannot change playoff type or size after alliance selection")
6268
}
6369

6470
func TestSetupSettingsClearDb(t *testing.T) {

0 commit comments

Comments
 (0)