54 lines
1.2 KiB
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)
|
|
}
|
|
}
|