dismock

package
v3.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 11, 2023 License: MIT Imports: 30 Imported by: 1

Documentation

Overview

Package dismock creates mocks for the Discord API. The names of the mocks correspond to arikawa's API wrapper names, but as this are http mocks, any discord library can be mocked.

Mocking Requests for Metadata

Besides the regular API calls, dismock also features mocks for fetching an entities meta data, e.g. an icon or a splash. In order to mock requests for an entity's meta data, you need to make sure that those requests are made with Mocker.Client, so that the requests are correctly redirected to the mock server.

Mocking Errors

To send a discord error, use the Mocker.Error method with the path of the endpoint that should return an error.

Important Notes

BUG(mavolin): Due to an inconvenient behavior of json.Unmarshal where sometimes on JSON null the UnmarshalJSON method doesn't get called there is no way to differentiate between option.NullX and an omitted (nil) value. Therefore, both will be seen as equal.

BUG(mavolin): Due to the way Snowflakes are serialized, all fields that don't have the omitempty flag and are set to 0, will be sent as JSON null.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Handler

type Handler struct {
	// Name is the name of the handler.
	Name string
	// Handler is the underlying http.Handler.
	http.Handler
}

Handler is a named handler for mocked endpoints.

type MockFunc

type MockFunc func(w http.ResponseWriter, r *http.Request, t testing.TInterface)

MockFunc is the function used to create a mock.

type Mocker

type Mocker struct {
	// Server is the httptest.Server used to mock the requests.
	Server *httptest.Server
	// Client is a mocked *http.Client that redirects all requests to the
	// Server.
	Client *http.Client
	// contains filtered or unexported fields
}

Mocker handles the mocking of arikawa's API calls.

func New

func New(t testing.TInterface) *Mocker

New creates a new Mocker with a started server listening on Mocker.Server.Listener.Addr().

func NewSession

func NewSession(t testing.TInterface) (*Mocker, *session.Session)

NewSession creates a new Mocker, starts its test server and returns a manipulated session.Session using the test server.

func NewState

func NewState(t testing.TInterface) (*Mocker, *state.State)

NewState creates a new Mocker, starts its test server and returns a manipulated state.State which's Session uses the test server. In order to allow for successful testing, the State's Store, will always return an error, forcing the use of the (mocked) Session.

func (*Mocker) Ack

func (m *Mocker) Ack(channelID discord.ChannelID, messageID discord.MessageID, send, ret api.Ack)

Ack mocks api.Client.Ack.

func (*Mocker) ActiveThreads

func (m *Mocker) ActiveThreads(guildID discord.GuildID, _ret api.ActiveThreads)

ActiveThreads mocks api.Client.ActiveThreads.

func (*Mocker) AddMember

func (m *Mocker) AddMember(guildID discord.GuildID, data api.AddMemberData, _ret discord.Member)

AddMember mocks api.Client.AddMember.

func (*Mocker) AddRecipient

func (m *Mocker) AddRecipient(channelID discord.ChannelID, userID discord.UserID, accessToken string, nickname string)

AddRecipient mocks api.Client.AddRecipient.

func (*Mocker) AddRole

func (m *Mocker) AddRole(guildID discord.GuildID, userID discord.UserID, roleID discord.RoleID, data api.AddRoleData)

AddRole mocks api.Client.AddRole.

func (*Mocker) AddThreadMember

func (m *Mocker) AddThreadMember(threadID discord.ChannelID, userID discord.UserID)

AddThreadMember mocks api.Client.AddThreadMember.

func (*Mocker) AttachIntegration

func (m *Mocker) AttachIntegration(guildID discord.GuildID, integrationID discord.IntegrationID, integrationType discord.Service)

AttachIntegration mocks api.Client.AttachIntegration.

func (*Mocker) AuditLog

func (m *Mocker) AuditLog(guildID discord.GuildID, data api.AuditLogData, _ret discord.AuditLog)

AuditLog mocks api.Client.AuditLog.

func (*Mocker) Ban

func (m *Mocker) Ban(guildID discord.GuildID, userID discord.UserID, data api.BanData)

Ban mocks api.Client.Ban.

func (*Mocker) Banner

func (m *Mocker) Banner(guildID discord.GuildID, banner discord.Hash, img io.Reader)

Banner mocks a Banner request.

This method can be used for both discord.Guild and discord.GuildPreview.

func (*Mocker) BannerWithType

func (m *Mocker) BannerWithType(guildID discord.GuildID, banner discord.Hash, t discord.ImageType, img io.Reader)

BannerWithType mocks a BannerWithType request.

This method can be used for both discord.Guild and discord.GuildPreview.

func (*Mocker) Bans

func (m *Mocker) Bans(guildID discord.GuildID, _ret []discord.Ban)

Bans mocks api.Client.Bans.

func (*Mocker) BatchEditCommandPermissions

func (m *Mocker) BatchEditCommandPermissions(appID discord.AppID, guildID discord.GuildID, data []api.BatchEditCommandPermissionsData, _ret []discord.GuildCommandPermissions)

BatchEditCommandPermissions mocks api.Client.BatchEditCommandPermissions.

func (*Mocker) BulkOverwriteCommands

func (m *Mocker) BulkOverwriteCommands(appID discord.AppID, commands []api.CreateCommandData, _ret []discord.Command)

BulkOverwriteCommands mocks api.Client.BulkOverwriteCommands.

