* Fixing /test command.

* Add error handling to channels command.

* Switch to using app instead of client in some places.

* Fix lint being confused.

* Join channels automatically.

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
Christopher Speller
2020-08-06 16:18:47 -07:00
коммит произвёл GitHub
родитель fb453d578f
Коммит a22f02c867
4 изменённых файлов: 35 добавлений и 49 удалений

Просмотреть файл

@@ -9,7 +9,8 @@ import (
)
type AutoChannelCreator struct {
client *model.Client4
a *App
userId string
team *model.Team
Fuzzy bool
DisplayNameLen utils.Range
@@ -19,10 +20,11 @@ type AutoChannelCreator struct {
ChannelType string
}
func NewAutoChannelCreator(client *model.Client4, team *model.Team) *AutoChannelCreator {
func NewAutoChannelCreator(a *App, team *model.Team, userId string) *AutoChannelCreator {
return &AutoChannelCreator{
client: client,
a: a,
team: team,
userId: userId,
Fuzzy: false,
DisplayNameLen: CHANNEL_DISPLAY_NAME_LEN,
DisplayNameCharset: utils.ALPHANUMERIC,
@@ -45,12 +47,13 @@ func (cfg *AutoChannelCreator) createRandomChannel() (*model.Channel, error) {
TeamId: cfg.team.Id,
DisplayName: displayName,
Name: name,
Type: cfg.ChannelType}
Type: cfg.ChannelType,
CreatorId: cfg.userId,
}
println(cfg.client.GetTeamRoute(cfg.team.Id))
channel, resp := cfg.client.CreateChannel(channel)
if resp.Error != nil {
return nil, resp.Error
channel, err := cfg.a.CreateChannel(channel, true)
if err != nil {
return nil, err
}
return channel, nil
}

Просмотреть файл

@@ -65,7 +65,7 @@ func CreateTestEnvironmentInTeam(a *App, client *model.Client4, team *model.Team
usernames[i] = user.Username
}
channelCreator := NewAutoChannelCreator(client, team)
channelCreator := NewAutoChannelCreator(a, team, users[0].Id)
channelCreator.Fuzzy = fuzzy
channels, err := channelCreator.CreateTestChannels(rangeChannels)
if err != nil {
@@ -97,7 +97,7 @@ func CreateTestEnvironmentInTeam(a *App, client *model.Client4, team *model.Team
}
for i, channel := range channels {
postCreator := NewAutoPostCreator(client, channel.Id)
postCreator := NewAutoPostCreator(a, channel.Id, user.Id)
postCreator.HasImage = i < numImages
postCreator.Users = usernames
postCreator.Fuzzy = fuzzy

Просмотреть файл

@@ -15,8 +15,9 @@ import (
)
type AutoPostCreator struct {
client *model.Client4
a *App
channelid string
userid string
Fuzzy bool
TextLength utils.Range
HasImage bool
@@ -27,10 +28,11 @@ type AutoPostCreator struct {
}
// Automatic poster used for testing
func NewAutoPostCreator(client *model.Client4, channelid string) *AutoPostCreator {
func NewAutoPostCreator(a *App, channelid, userid string) *AutoPostCreator {
return &AutoPostCreator{
client: client,
a: a,
channelid: channelid,
userid: userid,
Fuzzy: false,
TextLength: utils.Range{Begin: 100, End: 200},
HasImage: false,
@@ -57,12 +59,12 @@ func (cfg *AutoPostCreator) UploadTestFile() ([]string, error) {
return nil, err
}
fileResp, resp := cfg.client.UploadFile(data.Bytes(), cfg.channelid, filename)
if resp.Error != nil {
return nil, resp.Error
fileResp, err2 := cfg.a.UploadFile(data.Bytes(), cfg.channelid, filename)
if err2 != nil {
return nil, err2
}
return []string{fileResp.FileInfos[0].Id}, nil
return []string{fileResp.Id}, nil
}
func (cfg *AutoPostCreator) CreateRandomPost() (*model.Post, error) {
@@ -88,13 +90,15 @@ func (cfg *AutoPostCreator) CreateRandomPostNested(parentId, rootId string) (*mo
post := &model.Post{
ChannelId: cfg.channelid,
UserId: cfg.userid,
ParentId: parentId,
RootId: rootId,
Message: postText,
FileIds: fileIds}
rpost, resp := cfg.client.CreatePost(post)
if resp.Error != nil {
return nil, resp.Error
FileIds: fileIds,
}
rpost, err := cfg.a.CreatePostMissingChannel(post, true)
if err != nil {
return nil, err
}
return rpost, nil
}

Просмотреть файл

@@ -207,11 +207,6 @@ func (me *LoadTestProvider) SetupCommand(a *App, args *model.CommandArgs, messag
}
}
client := model.NewAPIv4Client(args.SiteURL)
sessions, err := a.GetSessions(args.UserId)
if err != nil || len(sessions) == 0 {
return &model.CommandResponse{Text: "Failed to get sessions.", ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL}, err
}
client.SetToken(sessions[0].Token)
if doTeams {
if err := a.CreateBasicUser(client); err != nil {
@@ -321,15 +316,11 @@ func (me *LoadTestProvider) ChannelsCommand(a *App, args *model.CommandArgs, mes
return &model.CommandResponse{Text: "Failed to add channels", ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL}, err
}
client := model.NewAPIv4Client(args.SiteURL)
sessions, err := a.GetSessions(args.UserId)
if err != nil || len(sessions) == 0 {
return &model.CommandResponse{Text: "Failed to get sessions.", ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL}, err
}
client.SetToken(sessions[0].Token)
channelCreator := NewAutoChannelCreator(client, team)
channelCreator := NewAutoChannelCreator(a, team, args.UserId)
channelCreator.Fuzzy = doFuzz
channelCreator.CreateTestChannels(channelsr)
if _, err := channelCreator.CreateTestChannels(channelsr); err != nil {
return &model.CommandResponse{Text: "Failed to create test channels: " + err.Error(), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL}, err
}
return &model.CommandResponse{Text: "Added channels", ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL}, nil
}
@@ -346,18 +337,12 @@ func (me *LoadTestProvider) ThreadedPostCommand(a *App, args *model.CommandArgs,
}
}
client := model.NewAPIv4Client(args.SiteURL)
sessions, err := a.GetSessions(args.UserId)
if err != nil || len(sessions) == 0 {
return &model.CommandResponse{Text: "Failed to get sessions.", ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL}, err
}
client.MockSession(sessions[0].Token)
testPoster := NewAutoPostCreator(client, args.ChannelId)
testPoster := NewAutoPostCreator(a, args.ChannelId, args.UserId)
testPoster.Fuzzy = true
testPoster.Users = usernames
rpost, err2 := testPoster.CreateRandomPost()
if err2 != nil {
return &model.CommandResponse{Text: "Failed to create a post", ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL}, err
return &model.CommandResponse{Text: "Failed to create a post", ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL}, err2
}
for i := 0; i < 1000; i++ {
testPoster.CreateRandomPostNested(rpost.Id, rpost.Id)
@@ -399,13 +384,7 @@ func (me *LoadTestProvider) PostsCommand(a *App, args *model.CommandArgs, messag
}
}
client := model.NewAPIv4Client(args.SiteURL)
sessions, err := a.GetSessions(args.UserId)
if err != nil || len(sessions) == 0 {
return &model.CommandResponse{Text: "Failed to get sessions.", ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL}, err
}
client.SetToken(sessions[0].Token)
testPoster := NewAutoPostCreator(client, args.ChannelId)
testPoster := NewAutoPostCreator(a, args.ChannelId, args.UserId)
testPoster.Fuzzy = doFuzz
testPoster.Users = usernames