From 8c1164d86bf03791a7fb07a1b1eeb4af0ea1143a Mon Sep 17 00:00:00 2001 From: Nisheet Sinvhal Date: Tue, 16 Jun 2020 15:01:55 +0530 Subject: [PATCH] Pass query string params to interactive dialog request url (#14366) --- app/integration_action.go | 1 + app/integration_action_test.go | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/integration_action.go b/app/integration_action.go index 2be132bda0..060ca35732 100644 --- a/app/integration_action.go +++ b/app/integration_action.go @@ -366,6 +366,7 @@ func (a *App) doPluginRequest(method, rawURL string, values url.Values, body []b params := make(map[string]string) params["plugin_id"] = pluginId r = mux.SetURLVars(r, params) + r.URL.RawQuery = inURL.Query().Encode() a.ServePluginRequest(w, r) diff --git a/app/integration_action_test.go b/app/integration_action_test.go index 9b3c8cf3bc..e3bf337236 100644 --- a/app/integration_action_test.go +++ b/app/integration_action_test.go @@ -489,9 +489,13 @@ func TestSubmitInteractiveDialog(t *testing.T) { plugin.MattermostPlugin } - func (p *MyPlugin) ServeHTTP(c *plugin.Context, w http.ResponseWriter, r *http.Request) { - response := &model.SubmitDialogResponse{ - Errors: map[string]string{"name1": "some error"}, + func (p *MyPlugin) ServeHTTP(c *plugin.Context, w http.ResponseWriter, r *http.Request) { + errReply := "some error" + if r.URL.Query().Get("abc") == "xyz" { + errReply = "some other error" + } + response := &model.SubmitDialogResponse{ + Errors: map[string]string{"name1": errReply}, } w.WriteHeader(http.StatusOK) _, _ = w.Write(response.ToJson()) @@ -534,6 +538,12 @@ func TestSubmitInteractiveDialog(t *testing.T) { assert.Nil(t, err) require.NotNil(t, resp) assert.Equal(t, "some error", resp.Errors["name1"]) + + submit.URL = "/plugins/myplugin/myaction?abc=xyz" + resp, err = th.App.SubmitInteractiveDialog(submit) + assert.Nil(t, err) + require.NotNil(t, resp) + assert.Equal(t, "some other error", resp.Errors["name1"]) } func TestPostActionRelativeURL(t *testing.T) {