1
0
Fork 0
mirror of https://github.com/diamondburned/arikawa.git synced 2025-04-15 17:55:21 +00:00

Gateway: Test Reconnect error

This commit is contained in:
diamondburned 2021-04-07 11:42:13 -07:00
parent ebc74e3168
commit 728bc5c472

View file

@ -39,16 +39,16 @@ func TestURL(t *testing.T) {
func TestInvalidToken(t *testing.T) { func TestInvalidToken(t *testing.T) {
g, err := NewGateway("bad token") g, err := NewGateway("bad token")
if err != nil { if err != nil {
t.Fatal("Failed to make a Gateway:", err) t.Fatal("failed to make a Gateway:", err)
} }
if err = g.Open(); err == nil { if err = g.Open(); err == nil {
t.Fatal("Unexpected success while opening with a bad token.") t.Fatal("unexpected success while opening with a bad token.")
} }
// 4004 Authentication Failed. // 4004 Authentication Failed.
if !strings.Contains(err.Error(), "4004") { if !strings.Contains(err.Error(), "4004") {
t.Fatal("Unexpected error:", err) t.Fatal("unexpected error:", err)
} }
} }
@ -64,26 +64,26 @@ func TestIntegration(t *testing.T) {
// NewGateway should call Start for us. // NewGateway should call Start for us.
g, err := NewGateway("Bot " + config.BotToken) g, err := NewGateway("Bot " + config.BotToken)
if err != nil { if err != nil {
t.Fatal("Failed to make a Gateway:", err) t.Fatal("failed to make a Gateway:", err)
} }
g.AddIntents(IntentGuilds) g.AddIntents(IntentGuilds)
g.AfterClose = func(err error) { g.AfterClose = func(err error) {
t.Log("Closed.") t.Log("closed.")
} }
gateway = g gateway = g
if err := g.Open(); err != nil { if err := g.Open(); err != nil {
t.Fatal("Failed to authenticate with Discord:", err) t.Fatal("failed to authenticate with Discord:", err)
} }
ev := wait(t, gateway.Events) ev := wait(t, gateway.Events)
ready, ok := ev.(*ReadyEvent) ready, ok := ev.(*ReadyEvent)
if !ok { if !ok {
t.Fatal("Event received is not of type Ready:", ev) t.Fatal("event received is not of type Ready:", ev)
} }
if gateway.SessionID() == "" { if gateway.SessionID() == "" {
t.Fatal("Session ID is empty") t.Fatal("session ID is empty")
} }
log.Println("Bot's username is", ready.User.Username) log.Println("Bot's username is", ready.User.Username)
@ -100,10 +100,12 @@ func TestIntegration(t *testing.T) {
defer cancel() defer cancel()
g.ErrorLog = func(err error) { g.ErrorLog = func(err error) {
t.Fatal("Unexpected error while reconnecting:", err) t.Error("unexpected error while reconnecting:", err)
} }
gateway.ReconnectCtx(ctx) if err := gateway.ReconnectCtx(ctx); err != nil {
t.Error("failed to reconnect Gateway:", err)
}
}) })
g.ErrorLog = func(err error) { log.Println(err) } g.ErrorLog = func(err error) { log.Println(err) }
@ -122,7 +124,7 @@ func TestIntegration(t *testing.T) {
}) })
if err := g.Close(); err != nil { if err := g.Close(); err != nil {
t.Fatal("Failed to close Gateway:", err) t.Fatal("failed to close Gateway:", err)
} }
} }
@ -131,7 +133,7 @@ func wait(t *testing.T, evCh chan interface{}) interface{} {
case ev := <-evCh: case ev := <-evCh:
return ev return ev
case <-time.After(20 * time.Second): case <-time.After(20 * time.Second):
t.Fatal("Timed out waiting for event") t.Fatal("timed out waiting for event")
return nil return nil
} }
} }
@ -147,7 +149,7 @@ func gotimeout(t *testing.T, fn func()) {
select { select {
case <-time.After(20 * time.Second): case <-time.After(20 * time.Second):
t.Fatal("Timed out waiting for function.") t.Fatal("timed out waiting for function.")
case <-done: case <-done:
return return
} }