diff --git a/field/arena.go b/field/arena.go index 9ddfe1e..e2283e5 100644 --- a/field/arena.go +++ b/field/arena.go @@ -442,7 +442,7 @@ func (arena *Arena) Update() { arena.AllianceStationDisplayMode = "match" arena.AllianceStationDisplayModeNotifier.Notify() //arena.sendGameSpecificDataPacket() - if (game.MatchTiming.WarmupDurationSec > 0) { + if game.MatchTiming.WarmupDurationSec > 0 { arena.MatchState = WarmupPeriod enabled = false sendDsPacket = false diff --git a/field/arena_test.go b/field/arena_test.go index c322203..e33611f 100644 --- a/field/arena_test.go +++ b/field/arena_test.go @@ -495,18 +495,33 @@ func TestAstop(t *testing.T) { assert.Equal(t, true, arena.AllianceStations["R1"].DsConn.Enabled) arena.handleEstop("R1", true) + arena.handleEstop("R2", false) + assert.Equal(t, true, arena.AllianceStations["R1"].Astop) + assert.Equal(t, false, arena.AllianceStations["R1"].Estop) + assert.Equal(t, false, arena.AllianceStations["R2"].Astop) + assert.Equal(t, false, arena.AllianceStations["R2"].Estop) arena.lastDsPacketTime = time.Unix(0, 0) // Force a DS packet. arena.Update() assert.Equal(t, false, arena.AllianceStations["R1"].DsConn.Enabled) assert.Equal(t, true, arena.AllianceStations["R2"].DsConn.Enabled) + arena.handleEstop("R1", true) arena.handleEstop("R2", true) + assert.Equal(t, true, arena.AllianceStations["R1"].Astop) + assert.Equal(t, false, arena.AllianceStations["R1"].Estop) + assert.Equal(t, true, arena.AllianceStations["R2"].Astop) + assert.Equal(t, false, arena.AllianceStations["R2"].Estop) arena.lastDsPacketTime = time.Unix(0, 0) // Force a DS packet. arena.Update() assert.Equal(t, false, arena.AllianceStations["R1"].DsConn.Enabled) assert.Equal(t, false, arena.AllianceStations["R2"].DsConn.Enabled) arena.handleEstop("R1", false) + arena.handleEstop("R2", true) + assert.Equal(t, true, arena.AllianceStations["R1"].Astop) + assert.Equal(t, false, arena.AllianceStations["R1"].Estop) + assert.Equal(t, true, arena.AllianceStations["R2"].Astop) + assert.Equal(t, false, arena.AllianceStations["R2"].Estop) arena.lastDsPacketTime = time.Unix(0, 0) // Force a DS packet. arena.Update() assert.Equal(t, false, arena.AllianceStations["R1"].DsConn.Enabled) @@ -518,16 +533,27 @@ func TestAstop(t *testing.T) { assert.Equal(t, PausePeriod, arena.MatchState) arena.MatchStartTime = time.Now().Add(-time.Duration(game.MatchTiming.WarmupDurationSec+ game.MatchTiming.AutoDurationSec+game.MatchTiming.PauseDurationSec) * time.Second) + arena.handleEstop("R1", false) arena.handleEstop("R2", true) + assert.Equal(t, false, arena.AllianceStations["R1"].Astop) + assert.Equal(t, false, arena.AllianceStations["R1"].Estop) + assert.Equal(t, false, arena.AllianceStations["R2"].Astop) + assert.Equal(t, true, arena.AllianceStations["R2"].Estop) + arena.lastDsPacketTime = time.Unix(0, 0) // Force a DS packet. arena.Update() assert.Equal(t, TeleopPeriod, arena.MatchState) assert.Equal(t, true, arena.AllianceStations["R1"].DsConn.Enabled) assert.Equal(t, false, arena.AllianceStations["R2"].DsConn.Enabled) + arena.handleEstop("R1", true) arena.handleEstop("R2", false) + assert.Equal(t, false, arena.AllianceStations["R1"].Astop) + assert.Equal(t, true, arena.AllianceStations["R1"].Estop) + assert.Equal(t, false, arena.AllianceStations["R2"].Astop) + assert.Equal(t, true, arena.AllianceStations["R2"].Estop) arena.lastDsPacketTime = time.Unix(0, 0) // Force a DS packet. arena.Update() - assert.Equal(t, true, arena.AllianceStations["R1"].DsConn.Enabled) + assert.Equal(t, false, arena.AllianceStations["R1"].DsConn.Enabled) assert.Equal(t, false, arena.AllianceStations["R2"].DsConn.Enabled) } diff --git a/field/test_helpers.go b/field/test_helpers.go index e4a19a5..d26b7f0 100644 --- a/field/test_helpers.go +++ b/field/test_helpers.go @@ -7,6 +7,7 @@ package field import ( "fmt" + "github.com/Team254/cheesy-arena/game" "github.com/Team254/cheesy-arena/model" "github.com/stretchr/testify/assert" "math/rand" @@ -26,5 +27,7 @@ func SetupTestArena(t *testing.T, uniqueName string) *Arena { } func setupTestArena(t *testing.T) *Arena { + game.MatchTiming.WarmupDurationSec = 3 + game.MatchTiming.PauseDurationSec = 2 return SetupTestArena(t, "field") } diff --git a/game/seesaw_test.go b/game/seesaw_test.go index 5afe4f8..db491a3 100644 --- a/game/seesaw_test.go +++ b/game/seesaw_test.go @@ -65,7 +65,7 @@ func TestSecondCounting(t *testing.T) { assertRedSeconds(t, 13.8, 0.0, redSwitch, timeAfterStart(17), timeAfterEnd(-10)) redSwitch.UpdateState([2]bool{true, false}, timeAfterEnd(-5.1)) assertRedSeconds(t, 18.9, 0.0, redSwitch, timeAfterStart(17), timeAfterEnd(0)) - assertBlueSeconds(t, 111.9, 0.0, redSwitch, timeAfterStart(17), timeAfterEnd(0)) + assertBlueSeconds(t, 109.9, 0.0, redSwitch, timeAfterStart(17), timeAfterEnd(0)) } func TestForce(t *testing.T) { diff --git a/web/alliance_station_display_test.go b/web/alliance_station_display_test.go index 03b22e7..977406f 100644 --- a/web/alliance_station_display_test.go +++ b/web/alliance_station_display_test.go @@ -60,7 +60,7 @@ func TestAllianceStationDisplayWebsocket(t *testing.T) { web.arena.AllianceStations["B3"].Bypass = true web.arena.StartMatch() web.arena.Update() - messages := readWebsocketMultiple(t, ws, 2) + messages := readWebsocketMultiple(t, ws, 3) _, ok := messages["matchTime"] assert.True(t, ok) web.arena.MatchStartTime = time.Now().Add(-time.Duration(game.MatchTiming.WarmupDurationSec) * time.Second) diff --git a/web/match_play_test.go b/web/match_play_test.go index b5d3e1d..bb37e63 100644 --- a/web/match_play_test.go +++ b/web/match_play_test.go @@ -350,7 +350,7 @@ func TestMatchPlayWebsocketNotifications(t *testing.T) { web.arena.AllianceStations["B3"].Bypass = true assert.Nil(t, web.arena.StartMatch()) web.arena.Update() - messages := readWebsocketMultiple(t, ws, 3) + messages := readWebsocketMultiple(t, ws, 4) _, ok := messages["matchTime"] assert.True(t, ok) _, ok = messages["audienceDisplayMode"] @@ -364,7 +364,6 @@ func TestMatchPlayWebsocketNotifications(t *testing.T) { assert.Equal(t, true, statusReceived) assert.Equal(t, 3, matchTime.MatchState) assert.Equal(t, 3, matchTime.MatchTimeSec) - assert.True(t, ok) web.arena.ScoringStatusNotifier.Notify() readWebsocketType(t, ws, "scoringStatus") diff --git a/web/web_test.go b/web/web_test.go index 532f5b7..7d1f11d 100644 --- a/web/web_test.go +++ b/web/web_test.go @@ -5,6 +5,7 @@ package web import ( "github.com/Team254/cheesy-arena/field" + "github.com/Team254/cheesy-arena/game" "github.com/Team254/cheesy-arena/websocket" "github.com/stretchr/testify/assert" "net/http" @@ -83,6 +84,8 @@ func readWebsocketMultiple(t *testing.T, ws *websocket.Websocket, count int) map } func setupTestWeb(t *testing.T) *Web { + game.MatchTiming.WarmupDurationSec = 3 + game.MatchTiming.PauseDurationSec = 2 arena := field.SetupTestArena(t, "web") return NewWeb(arena) }