Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added testcase for some functions in server/command.go #845

Open
wants to merge 10 commits into
base: add_server/api.go_testcases
Choose a base branch
from
33 changes: 24 additions & 9 deletions server/plugin/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,23 +141,28 @@ func (p *Plugin) postCommandResponse(args *model.CommandArgs, text string) {
p.client.Post.SendEphemeralPost(args.UserId, post)
}

func (p *Plugin) getMutedUsernames(userInfo *GitHubUserInfo) []string {
func (p *Plugin) getMutedUsernames(userInfo *GitHubUserInfo) ([]string, error) {
var mutedUsernameBytes []byte
err := p.store.Get(userInfo.UserID+"-muted-users", &mutedUsernameBytes)
if err != nil {
return nil
return nil, err
}
mutedUsernames := string(mutedUsernameBytes)
var mutedUsers []string
if len(mutedUsernames) == 0 {
return mutedUsers
return mutedUsers, nil
}
mutedUsers = strings.Split(mutedUsernames, ",")
return mutedUsers
return mutedUsers, nil
}

func (p *Plugin) handleMuteList(_ *model.CommandArgs, userInfo *GitHubUserInfo) string {
mutedUsernames := p.getMutedUsernames(userInfo)
mutedUsernames, err := p.getMutedUsernames(userInfo)
if err != nil {
p.client.Log.Error("error occurred getting muted users.", "UserID", userInfo.UserID, "Error", err)
return "An error occurred getting muted users. Please try again later"
}

var mutedUsers string
for _, user := range mutedUsernames {
mutedUsers += fmt.Sprintf("- %v\n", user)
Expand All @@ -178,7 +183,12 @@ func contains(s []string, e string) bool {
}

func (p *Plugin) handleMuteAdd(_ *model.CommandArgs, username string, userInfo *GitHubUserInfo) string {
mutedUsernames := p.getMutedUsernames(userInfo)
mutedUsernames, err := p.getMutedUsernames(userInfo)
if err != nil {
p.client.Log.Error("error occurred getting muted users.", "UserID", userInfo.UserID, "Error", err)
return "An error occurred getting muted users. Please try again later"
}

if contains(mutedUsernames, username) {
return username + " is already muted"
}
Expand All @@ -195,7 +205,7 @@ func (p *Plugin) handleMuteAdd(_ *model.CommandArgs, username string, userInfo *
mutedUsers = username
}

_, err := p.store.Set(userInfo.UserID+"-muted-users", []byte(mutedUsers))
_, err = p.store.Set(userInfo.UserID+"-muted-users", []byte(mutedUsers))
if err != nil {
return "Error occurred saving list of muted users"
}
Expand All @@ -204,11 +214,16 @@ func (p *Plugin) handleMuteAdd(_ *model.CommandArgs, username string, userInfo *
}

func (p *Plugin) handleUnmute(_ *model.CommandArgs, username string, userInfo *GitHubUserInfo) string {
mutedUsernames := p.getMutedUsernames(userInfo)
mutedUsernames, err := p.getMutedUsernames(userInfo)
if err != nil {
p.client.Log.Error("error occurred getting muted users.", "UserID", userInfo.UserID, "Error", err)
return "An error occurred getting muted users. Please try again later"
}

userToMute := []string{username}
newMutedList := arrayDifference(mutedUsernames, userToMute)

_, err := p.store.Set(userInfo.UserID+"-muted-users", []byte(strings.Join(newMutedList, ",")))
_, err = p.store.Set(userInfo.UserID+"-muted-users", []byte(strings.Join(newMutedList, ",")))
if err != nil {
return "Error occurred unmuting users"
}
Expand Down
Loading
Loading