mirror of
https://github.com/diamondburned/arikawa.git
synced 2024-10-31 20:14:21 +00:00
API: Added an integration test for React
This commit is contained in:
parent
51e88a47b2
commit
c1ace1829b
|
@ -30,6 +30,7 @@ integration_test:
|
|||
variables:
|
||||
- $BOT_TOKEN
|
||||
- $VOICE_ID # for voice tests
|
||||
- $CHANNEL_ID # for API integration tests
|
||||
script:
|
||||
# go get first, so it doesn't count towards the timeout.
|
||||
- go get ./...
|
||||
|
|
21
api/guild.go
21
api/guild.go
|
@ -4,7 +4,6 @@ import (
|
|||
"io"
|
||||
|
||||
"github.com/diamondburned/arikawa/discord" // for clarity
|
||||
d "github.com/diamondburned/arikawa/discord"
|
||||
"github.com/diamondburned/arikawa/utils/httputil"
|
||||
)
|
||||
|
||||
|
@ -16,9 +15,9 @@ type CreateGuildData struct {
|
|||
Icon Image `json:"image,omitempty"`
|
||||
|
||||
// package dc is just package discord
|
||||
Verification d.Verification `json:"verification_level"`
|
||||
Notification d.Notification `json:"default_message_notifications"`
|
||||
ExplicitFilter d.ExplicitFilter `json:"explicit_content_filter"`
|
||||
Verification discord.Verification `json:"verification_level"`
|
||||
Notification discord.Notification `json:"default_message_notifications"`
|
||||
ExplicitFilter discord.ExplicitFilter `json:"explicit_content_filter"`
|
||||
|
||||
// [0] (First entry) is ALWAYS @everyone.
|
||||
Roles []discord.Role `json:"roles,omitempty"`
|
||||
|
@ -124,19 +123,19 @@ type ModifyGuildData struct {
|
|||
Icon Image `json:"image,omitempty"`
|
||||
|
||||
// package d is just package discord
|
||||
Verification *d.Verification `json:"verification_level,omitempty"`
|
||||
Notification *d.Notification `json:"default_message_notifications,omitempty"`
|
||||
ExplicitFilter *d.ExplicitFilter `json:"explicit_content_filter,omitempty"`
|
||||
Verification *discord.Verification `json:"verification_level,omitempty"`
|
||||
Notification *discord.Notification `json:"default_message_notifications,omitempty"`
|
||||
ExplicitFilter *discord.ExplicitFilter `json:"explicit_content_filter,omitempty"`
|
||||
|
||||
AFKChannelID *d.Snowflake `json:"afk_channel_id,string,omitempty"`
|
||||
AFKTimeout *d.Seconds `json:"afk_timeout,omitempty"`
|
||||
AFKChannelID *discord.Snowflake `json:"afk_channel_id,string,omitempty"`
|
||||
AFKTimeout *discord.Seconds `json:"afk_timeout,omitempty"`
|
||||
|
||||
OwnerID d.Snowflake `json:"owner_id,string,omitempty"`
|
||||
OwnerID discord.Snowflake `json:"owner_id,string,omitempty"`
|
||||
|
||||
Splash Image `json:"splash,omitempty"`
|
||||
Banner Image `json:"banner,omitempty"`
|
||||
|
||||
SystemChannelID d.Snowflake `json:"system_channel_id,string,omitempty"`
|
||||
SystemChannelID discord.Snowflake `json:"system_channel_id,string,omitempty"`
|
||||
}
|
||||
|
||||
func (c *Client) ModifyGuild(
|
||||
|
|
|
@ -3,18 +3,46 @@
|
|||
package api
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/diamondburned/arikawa/discord"
|
||||
)
|
||||
|
||||
func TestIntegration(t *testing.T) {
|
||||
type testConfig struct {
|
||||
BotToken string
|
||||
ChannelID discord.Snowflake
|
||||
}
|
||||
|
||||
func mustConfig(t *testing.T) testConfig {
|
||||
var token = os.Getenv("BOT_TOKEN")
|
||||
if token == "" {
|
||||
t.Fatal("Missing $BOT_TOKEN")
|
||||
}
|
||||
|
||||
client := NewClient("Bot " + token)
|
||||
var cid = os.Getenv("CHANNEL_ID")
|
||||
if cid == "" {
|
||||
t.Fatal("Missing $CHANNEL_ID")
|
||||
}
|
||||
|
||||
id, err := discord.ParseSnowflake(cid)
|
||||
if err != nil {
|
||||
t.Fatal("Invalid $CHANNEL_ID:", err)
|
||||
}
|
||||
|
||||
return testConfig{
|
||||
BotToken: token,
|
||||
ChannelID: id,
|
||||
}
|
||||
}
|
||||
|
||||
func TestIntegration(t *testing.T) {
|
||||
cfg := mustConfig(t)
|
||||
|
||||
client := NewClient("Bot " + cfg.BotToken)
|
||||
|
||||
// Simple GET request
|
||||
u, err := client.Me()
|
||||
|
@ -30,3 +58,44 @@ func TestIntegration(t *testing.T) {
|
|||
t.Fatal("Can't get guilds:", err)
|
||||
}
|
||||
}
|
||||
|
||||
var emojisToSend = [...]string{
|
||||
"🥺",
|
||||
"❤",
|
||||
"😂",
|
||||
"🥰",
|
||||
"😊",
|
||||
"🔥",
|
||||
"✔",
|
||||
"👍",
|
||||
"😍",
|
||||
"🐻",
|
||||
"🤯",
|
||||
"🔣",
|
||||
"🍔",
|
||||
"🎌",
|
||||
"🇯🇵",
|
||||
"🎥",
|
||||
"🇺🇸",
|
||||
"🌎",
|
||||
}
|
||||
|
||||
func TestReactions(t *testing.T) {
|
||||
cfg := mustConfig(t)
|
||||
|
||||
client := NewClient("Bot " + cfg.BotToken)
|
||||
|
||||
msg := fmt.Sprint("This is a message sent at ", time.Now())
|
||||
|
||||
// Send a new message.
|
||||
m, err := client.SendMessage(cfg.ChannelID, msg, nil)
|
||||
if err != nil {
|
||||
t.Fatal("Failed to send message:", err)
|
||||
}
|
||||
|
||||
for _, emojiString := range emojisToSend {
|
||||
if err := client.React(cfg.ChannelID, m.ID, emojiString); err != nil {
|
||||
t.Fatal("Failed to send emoji "+emojiString+":", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
3
go.mod
3
go.mod
|
@ -9,7 +9,6 @@ require (
|
|||
github.com/pkg/errors v0.9.1
|
||||
github.com/sasha-s/go-csync v0.0.0-20160729053059-3bc6c8bdb3fa
|
||||
github.com/sasha-s/go-deadlock v0.2.0
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
|
||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2 // indirect
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0
|
||||
)
|
||||
|
|
8
go.sum
8
go.sum
|
@ -12,9 +12,13 @@ github.com/sasha-s/go-deadlock v0.2.0 h1:lMqc+fUb7RrFS3gQLtoQsJ7/6TV/pAIFvBsqX73
|
|||
github.com/sasha-s/go-deadlock v0.2.0/go.mod h1:StQn567HiB1fF2yJ44N9au7wOhrPS3iZqiDbRupzT10=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI=
|
||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI=
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
|
|
Loading…
Reference in a new issue