func (*Mocker) BulkOverwriteGuildCommands

func (m *Mocker) BulkOverwriteGuildCommands(appID discord.AppID, guildID discord.GuildID, commands []api.CreateCommandData, _ret []discord.Command)

BulkOverwriteGuildCommands mocks api.Client.BulkOverwriteGuildCommands.

func (*Mocker) Channel

func (m *Mocker) Channel(_ret discord.Channel)

Channel mocks api.Client.Channel.

func (*Mocker) ChannelIcon

func (m *Mocker) ChannelIcon(channelID discord.ChannelID, icon discord.Hash, img io.Reader)

ChannelIcon mocks a ChannelIcon request.

func (*Mocker) ChannelIconWithType

func (m *Mocker) ChannelIconWithType(
	channelID discord.ChannelID, icon discord.Hash, t discord.ImageType, img io.Reader,
)

ChannelIconWithType mocks a ChannelIconWithType request.

func (*Mocker) ChannelInvites

func (m *Mocker) ChannelInvites(channelID discord.ChannelID, _ret []discord.Invite)

ChannelInvites mocks api.Client.ChannelInvites.

func (*Mocker) ChannelWebhooks

func (m *Mocker) ChannelWebhooks(channelID discord.ChannelID, _ret []discord.Webhook)

ChannelWebhooks mocks api.Client.ChannelWebhooks.

func (*Mocker) Channels

func (m *Mocker) Channels(guildID discord.GuildID, _ret []discord.Channel)

Channels mocks api.Client.Channels.

func (*Mocker) Clone

func (m *Mocker) Clone(t testing.TInterface) (clone *Mocker)

Clone creates a clone of the Mocker that has the same handlers but a separate server.

Creating a clone will automatically close the Mocker's server.

func (*Mocker) CloneSession

func (m *Mocker) CloneSession(t testing.TInterface) (clone *Mocker, s *session.Session)

CloneSession clones handlers of the Mocker and returns the cloned Mocker and a new session.Session using the new server.

Creating a clone will automatically close the Mocker's server.

func (*Mocker) CloneState

func (m *Mocker) CloneState(t testing.TInterface) (clone *Mocker, s *state.State)

CloneState clones handlers of the Mocker and returns the cloned Mocker and a new state.State using the new server. Useful for multiple tests with the same API calls.

Creating a clone will automatically close the current server.

func (*Mocker) Close

func (m *Mocker) Close()

Close shuts down the server and blocks until all current requests are completed.

func (*Mocker) Command

func (m *Mocker) Command(_ret discord.Command)

Command mocks api.Client.Command.

func (*Mocker) CommandPermissions

func (m *Mocker) CommandPermissions(_ret discord.GuildCommandPermissions)

CommandPermissions mocks api.Client.CommandPermissions.

func (*Mocker) Commands

func (m *Mocker) Commands(appID discord.AppID, _ret []discord.Command)

Commands mocks api.Client.Commands.

func (*Mocker) CreateChannel

func (m *Mocker) CreateChannel(data api.CreateChannelData, _ret discord.Channel)

CreateChannel mocks api.Client.CreateChannel.

func (*Mocker) CreateCommand

func (m *Mocker) CreateCommand(data api.CreateCommandData, _ret discord.Command)

CreateCommand mocks api.Client.CreateCommand.

func (*Mocker) CreateEmoji

func (m *Mocker) CreateEmoji(guildID discord.GuildID, data api.CreateEmojiData, _ret discord.Emoji)

CreateEmoji mocks api.Client.CreateEmoji.

func (*Mocker) CreateGuild

func (m *Mocker) CreateGuild(data api.CreateGuildData, _ret discord.Guild)

CreateGuild mocks api.Client.CreateGuild.

func (*Mocker) CreateGuildCommand

func (m *Mocker) CreateGuildCommand(data api.CreateCommandData, _ret discord.Command)

CreateGuildCommand mocks api.Client.CreateGuildCommand.

func (*Mocker) CreateInteractionFollowup

func (m *Mocker) CreateInteractionFollowup(
	appID discord.AppID, token string, resp api.InteractionResponseData, ret discord.Message,
)

CreateInteractionFollowup mocks api.Client.CreateInteractionFollowup.

func (*Mocker) CreateInvite

func (m *Mocker) CreateInvite(channelID discord.ChannelID, data api.CreateInviteData, _ret discord.Invite)

CreateInvite mocks api.Client.CreateInvite.

func (*Mocker) CreatePrivateChannel

func (m *Mocker) CreatePrivateChannel(_ret discord.Channel)

CreatePrivateChannel mocks api.Client.CreatePrivateChannel.

func (*Mocker) CreateRole

func (m *Mocker) CreateRole(guildID discord.GuildID, data api.CreateRoleData, _ret discord.Role)

CreateRole mocks api.Client.CreateRole.

func (*Mocker) CreateScheduledEvent

func (m *Mocker) CreateScheduledEvent(guildID discord.GuildID, reason api.AuditLogReason, data api.CreateScheduledEventData, _ret discord.GuildScheduledEvent)

CreateScheduledEvent mocks api.Client.CreateScheduledEvent.

func (*Mocker) CreateStageInstance

func (m *Mocker) CreateStageInstance(data api.CreateStageInstanceData, _ret discord.StageInstance)

CreateStageInstance mocks api.Client.CreateStageInstance.

func (*Mocker) CreateWebhook

