From 7475cd260a3aba46e0b7524656b42209c1779c22 Mon Sep 17 00:00:00 2001 From: Jesse Hallam Date: Wed, 8 Aug 2018 06:07:38 -0400 Subject: fix plugintest example and docs (#9213) --- plugin/plugintest/example_hello_user_test.go | 55 ++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 plugin/plugintest/example_hello_user_test.go (limited to 'plugin/plugintest/example_hello_user_test.go') diff --git a/plugin/plugintest/example_hello_user_test.go b/plugin/plugintest/example_hello_user_test.go new file mode 100644 index 000000000..3a12f292c --- /dev/null +++ b/plugin/plugintest/example_hello_user_test.go @@ -0,0 +1,55 @@ +package plugintest_test + +import ( + "fmt" + "io/ioutil" + "net/http" + "net/http/httptest" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/mattermost/mattermost-server/model" + "github.com/mattermost/mattermost-server/plugin" + "github.com/mattermost/mattermost-server/plugin/plugintest" +) + +type HelloUserPlugin struct { + plugin.MattermostPlugin +} + +func (p *HelloUserPlugin) ServeHTTP(context *plugin.Context, w http.ResponseWriter, r *http.Request) { + userId := r.Header.Get("Mattermost-User-Id") + user, err := p.API.GetUser(userId) + if err != nil { + w.WriteHeader(http.StatusBadRequest) + p.API.LogError(err.Error()) + return + } + + fmt.Fprintf(w, "Welcome back, %s!", user.Username) +} + +func Example() { + t := &testing.T{} + user := &model.User{ + Id: model.NewId(), + Username: "billybob", + } + + api := &plugintest.API{} + api.On("GetUser", user.Id).Return(user, nil) + defer api.AssertExpectations(t) + + p := &HelloUserPlugin{} + p.SetAPI(api) + + w := httptest.NewRecorder() + r := httptest.NewRequest("GET", "/", nil) + r.Header.Add("Mattermost-User-Id", user.Id) + p.ServeHTTP(&plugin.Context{}, w, r) + body, err := ioutil.ReadAll(w.Result().Body) + require.NoError(t, err) + assert.Equal(t, "Welcome back, billybob!", string(body)) +} -- cgit v1.2.3-1-g7c22