package main
import "testing"
func TestPlaceCallAndDrainInvites(t *testing.T) {
s := NewStore()
inv := s.PlaceCall("bob", Invite{From: "alice", MeetingID: newMeetingID()})
if inv.CreatedAt.IsZero() {
t.Fatal("CreatedAt not set")
}
got := s.DrainInvites("bob")
if len(got) != 1 || got[0].MeetingID != inv.MeetingID {
t.Fatalf("DrainInvites = %+v, want one invite with meetingId %q", got, inv.MeetingID)
}
if got := s.DrainInvites("bob"); len(got) != 0 {
t.Fatalf("DrainInvites after drain = %+v, want empty", got)
}
}
func TestMeetingIDsAreDistinct(t *testing.T) {
if newMeetingID() == newMeetingID() {
t.Fatal("two meeting IDs collided")
}
}
func TestPresence(t *testing.T) {
s := NewStore()
if s.IsOnline("bob") {
t.Fatal("unknown user reported online")
}
s.DrainInvites("bob")
if !s.IsOnline("bob") {
t.Fatal("polling user not reported online")
}
}