func (m *Mocker) CreateWebhook(data api.CreateWebhookData, _ret discord.Webhook)

CreateWebhook mocks api.Client.CreateWebhook.

func (*Mocker) CrosspostMessage

func (m *Mocker) CrosspostMessage(channelID discord.ChannelID, messageID discord.MessageID, _ret discord.Message)

CrosspostMessage mocks api.Client.CrosspostMessage.

func (*Mocker) CurrentApplication

func (m *Mocker) CurrentApplication(_ret discord.Application)

CurrentApplication mocks api.Client.CurrentApplication.

func (*Mocker) DeleteAllReactions

func (m *Mocker) DeleteAllReactions(channelID discord.ChannelID, messageID discord.MessageID)

DeleteAllReactions mocks api.Client.DeleteAllReactions.

func (*Mocker) DeleteChannel

func (m *Mocker) DeleteChannel(channelID discord.ChannelID, reason api.AuditLogReason)

DeleteChannel mocks api.Client.DeleteChannel.

func (*Mocker) DeleteChannelPermission

func (m *Mocker) DeleteChannelPermission(channelID discord.ChannelID, overwriteID discord.Snowflake, reason api.AuditLogReason)

DeleteChannelPermission mocks api.Client.DeleteChannelPermission.

func (*Mocker) DeleteCommand

func (m *Mocker) DeleteCommand(appID discord.AppID, commandID discord.CommandID)

DeleteCommand mocks api.Client.DeleteCommand.

func (*Mocker) DeleteEmoji

func (m *Mocker) DeleteEmoji(guildID discord.GuildID, emojiID discord.EmojiID, reason api.AuditLogReason)

DeleteEmoji mocks api.Client.DeleteEmoji.

func (*Mocker) DeleteGuild

func (m *Mocker) DeleteGuild(id discord.GuildID)

DeleteGuild mocks api.Client.DeleteGuild.

func (*Mocker) DeleteGuildCommand

func (m *Mocker) DeleteGuildCommand(appID discord.AppID, guildID discord.GuildID, commandID discord.CommandID)

DeleteGuildCommand mocks api.Client.DeleteGuildCommand.

func (*Mocker) DeleteInteractionFollowup

func (m *Mocker) DeleteInteractionFollowup(appID discord.AppID, messageID discord.MessageID, token string)

DeleteInteractionFollowup mocks api.Client.DeleteInteractionFollowup.

func (*Mocker) DeleteInteractionResponse

func (m *Mocker) DeleteInteractionResponse(appID discord.AppID, token string)

DeleteInteractionResponse mocks api.Client.DeleteInteractionResponse.

func (*Mocker) DeleteInvite

func (m *Mocker) DeleteInvite(reason api.AuditLogReason, _ret discord.Invite)

DeleteInvite mocks api.Client.DeleteInvite.

func (*Mocker) DeleteMessage

func (m *Mocker) DeleteMessage(channelID discord.ChannelID, messageID discord.MessageID, reason api.AuditLogReason)

DeleteMessage mocks api.Client.DeleteMessage.

func (*Mocker) DeleteMessages

func (m *Mocker) DeleteMessages(channelID discord.ChannelID, messageIDs []discord.MessageID)

DeleteMessages mocks api.Client.DeleteMessages.

func (*Mocker) DeleteReactions

func (m *Mocker) DeleteReactions(channelID discord.ChannelID, messageID discord.MessageID, emoji discord.APIEmoji)

DeleteReactions mocks api.Client.DeleteReactions.

func (*Mocker) DeleteRelationship

func (m *Mocker) DeleteRelationship(userID discord.UserID)

DeleteRelationship mocks api.Client.DeleteRelationship.

func (*Mocker) DeleteRole

func (m *Mocker) DeleteRole(guildID discord.GuildID, roleID discord.RoleID, reason api.AuditLogReason)

DeleteRole mocks api.Client.DeleteRole.

func (*Mocker) DeleteScheduledEvent

func (m *Mocker) DeleteScheduledEvent(guildID discord.GuildID, eventID discord.EventID)

DeleteScheduledEvent mocks api.Client.DeleteScheduledEvent.

func (*Mocker) DeleteStageInstance

func (m *Mocker) DeleteStageInstance(channelID discord.ChannelID, reason api.AuditLogReason)

DeleteStageInstance mocks api.Client.DeleteStageInstance.

func (*Mocker) DeleteUserReaction

func (m *Mocker) DeleteUserReaction(
	channelID discord.ChannelID, messageID discord.MessageID, userID discord.UserID, e discord.APIEmoji,
)

DeleteUserReaction mocks api.Client.DeleteUserReaction.

func (*Mocker) DeleteWebhook

func (m *Mocker) DeleteWebhook(webhookID discord.WebhookID)

DeleteWebhook mocks api.Client.DeleteWebhook.

func (*Mocker) DeleteWebhookWithToken

func (m *Mocker) DeleteWebhookWithToken(id discord.WebhookID, token string)

DeleteWebhookWithToken mocks api.Client.DeleteWebhookWithToken.

func (*Mocker) DiscoverySplash

func (m *Mocker) DiscoverySplash(guildID discord.GuildID, splash discord.Hash, img io.Reader)

DiscoverySplash mocks a DiscoverySplash request.

This method can be used for both discord.Guild and discord.GuildPreview.

func (*Mocker) DiscoverySplashWithType

func (m *Mocker) DiscoverySplashWithType(
	guildID discord.GuildID, splash discord.Hash, t discord.ImageType, img io.Reader,
)

