commplatform

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2023 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func TrimSlackMsgTrailingLine

func TrimSlackMsgTrailingLine(msg string) string

Types

type BotDriver

type BotDriver interface {
	Type() DriverType
	InitUsers(t *testing.T)

	CreateChannel(t *testing.T, prefix string) (Channel, func(t *testing.T))
	InitChannels(t *testing.T) []func()
	PostInitialMessage(t *testing.T, channel string)
	PostMessageToBot(t *testing.T, channel, command string)
	InviteBotToChannel(t *testing.T, channel string)
	WaitForMessagePostedRecentlyEqual(userID, channelID, expectedMsg string) error
	WaitForLastMessageContains(userID, channel, expectedMsgSubstring string) error
	WaitForLastMessageEqual(userID, channel, expectedMsg string) error
	WaitForMessagePosted(userID, channel string, limitMessages int, assertFn MessageAssertion) error
	WaitForInteractiveMessagePosted(userID, channelID string, limitMessages int, assertFn MessageAssertion) error
	WaitForMessagePostedWithFileUpload(userID, channelID string, assertFn FileUploadAssertion) error
	WaitForMessagePostedWithAttachment(userID, channel string, limitMessages int, expInput ExpAttachmentInput) error
	Channel() Channel
	SecondChannel() Channel
	ThirdChannel() Channel
	BotName() string
	BotUserID() string
	TesterUserID() string
	WaitForInteractiveMessagePostedRecentlyEqual(userID string, channelID string, message interactive.CoreMessage) error
	WaitForLastInteractiveMessagePostedEqual(userID string, channelID string, message interactive.CoreMessage) error
}

func NewDiscordTester

func NewDiscordTester(discordCfg DiscordConfig) (BotDriver, error)

func NewSlackTester

func NewSlackTester(slackCfg SlackConfig) (BotDriver, error)

type Channel

type Channel interface {
	ID() string
	Name() string
	Identifier() string
}

type DiscordChannel

type DiscordChannel struct {
	*discordgo.Channel
}

func (*DiscordChannel) ID

func (s *DiscordChannel) ID() string

func (*DiscordChannel) Identifier

func (s *DiscordChannel) Identifier() string

func (*DiscordChannel) Name

func (s *DiscordChannel) Name() string

type DiscordConfig

type DiscordConfig struct {
	BotName                  string `envconfig:"optional"`
	BotID                    string `envconfig:"default=983294404108378154"`
	TesterName               string `envconfig:"optional"`
	TesterID                 string `envconfig:"default=1020384322114572381"`
	AdditionalContextMessage string `envconfig:"optional"`
	GuildID                  string
	TesterAppToken           string
	RecentMessagesLimit      int           `envconfig:"default=6"`
	MessageWaitTimeout       time.Duration `envconfig:"default=30s"`
}

type DiscordTester

type DiscordTester struct {
	// contains filtered or unexported fields
}

func (*DiscordTester) BotName

func (d *DiscordTester) BotName() string

func (*DiscordTester) BotUserID

func (d *DiscordTester) BotUserID() string

func (*DiscordTester) Channel

func (d *DiscordTester) Channel() Channel

func (*DiscordTester) CreateChannel

func (d *DiscordTester) CreateChannel(t *testing.T, prefix string) (Channel, func(t *testing.T))

CreateChannel creates Discord channel.

func (*DiscordTester) InitChannels

func (d *DiscordTester) InitChannels(t *testing.T) []func()

func (*DiscordTester) InitUsers

func (d *DiscordTester) InitUsers(t *testing.T)

func (*DiscordTester) InviteBotToChannel

func (d *DiscordTester) InviteBotToChannel(_ *testing.T, _ string)

func (*DiscordTester) PostInitialMessage

func (d *DiscordTester) PostInitialMessage(t *testing.T, channelID string)

func (*DiscordTester) PostMessageToBot

func (d *DiscordTester) PostMessageToBot(t *testing.T, channel, command string)

func (*DiscordTester) SecondChannel

func (d *DiscordTester) SecondChannel() Channel

func (*DiscordTester) TesterUserID

func (d *DiscordTester) TesterUserID() string

func (*DiscordTester) ThirdChannel

func (d *DiscordTester) ThirdChannel() Channel

func (*DiscordTester) Type

func (d *DiscordTester) Type() DriverType

func (*DiscordTester) WaitForInteractiveMessagePosted

func (d *DiscordTester) WaitForInteractiveMessagePosted(userID, channelID string, limitMessages int, assertFn MessageAssertion) error

func (*DiscordTester) WaitForInteractiveMessagePostedRecentlyEqual

func (d *DiscordTester) WaitForInteractiveMessagePostedRecentlyEqual(userID, channelID string, msg interactive.CoreMessage) error

func (*DiscordTester) WaitForLastInteractiveMessagePostedEqual

func (d *DiscordTester) WaitForLastInteractiveMessagePostedEqual(userID, channelID string, msg interactive.CoreMessage) error

func (*DiscordTester) WaitForLastMessageContains

func (d *DiscordTester) WaitForLastMessageContains(userID, channelID, expectedMsgSubstring string) error

func (*DiscordTester) WaitForLastMessageEqual

func (d *DiscordTester) WaitForLastMessageEqual(userID, channelID, expectedMsg string) error

func (*DiscordTester) WaitForMessagePosted

