price-is-wrong/pkg/state/lobby/lobby_test.go

54 lines
1.2 KiB
Go

package lobby_test
import (
"gitea/price-is-wrong/pkg/lib"
"gitea/price-is-wrong/pkg/state/lobby"
"testing"
)
func TestOpen(t *testing.T) {
ctx := lib.NewTestCtx(t)
l, err := lobby.Open(ctx, "id")
if err != nil {
t.Fatal(err)
}
t.Logf("%+v", l)
if len(l.Players) != 0 {
t.Errorf("new lobby has players: %+v", l.Players)
}
if err := l.Join(ctx, 1); err != nil {
t.Fatal("failed to join:", err)
} else if len(l.Players) != 1 {
t.Errorf("wrong number of players after first join: %+v", l.Players)
}
if err := l.Leave(ctx, 1); err != nil {
t.Fatal("failed to join:", err)
} else if len(l.Players) != 0 {
t.Errorf("wrong number of players after only leaves: %+v", l.Players)
}
if err := l.Join(ctx, 1); err != nil {
t.Fatal("failed to join:", err)
} else if err := l.Join(ctx, 1); err != nil {
t.Fatal("failed to join redundant:", err)
} else if len(l.Players) != 1 {
t.Errorf("redundant join yielded wrong players: %+v", l.Players)
}
if err := l.Join(ctx, 2); err != nil {
t.Fatal("failed to second join:", err)
} else if len(l.Players) != 2 {
t.Errorf("second join yielded wrong players: %+v", l.Players)
}
if err := l.Close(ctx); err != nil {
t.Fatal(err)
} else if !l.Closed {
t.Error(l.Closed)
}
}