DiscoverySplashWithType mocks a DiscoverySplashWithType request.

This method can be used for both discord.Guild and discord.GuildPreview.

func (*Mocker) EditChannelPermission

func (m *Mocker) EditChannelPermission(channelID discord.ChannelID, overwriteID discord.Snowflake, data api.EditChannelPermissionData)

EditChannelPermission mocks api.Client.EditChannelPermission.

func (*Mocker) EditCommand

func (m *Mocker) EditCommand(data api.CreateCommandData, _ret discord.Command)

EditCommand mocks api.Client.EditCommand.

func (*Mocker) EditCommandPermissions

func (m *Mocker) EditCommandPermissions(permissions []discord.CommandPermissions, _ret discord.GuildCommandPermissions)

EditCommandPermissions mocks api.Client.EditCommandPermissions.

func (*Mocker) EditEmbeds

func (m *Mocker) EditEmbeds(msg discord.Message)

EditEmbeds mocks api.Client.EditEmbeds.

func (*Mocker) EditGuildCommand

func (m *Mocker) EditGuildCommand(data api.CreateCommandData, _ret discord.Command)

EditGuildCommand mocks api.Client.EditGuildCommand.

func (*Mocker) EditInteractionFollowup

func (m *Mocker) EditInteractionFollowup(appID discord.AppID, messageID discord.MessageID, token string, data api.EditInteractionResponseData, _ret discord.Message)

EditInteractionFollowup mocks api.Client.EditInteractionFollowup.

func (*Mocker) EditInteractionResponse

func (m *Mocker) EditInteractionResponse(appID discord.AppID, token string, data api.EditInteractionResponseData, _ret discord.Message)

EditInteractionResponse mocks api.Client.EditInteractionResponse.

func (*Mocker) EditMessage

func (m *Mocker) EditMessage(content string, embeds []discord.Embed, msg discord.Message)

EditMessage mocks api.Client.EditMessage.

func (*Mocker) EditMessageComplex

func (m *Mocker) EditMessageComplex(d api.EditMessageData, msg discord.Message)

EditMessageComplex mocks api.Client.EditMessageComplex.

func (*Mocker) EditScheduledEvent

func (m *Mocker) EditScheduledEvent(guildID discord.GuildID, eventID discord.EventID, reason api.AuditLogReason, data api.EditScheduledEventData, _ret discord.GuildScheduledEvent)

EditScheduledEvent mocks api.Client.EditScheduledEvent.

func (*Mocker) EditText

func (m *Mocker) EditText(msg discord.Message)

EditText mocks api.Client.EditText.

func (*Mocker) Emoji

func (m *Mocker) Emoji(guildID discord.GuildID, _ret discord.Emoji)

Emoji mocks api.Client.Emoji.

func (*Mocker) EmojiPicture

func (m *Mocker) EmojiPicture(emojiID discord.EmojiID, animated bool, img io.Reader)

EmojiPicture mocks a EmojiPicture request.

func (*Mocker) EmojiPictureWithType

func (m *Mocker) EmojiPictureWithType(emojiID discord.EmojiID, animated bool, t discord.ImageType, img io.Reader)

EmojiPictureWithType mocks a EmojiPictureWithType request.

func (*Mocker) Emojis

func (m *Mocker) Emojis(guildID discord.GuildID, _ret []discord.Emoji)

Emojis mocks api.Client.Emojis.

func (*Mocker) Error

func (m *Mocker) Error(method, path string, e httputil.HTTPError)

Error simulates an error response for the given path using the given method.

func (*Mocker) ExecuteWebhook

func (m *Mocker) ExecuteWebhook(webhookID discord.WebhookID, token string, d webhook.ExecuteData)

ExecuteWebhook mocks a ExecuteWebhook request and doesn't "wait" for the message to be delivered.

func (*Mocker) ExecuteWebhookAndWait

func (m *Mocker) ExecuteWebhookAndWait(
	webhookID discord.WebhookID, token string, d webhook.ExecuteData, msg discord.Message,
)

ExecuteWebhookAndWait mocks a ExecuteWebhook request and "waits" for the message to be delivered.

func (*Mocker) FollowUpInteraction

func (m *Mocker) FollowUpInteraction(
	appID discord.AppID, token string, resp api.InteractionResponseData, ret discord.Message,
)

FollowUpInteraction mocks api.Client.FollowUpInteraction.

func (*Mocker) GetBan

func (m *Mocker) GetBan(guildID discord.GuildID, _ret discord.Ban)

GetBan mocks api.Client.GetBan.

func (*Mocker) Guild

func (m *Mocker) Guild(_ret discord.Guild)

Guild mocks api.Client.Guild.

func (*Mocker) GuildCommand

func (m *Mocker) GuildCommand(_ret discord.Command)

GuildCommand mocks api.Client.GuildCommand.

func (*Mocker) GuildCommandPermissions

func (m *Mocker) GuildCommandPermissions(appID discord.AppID, guildID discord.GuildID, _ret []discord.GuildCommandPermissions)

GuildCommandPermissions mocks api.Client.GuildCommandPermissions.

func (*Mocker) GuildCommands

func (m *Mocker) GuildCommands(appID discord.AppID, guildID discord.GuildID, _ret []discord.Command)

GuildCommands mocks api.Client.GuildCommands.

func (*Mocker) GuildIcon

