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
41 changes: 28 additions & 13 deletions server/plugin/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,23 +136,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(args *model.CommandArgs, userInfo *GitHubUserInfo) string {
mutedUsernames := p.getMutedUsernames(userInfo)
func (p *Plugin) handleMuteList(_ *model.CommandArgs, userInfo *GitHubUserInfo) string {
mutedUsernames, err := p.getMutedUsernames(userInfo)
if err != nil {
p.client.Log.Error("error occurred getting muted user.", "Error", err)
Kshitij-Katiyar marked this conversation as resolved.
Show resolved Hide resolved
return "Some error occurred getting muted users. Please try again later"
Kshitij-Katiyar marked this conversation as resolved.
Show resolved Hide resolved
}

var mutedUsers string
for _, user := range mutedUsernames {
mutedUsers += fmt.Sprintf("- %v\n", user)
Expand All @@ -172,8 +177,13 @@ func contains(s []string, e string) bool {
return false
}

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

if contains(mutedUsernames, username) {
return username + " is already muted"
}
Expand All @@ -190,28 +200,33 @@ func (p *Plugin) handleMuteAdd(args *model.CommandArgs, username string, userInf
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"
}

return fmt.Sprintf("`%v`", username) + " is now muted. You'll no longer receive notifications for comments in your PRs and issues."
}

func (p *Plugin) handleUnmute(args *model.CommandArgs, username string, userInfo *GitHubUserInfo) string {
mutedUsernames := p.getMutedUsernames(userInfo)
func (p *Plugin) handleUnmute(_ *model.CommandArgs, username string, userInfo *GitHubUserInfo) string {
mutedUsernames, err := p.getMutedUsernames(userInfo)
if err != nil {
p.client.Log.Error("error occurred getting muted user.", "Error", err)
Kshitij-Katiyar marked this conversation as resolved.
Show resolved Hide resolved
return "Some 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"
}

return fmt.Sprintf("`%v`", username) + " is no longer muted"
}

func (p *Plugin) handleUnmuteAll(args *model.CommandArgs, userInfo *GitHubUserInfo) string {
func (p *Plugin) handleUnmuteAll(_ *model.CommandArgs, userInfo *GitHubUserInfo) string {
_, err := p.store.Set(userInfo.UserID+"-muted-users", []byte(""))
if err != nil {
return "Error occurred unmuting users"
Expand Down
Loading