diff options
author | Christopher Speller <crspeller@gmail.com> | 2018-05-15 13:33:47 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-15 13:33:47 -0700 |
commit | df6a7f8b19e2381ee57f946d5b184185653b2ee1 (patch) | |
tree | 622ff6b13b23bf4506ea41eb010141930e143815 /plugin/rpcplugin/hooks_test.go | |
parent | fbbe1f7cefd52a27fd52893509b5365d275f9bee (diff) | |
download | chat-df6a7f8b19e2381ee57f946d5b184185653b2ee1.tar.gz chat-df6a7f8b19e2381ee57f946d5b184185653b2ee1.tar.bz2 chat-df6a7f8b19e2381ee57f946d5b184185653b2ee1.zip |
MM-10249 Adding plugin ability to intercept posts before they reach the DB. (#8791)
* Adding plugin ability to intercept posts before they reach the DB.
* s/envoked/invoked/
Diffstat (limited to 'plugin/rpcplugin/hooks_test.go')
-rw-r--r-- | plugin/rpcplugin/hooks_test.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/plugin/rpcplugin/hooks_test.go b/plugin/rpcplugin/hooks_test.go index c404442b7..a7bac982e 100644 --- a/plugin/rpcplugin/hooks_test.go +++ b/plugin/rpcplugin/hooks_test.go @@ -91,6 +91,30 @@ func TestHooks(t *testing.T) { }) assert.Equal(t, "bar", commandResponse.Text) assert.Nil(t, appErr) + + hooks.On("MessageWillBePosted", mock.AnythingOfType("*model.Post")).Return(func(post *model.Post) *model.Post { + post.Message += "_testing" + return post + }, "changemessage") + post, changemessage := remote.MessageWillBePosted(&model.Post{Id: "1", Message: "base"}) + assert.Equal(t, "changemessage", changemessage) + assert.Equal(t, "base_testing", post.Message) + assert.Equal(t, "1", post.Id) + + hooks.On("MessageWillBeUpdated", mock.AnythingOfType("*model.Post"), mock.AnythingOfType("*model.Post")).Return(func(newPost, oldPost *model.Post) *model.Post { + newPost.Message += "_testing" + return newPost + }, "changemessage2") + post2, changemessage2 := remote.MessageWillBeUpdated(&model.Post{Id: "2", Message: "base2"}, &model.Post{Id: "OLD", Message: "OLDMESSAGE"}) + assert.Equal(t, "changemessage2", changemessage2) + assert.Equal(t, "base2_testing", post2.Message) + assert.Equal(t, "2", post2.Id) + + hooks.On("MessageHasBeenPosted", mock.AnythingOfType("*model.Post")).Return(nil) + remote.MessageHasBeenPosted(&model.Post{}) + + hooks.On("MessageHasBeenUpdated", mock.AnythingOfType("*model.Post"), mock.AnythingOfType("*model.Post")).Return(nil) + remote.MessageHasBeenUpdated(&model.Post{}, &model.Post{}) })) } |