func (m *Mocker) GuildIcon(guildID discord.GuildID, icon discord.Hash, img io.Reader)

GuildIcon mocks a GuildIcon request.

This method can be used for both discord.Guild and discord.GuildPreview.

func (*Mocker) GuildIconWithType

func (m *Mocker) GuildIconWithType(guildID discord.GuildID, icon discord.Hash, t discord.ImageType, img io.Reader)

GuildIconWithType mocks a GuildIconWithType request.

This method can be used for both discord.Guild and discord.GuildPreview.

func (*Mocker) GuildInvites

func (m *Mocker) GuildInvites(guildID discord.GuildID, _ret []discord.Invite)

GuildInvites mocks api.Client.GuildInvites.

func (*Mocker) GuildPreview

func (m *Mocker) GuildPreview(_ret discord.GuildPreview)

GuildPreview mocks api.Client.GuildPreview.

func (*Mocker) GuildVanityInvite

func (m *Mocker) GuildVanityInvite(guildID discord.GuildID, _ret discord.Invite)

GuildVanityInvite mocks api.Client.GuildVanityInvite.

func (*Mocker) GuildWebhooks

func (m *Mocker) GuildWebhooks(guildID discord.GuildID, _ret []discord.Webhook)

GuildWebhooks mocks api.Client.GuildWebhooks.

func (*Mocker) GuildWidget

func (m *Mocker) GuildWidget(guildID discord.GuildID, _ret discord.GuildWidget)

GuildWidget mocks api.Client.GuildWidget.

func (*Mocker) GuildWidgetImage

func (m *Mocker) GuildWidgetImage(guildID discord.GuildID, style api.GuildWidgetImageStyle, img io.Reader)

GuildWidgetImage mocks a GuildWidgetImage request.

func (*Mocker) GuildWidgetSettings

func (m *Mocker) GuildWidgetSettings(guildID discord.GuildID, _ret discord.GuildWidgetSettings)

GuildWidgetSettings mocks api.Client.GuildWidgetSettings.

func (*Mocker) GuildWithCount

func (m *Mocker) GuildWithCount(_ret discord.Guild)

GuildWithCount mocks api.Client.GuildWithCount.

func (*Mocker) Guilds

func (m *Mocker) Guilds(limit uint, g []discord.Guild)

Guilds mocks api.Client.Guilds.

func (*Mocker) GuildsAfter

func (m *Mocker) GuildsAfter(after discord.GuildID, limit uint, g []discord.Guild)

GuildsAfter mocks api.Client.GuildsAfter.

func (*Mocker) GuildsBefore

func (m *Mocker) GuildsBefore(before discord.GuildID, limit uint, g []discord.Guild)

GuildsBefore mocks api.Client.GuildsBefore.

func (*Mocker) HTTPClient

func (m *Mocker) HTTPClient() *httputil.Client

HTTPClient wraps the http client of the mocker in a *httputil.Client, as used by arikawa.

func (*Mocker) Integrations

func (m *Mocker) Integrations(guildID discord.GuildID, _ret []discord.Integration)

Integrations mocks api.Client.Integrations.

func (*Mocker) InteractionResponse

func (m *Mocker) InteractionResponse(appID discord.AppID, token string, _ret discord.Message)

InteractionResponse mocks api.Client.InteractionResponse.

func (*Mocker) Invite

func (m *Mocker) Invite(_ret discord.Invite)

Invite mocks api.Client.Invite.

func (*Mocker) InviteWithCounts

func (m *Mocker) InviteWithCounts(_ret discord.Invite)

InviteWithCounts mocks api.Client.InviteWithCounts.

func (*Mocker) JoinInvite

func (m *Mocker) JoinInvite(_ret api.JoinedInvite)

JoinInvite mocks api.Client.JoinInvite.

func (*Mocker) JoinThread

func (m *Mocker) JoinThread(threadID discord.ChannelID)

JoinThread mocks api.Client.JoinThread.

func (*Mocker) JoinedPrivateArchivedThreads

func (m *Mocker) JoinedPrivateArchivedThreads(channelID discord.ChannelID, before discord.Timestamp, limit uint, _ret api.ArchivedThreads)

JoinedPrivateArchivedThreads mocks api.Client.JoinedPrivateArchivedThreads.

func (*Mocker) JoinedPrivateArchivedThreadsBefore

func (m *Mocker) JoinedPrivateArchivedThreadsBefore(
	channelID discord.ChannelID, before discord.Timestamp, limit uint, ret api.ArchivedThreads,
)

JoinedPrivateArchivedThreadsBefore mocks api.Client.JoinedPrivateArchivedThreadsBefore.

func (*Mocker) Kick

func (m *Mocker) Kick(guildID discord.GuildID, userID discord.UserID, reason api.AuditLogReason)

Kick mocks api.Client.Kick.

func (*Mocker) LeaveGuild

func (m *Mocker) LeaveGuild(id discord.GuildID)

LeaveGuild mocks api.Client.LeaveGuild.

func (*Mocker) LeaveThread

func (m *Mocker) LeaveThread(threadID discord.ChannelID)

LeaveThread mocks api.Client.LeaveThread.

func (*Mocker) ListScheduledEventUsers

func (m *Mocker) ListScheduledEventUsers(guildID discord.GuildID, eventID discord.EventID, limit option.NullableInt, withMember bool, before discord.UserID, after discord.UserID, _ret []api.GuildScheduledEventUser)

