123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- package discordgo_test
- import (
- "os"
- "runtime"
- "testing"
- "time"
- . "github.com/bwmarrin/discordgo"
- )
- var (
- dg *Session
- envToken string = os.Getenv("DG_TOKEN")
- envUsername string = os.Getenv("DG_USERNAME")
- envPassword string = os.Getenv("DG_PASSWORD")
- envGuild string = os.Getenv("DG_GUILD")
- envChannel string = os.Getenv("DG_CHANNEL")
- envUser string = os.Getenv("DG_USER")
- envAdmin string = os.Getenv("DG_ADMIN")
- )
- func waitBoolEqual(timeout time.Duration, check *bool, want bool) bool {
- start := time.Now()
- for {
- if *check == want {
- return true
- }
- if time.Since(start) > timeout {
- return false
- }
- runtime.Gosched()
- }
- }
- func isConnected() bool {
- if dg == nil {
- return false
- }
- if dg.Token == "" {
- return false
- }
-
- if !waitBoolEqual(10*time.Second, &dg.DataReady, true) {
- return false
- }
- return true
- }
- func TestNew(t *testing.T) {
- _, err := New()
- if err != nil {
- t.Errorf("New() returned error: %+v", err)
- }
- }
- func TestNewUserPass(t *testing.T) {
- if isConnected() {
- t.Skip("Skipping New(username,password), already connected.")
- }
- if envUsername == "" || envPassword == "" {
- t.Skip("Skipping New(username,password), DG_USERNAME or DG_PASSWORD not set")
- return
- }
-
- }
- func TestNewToken(t *testing.T) {
- if isConnected() {
- t.Skip("Skipping New(token), already connected.")
- }
- if envToken == "" {
- t.Skip("Skipping New(token), DG_TOKEN not set")
- }
- d, err := New(envToken)
- if err != nil {
- t.Fatalf("New(envToken) returned error: %+v", err)
- }
- if d == nil {
- t.Fatal("New(envToken), d is nil, should be Session{}")
- }
- if d.Token == "" {
- t.Fatal("New(envToken), d.Token is empty, should be a valid Token.")
- }
- if !waitBoolEqual(10*time.Second, &d.DataReady, true) {
- t.Fatal("New(envToken), d.DataReady is false after 10 seconds. Should be true.")
- }
- t.Log("Successfully connected to Discord.")
- dg = d
- }
|