GH-12702 v2: Add new command response parameter: "skip_slack_p… (#13420)

Add new command response parameter: "skip_slack_parsing". Skips Slack magic if set to "true". (#12702)
Этот коммит содержится в:
Someone
2020-01-17 08:34:11 +01:00
коммит произвёл Ben Schumacher
родитель 4314a0427f
Коммит 566f28be0a
5 изменённых файлов: 23 добавлений и 18 удалений

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

@@ -434,16 +434,13 @@ func (a *App) HandleCommandResponsePost(command *model.Command, args *model.Comm
post.AddProp("from_webhook", "true")
}
// Do not process text if this is a code block
skipSlackParsing := command.Trigger == "code"
// Process Slack text replacements
if !skipSlackParsing {
// Process Slack text replacements if the response does not contain "skip_slack_parsing": true.
if !response.SkipSlackParsing {
response.Text = a.ProcessSlackText(response.Text)
response.Attachments = a.ProcessSlackAttachments(response.Attachments)
}
if _, err := a.CreateCommandPost(post, args.TeamId, response, skipSlackParsing); err != nil {
if _, err := a.CreateCommandPost(post, args.TeamId, response, response.SkipSlackParsing); err != nil {
return post, err
}

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

@@ -40,5 +40,5 @@ func (me *CodeProvider) DoCommand(a *App, args *model.CommandArgs, message strin
return &model.CommandResponse{Text: args.T("api.command_code.message.app_error"), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL}
}
rmsg := " " + strings.Join(strings.Split(message, "\n"), "\n ")
return &model.CommandResponse{ResponseType: model.COMMAND_RESPONSE_TYPE_IN_CHANNEL, Text: rmsg}
return &model.CommandResponse{ResponseType: model.COMMAND_RESPONSE_TYPE_IN_CHANNEL, Text: rmsg, SkipSlackParsing: true}
}

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

@@ -221,7 +221,11 @@ func TestHandleCommandResponsePost(t *testing.T) {
Text: "<!here>",
},
}
// set and unset SkipSlackParsing here seems the nicest way as no separate response objects are created for every testcase.
resp.SkipSlackParsing = true
post, err = th.App.HandleCommandResponsePost(command, args, resp, builtIn)
resp.SkipSlackParsing = false
assert.Nil(t, err)
assert.Equal(t, resp.Text, post.Message, "/code text should not be converted to Slack links")