ListScheduledEventUsers mocks api.Client.ListScheduledEventUsers.

func (*Mocker) ListScheduledEvents

func (m *Mocker) ListScheduledEvents(guildID discord.GuildID, withUserCount bool, _ret []discord.GuildScheduledEvent)

ListScheduledEvents mocks api.Client.ListScheduledEvents.

func (*Mocker) Login

func (m *Mocker) Login(email string, password string, _ret api.LoginResponse)

Login mocks api.Client.Login.

func (*Mocker) Me

func (m *Mocker) Me(_ret discord.User)

Me mocks api.Client.Me.

func (*Mocker) Member

func (m *Mocker) Member(guildID discord.GuildID, _ret discord.Member)

Member mocks api.Client.Member.

func (*Mocker) Members

func (m *Mocker) Members(guildID discord.GuildID, limit uint, members []discord.Member)

Members mocks aoi.Client.Members.

func (*Mocker) MembersAfter

func (m *Mocker) MembersAfter(guildID discord.GuildID, after discord.UserID, limit uint, members []discord.Member)

MembersAfter mocks api.Client.MembersAfter.

func (*Mocker) Message

func (m *Mocker) Message(_ret discord.Message)

Message mocks api.Client.Message.

func (*Mocker) Messages

func (m *Mocker) Messages(channelID discord.ChannelID, limit uint, messages []discord.Message)

Messages mocks a Messages request.

func (*Mocker) MessagesAfter

func (m *Mocker) MessagesAfter(
	channelID discord.ChannelID, after discord.MessageID, limit uint, messages []discord.Message,
)

MessagesAfter mocks a MessagesAfter request.

func (*Mocker) MessagesAround

func (m *Mocker) MessagesAround(
	channelID discord.ChannelID, around discord.MessageID, limit uint, messages []discord.Message,
)

MessagesAround mocks a MessagesAround request.

func (*Mocker) MessagesBefore

func (m *Mocker) MessagesBefore(
	channelID discord.ChannelID, before discord.MessageID, limit uint, messages []discord.Message,
)

MessagesBefore mocks a MessagesBefore request.

This method will sanitize Message.ID, Message.ChannelID and Message.Author.ID.

func (*Mocker) Mock

func (m *Mocker) Mock(name, method, path string, f MockFunc)

Mock uses the passed MockFunc to create a mock for the passed path using the passed method. If there are already handlers for this path with the same method, the handler will be queued up behind the other handlers with the same path and method. Queued up handlers must be invoked in the same order they were added in.

Trailing slashes ('/') will be removed.

Names don't need to be unique, and have the sole purpose of aiding in debugging.

The MockFunc may be nil if only the NoContent status shall be returned.

func (*Mocker) MockAPI

func (m *Mocker) MockAPI(name, method, path string, f MockFunc)

MockAPI uses the passed MockFunc to as handler for the passed path and method. The path must not include the api version, i.e. '/api/v9' must be stripped. If there are already handlers for this path with the same method, the handler will be queued up behind the other handlers with the same path and method. Queued up handlers are invoked in the same order they were added in.

Trailing slashes ('/') will be removed.

Names don't need to be unique, and have the sole purpose of aiding in debugging.

The MockFunc may be nil if only the NoContent status shall be returned.

func (*Mocker) ModifyChannel

func (m *Mocker) ModifyChannel(channelID discord.ChannelID, data api.ModifyChannelData)

ModifyChannel mocks api.Client.ModifyChannel.

func (*Mocker) ModifyCurrentMember

func (m *Mocker) ModifyCurrentMember(guildID discord.GuildID, nick string)

ModifyCurrentMember mocks api.Client.ModifyCurrentMember.

func (*Mocker) ModifyCurrentUser

func (m *Mocker) ModifyCurrentUser(data api.ModifyCurrentUserData, _ret discord.User)

ModifyCurrentUser mocks api.Client.ModifyCurrentUser.

func (*Mocker) ModifyEmoji

func (m *Mocker) ModifyEmoji(guildID discord.GuildID, emojiID discord.EmojiID, data api.ModifyEmojiData)

ModifyEmoji mocks api.Client.ModifyEmoji.

func (*Mocker) ModifyGuild

func (m *Mocker) ModifyGuild(data api.ModifyGuildData, _ret discord.Guild)

ModifyGuild mocks api.Client.ModifyGuild.

func (*Mocker) ModifyGuildWidget

func (m *Mocker) ModifyGuildWidget(guildID discord.GuildID, data api.ModifyGuildWidgetData, _ret discord.GuildWidgetSettings)

ModifyGuildWidget mocks api.Client.ModifyGuildWidget.

func (*Mocker) ModifyIntegration

func (m *Mocker) ModifyIntegration(guildID discord.GuildID, integrationID discord.IntegrationID, data api.ModifyIntegrationData)

ModifyIntegration mocks api.Client.ModifyIntegration.

func (*Mocker) ModifyMember

func (m *Mocker) ModifyMember(guildID discord.GuildID, userID discord.UserID, data api.ModifyMemberData)

ModifyMember mocks api.Client.ModifyMember.

func (*Mocker) ModifyRole

func (m *Mocker) ModifyRole(guildID discord.GuildID, data api.ModifyRoleData, _ret discord.Role)

ModifyRole mocks api.Client.ModifyRole.

func (*Mocker) ModifyWebhook

func (m *Mocker) ModifyWebhook(data api.ModifyWebhookData, _ret discord.Webhook)