func (d *DiscordTester) WaitForMessagePosted(userID, channelID string, limitMessages int, assertFn MessageAssertion) error

func (*DiscordTester) WaitForMessagePostedRecentlyEqual

func (d *DiscordTester) WaitForMessagePostedRecentlyEqual(userID, channelID, expectedMsg string) error

func (*DiscordTester) WaitForMessagePostedWithAttachment

func (d *DiscordTester) WaitForMessagePostedWithAttachment(userID, channelID string, limitMessages int, assertFn ExpAttachmentInput) error

func (*DiscordTester) WaitForMessagePostedWithFileUpload

func (d *DiscordTester) WaitForMessagePostedWithFileUpload(userID, channelID string, assertFn FileUploadAssertion) error

type DriverType

type DriverType string

DriverType to instrument

const (
	SlackBot   DriverType = "slack"
	DiscordBot DriverType = "discord"
)

type ExpAttachmentInput

type ExpAttachmentInput struct {
	Message               api.Message
	AllowedTimestampDelta time.Duration
}

type FileUploadAssertion

type FileUploadAssertion func(title, mimetype string) bool

type MessageAssertion

type MessageAssertion func(content string) (bool, int, string)

type SlackChannel

type SlackChannel struct {
	*slack.Channel
}

func (*SlackChannel) ID

func (s *SlackChannel) ID() string

func (*SlackChannel) Identifier

func (s *SlackChannel) Identifier() string

func (*SlackChannel) Name

func (s *SlackChannel) Name() string

type SlackConfig

type SlackConfig struct {
	BotName                  string `envconfig:"default=botkube"`
	TesterName               string `envconfig:"default=tester"`
	AdditionalContextMessage string `envconfig:"optional"`
	TesterAppToken           string
	RecentMessagesLimit      int           `envconfig:"default=6"`
	MessageWaitTimeout       time.Duration `envconfig:"default=30s"`
}

type SlackTester

type SlackTester struct {
	// contains filtered or unexported fields
}

func (*SlackTester) BotName

func (s *SlackTester) BotName() string

func (*SlackTester) BotUserID

func (s *SlackTester) BotUserID() string

func (*SlackTester) Channel

func (s *SlackTester) Channel() Channel

func (*SlackTester) CreateChannel

func (s *SlackTester) CreateChannel(t *testing.T, prefix string) (Channel, func(t *testing.T))

func (*SlackTester) InitChannels

func (s *SlackTester) InitChannels(t *testing.T) []func()

func (*SlackTester) InitUsers

func (s *SlackTester) InitUsers(t *testing.T)

func (*SlackTester) InviteBotToChannel

func (s *SlackTester) InviteBotToChannel(t *testing.T, channelID string)

func (*SlackTester) PostInitialMessage

func (s *SlackTester) PostInitialMessage(t *testing.T, channelName string)

func (*SlackTester) PostMessageToBot

func (s *SlackTester) PostMessageToBot(t *testing.T, channel, command string)

func (*SlackTester) SecondChannel

func (s *SlackTester) SecondChannel() Channel

func (*SlackTester) TesterUserID

func (s *SlackTester) TesterUserID() string

func (*SlackTester) ThirdChannel

func (s *SlackTester) ThirdChannel() Channel

func (*SlackTester) Type

func (s *SlackTester) Type() DriverType

func (*SlackTester) WaitForInteractiveMessagePosted

func (s *SlackTester) WaitForInteractiveMessagePosted(userID, channelID string, limitMessages int, assertFn MessageAssertion) error

func (*SlackTester) WaitForInteractiveMessagePostedRecentlyEqual

func (s *SlackTester) WaitForInteractiveMessagePostedRecentlyEqual(userID, channelID string, msg interactive.CoreMessage) error

TODO: This contains an implementation for socket mode slack apps. Once needed, you can see the already implemented functions here https://github.com/kubeshop/botkube/blob/abfeb95fa5f84ceb9b25a30159cdc3d17e130711/test/e2e/slack_driver_test.go#L289

func (*SlackTester) WaitForLastInteractiveMessagePostedEqual

func (s *SlackTester) WaitForLastInteractiveMessagePostedEqual(userID, channelID string, msg interactive.CoreMessage) error

func (*SlackTester) WaitForLastMessageContains

func (s *SlackTester) WaitForLastMessageContains(userID, channelID, expectedMsgSubstring string) error

func (*SlackTester) WaitForLastMessageEqual

func (s *SlackTester) WaitForLastMessageEqual(userID, channelID, expectedMsg string) error

func (*SlackTester) WaitForMessagePosted

func (s *SlackTester) WaitForMessagePosted(userID, channelID string, limitMessages int, assertFn MessageAssertion) error

func (*SlackTester) WaitForMessagePostedRecentlyEqual

func (s *SlackTester) WaitForMessagePostedRecentlyEqual(userID, channelID, expectedMsg string) error

func (*SlackTester) WaitForMessagePostedWithAttachment

func (s *SlackTester) WaitForMessagePostedWithAttachment(userID, channelID string, limitMessages int, assertFn ExpAttachmentInput) error

func (*SlackTester) WaitForMessagePostedWithFileUpload

func (s *SlackTester) WaitForMessagePostedWithFileUpload(userID, channelID string, assertFn FileUploadAssertion) error

Jump to

Keyboard shortcuts

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