ModifyWebhook mocks api.Client.ModifyWebhook.

func (*Mocker) ModifyWebhookWithToken

func (m *Mocker) ModifyWebhookWithToken(d api.ModifyWebhookData, wh discord.Webhook)

ModifyWebhookWithToken mocks api.Client.ModifyWebhookWithToken.

func (*Mocker) MoveChannels

func (m *Mocker) MoveChannels(guildID discord.GuildID, data api.MoveChannelsData)

MoveChannels mocks api.Client.MoveChannels.

func (*Mocker) MoveRoles

func (m *Mocker) MoveRoles(guildID discord.GuildID, data api.MoveRolesData, _ret []discord.Role)

MoveRoles mocks api.Client.MoveRoles.

func (*Mocker) Note

func (m *Mocker) Note(userID discord.UserID, _ret string)

Note mocks api.Client.Note.

func (*Mocker) PinMessage

func (m *Mocker) PinMessage(channelID discord.ChannelID, messageID discord.MessageID, reason api.AuditLogReason)

PinMessage mocks api.Client.PinMessage.

func (*Mocker) PinnedMessages

func (m *Mocker) PinnedMessages(channelID discord.ChannelID, _ret []discord.Message)

PinnedMessages mocks api.Client.PinnedMessages.

func (*Mocker) PrivateArchivedThreads

func (m *Mocker) PrivateArchivedThreads(channelID discord.ChannelID, before discord.Timestamp, limit uint, _ret api.ArchivedThreads)

PrivateArchivedThreads mocks api.Client.PrivateArchivedThreads.

func (*Mocker) PrivateArchivedThreadsBefore

func (m *Mocker) PrivateArchivedThreadsBefore(
	channelID discord.ChannelID, before discord.Timestamp, limit uint, ret *api.ArchivedThreads,
)

PrivateArchivedThreadsBefore mocks api.Client.PrivateArchivedThreadsBefore.

func (*Mocker) PrivateChannels

func (m *Mocker) PrivateChannels(_ret []discord.Channel)

PrivateChannels mocks api.Client.PrivateChannels.

func (*Mocker) Prune

func (m *Mocker) Prune(guildID discord.GuildID, data api.PruneData, _ret uint)

Prune mocks api.Client.Prune.

func (*Mocker) PruneCount

func (m *Mocker) PruneCount(guildID discord.GuildID, data api.PruneCountData, _ret uint)

PruneCount mocks api.Client.PruneCount.

func (*Mocker) PublicArchivedThreads

func (m *Mocker) PublicArchivedThreads(channelID discord.ChannelID, before discord.Timestamp, limit uint, _ret api.ArchivedThreads)

PublicArchivedThreads mocks api.Client.PublicArchivedThreads.

func (*Mocker) PublicArchivedThreadsBefore

func (m *Mocker) PublicArchivedThreadsBefore(
	channelID discord.ChannelID, before discord.Timestamp, limit uint, ret *api.ArchivedThreads,
)

func (*Mocker) React

func (m *Mocker) React(channelID discord.ChannelID, messageID discord.MessageID, emoji discord.APIEmoji)

React mocks api.Client.React.

func (*Mocker) Reactions

func (m *Mocker) Reactions(
	channelID discord.ChannelID, messageID discord.MessageID, limit uint, e discord.APIEmoji, u []discord.User,
)

Reactions mocks api.Client.Reactions.

func (*Mocker) ReactionsAfter

func (m *Mocker) ReactionsAfter(
	channelID discord.ChannelID, messageID discord.MessageID, after discord.UserID, limit uint, e discord.APIEmoji,
	u []discord.User,
)

ReactionsAfter mocks api.Client.ReactionsAfter.

func (*Mocker) ReactionsBefore

func (m *Mocker) ReactionsBefore(
	channelID discord.ChannelID, messageID discord.MessageID, before discord.UserID, limit uint, e discord.APIEmoji,
	u []discord.User,
)

ReactionsBefore mocks api.Client.ReactionsBefore.

func (*Mocker) RemoveRecipient

func (m *Mocker) RemoveRecipient(channelID discord.ChannelID, userID discord.UserID)

RemoveRecipient mocks api.Client.RemoveRecipient.

func (*Mocker) RemoveRole

func (m *Mocker) RemoveRole(guildID discord.GuildID, userID discord.UserID, roleID discord.RoleID, reason api.AuditLogReason)

RemoveRole mocks api.Client.RemoveRole.

func (*Mocker) RemoveThreadMember

func (m *Mocker) RemoveThreadMember(threadID discord.ChannelID, userID discord.UserID)

RemoveThreadMember mocks api.Client.RemoveThreadMember.

func (*Mocker) RespondInteraction

func (m *Mocker) RespondInteraction(id discord.InteractionID, token string, resp api.InteractionResponse)

RespondInteraction mocks api.Client.RespondInteraction.

func (*Mocker) Roles

func (m *Mocker) Roles(guildID discord.GuildID, _ret []discord.Role)

Roles mocks api.Client.Roles.

func (*Mocker) ScheduledEvent

func (m *Mocker) ScheduledEvent(guildID discord.GuildID, eventID discord.EventID, withUserCount bool, _ret discord.GuildScheduledEvent)

ScheduledEvent mocks api.Client.ScheduledEvent.

func (*Mocker) Search

func (m *Mocker) Search(guildID discord.GuildID, data api.SearchData, _ret api.SearchResponse)

Search mocks api.Client.Search.

func (*Mocker) SendEmbedReply

func (m *Mocker) SendEmbedReply(msg discord.Message)

SendEmbedReply mocks api.Client.SendEmbedReply.

func (*Mocker) SendEmbeds

func (m *Mocker) SendEmbeds(msg discord.Message)

SendEmbeds mocks api.Client.SendEmbeds.

func (*Mocker) SendMessage

func (m *Mocker) SendMessage(msg discord.Message)

SendMessage mocks api.Client.SendMessage.

func (*Mocker) SendMessageComplex

func (m *Mocker) SendMessageComplex(d api.SendMessageData, msg discord.Message)

SendMessageComplex mocks a SendMessageComplex request.

The ChannelID field of the passed discord.Message must be set.

func (*Mocker) SendMessageReply

func (m *Mocker) SendMessageReply(msg discord.Message)

SendMessageReply mocks api.Client.SendMessageReply.

func (*Mocker) SendTextReply

func (m *Mocker) SendTextReply(msg discord.Message)

SendTextReply mocks api.Client.SendTextReply.

func (*Mocker) SetNote

func (m *Mocker) SetNote(userID discord.UserID, note string)

SetNote mocks api.Client.SetNote.

func (*Mocker) SetRelationship

func (m *Mocker) SetRelationship(userID discord.UserID, t discord.RelationshipType)

SetRelationship mocks api.Client.SetRelationship.

func (*Mocker) Splash

func (m *Mocker) Splash(guildID discord.GuildID, splash discord.Hash, img io.Reader)

Splash mocks a Splash request.

This method can be used for both discord.Guild and discord.GuildPreview.

func (*Mocker) SplashWithType

func (m *Mocker) SplashWithType(guildID discord.GuildID, splash discord.Hash, t discord.ImageType, img io.Reader)

SplashWithType mocks a SplashWithType request.

This method can be used for both discord.Guild and discord.GuildPreview.

func (*Mocker) StartThreadWithMessage

func (m *Mocker) StartThreadWithMessage(messageID discord.MessageID, data api.StartThreadData, _ret discord.Channel)

StartThreadWithMessage mocks api.Client.StartThreadWithMessage.

func (*Mocker) StartThreadWithoutMessage

func (m *Mocker) StartThreadWithoutMessage(data api.StartThreadData, _ret discord.Channel)

StartThreadWithoutMessage mocks api.Client.StartThreadWithoutMessage.

func (*Mocker) SyncIntegration

func (m *Mocker) SyncIntegration(guildID discord.GuildID, integrationID discord.IntegrationID)

SyncIntegration mocks api.Client.SyncIntegration.

func (*Mocker) TOTP

func (m *Mocker) TOTP(code string, ticket string, _ret api.LoginResponse)

TOTP mocks api.Client.TOTP.

func (*Mocker) ThreadMembers

func (m *Mocker) ThreadMembers(threadID discord.ChannelID, _ret []discord.ThreadMember)

ThreadMembers mocks api.Client.ThreadMembers.

func (*Mocker) Typing

func (m *Mocker) Typing(channelID discord.ChannelID)

Typing mocks api.Client.Typing.

func (*Mocker) Unban

func (m *Mocker) Unban(guildID discord.GuildID, userID discord.UserID, reason api.AuditLogReason)

Unban mocks api.Client.Unban.

func (*Mocker) UnpinMessage

func (m *Mocker) UnpinMessage(channelID discord.ChannelID, messageID discord.MessageID, reason api.AuditLogReason)

UnpinMessage mocks api.Client.UnpinMessage.

func (*Mocker) Unreact

func (m *Mocker) Unreact(channelID discord.ChannelID, messageID discord.MessageID, e discord.APIEmoji)

Unreact mocks api.Client.Unreact.

func (*Mocker) UpdateStageInstance

func (m *Mocker) UpdateStageInstance(channelID discord.ChannelID, data api.UpdateStageInstanceData)

UpdateStageInstance mocks api.Client.UpdateStageInstance.

func (*Mocker) User

func (m *Mocker) User(_ret discord.User)

User mocks api.Client.User.

func (*Mocker) UserConnections

func (m *Mocker) UserConnections(_ret []discord.Connection)

UserConnections mocks api.Client.UserConnections.

func (*Mocker) VoiceRegionsGuild

func (m *Mocker) VoiceRegionsGuild(guildID discord.GuildID, _ret []discord.VoiceRegion)

VoiceRegionsGuild mocks api.Client.VoiceRegionsGuild.

func (*Mocker) Webhook

func (m *Mocker) Webhook(_ret discord.Webhook)

Webhook mocks api.Client.Webhook.

func (*Mocker) WebhookWithToken

func (m *Mocker) WebhookWithToken(wh discord.Webhook)

WebhookWithToken mocks api.Client.WebhookWithToken.

The ID field and the Token field of the passed discord.Webhook must be set.

This method will sanitize Webhook.User.ID and Webhook.ChannelID.

Notes

Bugs

  • Due to an inconvenient behavior of json.Unmarshal where sometimes on JSON null the UnmarshalJSON method doesn't get called there is no way to differentiate between option.NullX and an omitted (nil) value. Therefore, both will be seen as equal.

  • Due to the way Snowflakes are serialized, all fields that don't have the omitempty flag and are set to 0, will be sent as JSON null.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL