Codebase list golang-github-nlopes-slack / 3f6c707
test AddReaction Ryan Carver 8 years ago
2 changed file(s) with 45 addition(s) and 1 deletion(s). Raw diff Collapse all Expand all
4949 }
5050
5151 // AddReaction adds a reaction emoji to a message, file or file comment.
52 // One of file, file_comment, or the combination of channel and timestamp
53 // must be specified.
5254 func (api *Slack) AddReaction(params ReactionParameters) error {
5355 values := url.Values{
5456 "token": {api.config.token},
6062 values.Set("file", string(params.File))
6163 }
6264 if params.FileComment != DEFAULT_REACTION_FILE_COMMENT {
63 values.Set("file", string(params.FileComment))
65 values.Set("file_comment", string(params.FileComment))
6466 }
6567 if params.Channel != DEFAULT_REACTION_CHANNEL {
6668 values.Set("channel", string(params.Channel))
0 package slack
1
2 import (
3 "net/http"
4 "reflect"
5 "testing"
6 )
7
8 var (
9 addedReaction ReactionParameters
10 )
11
12 func addReactionHandler(w http.ResponseWriter, r *http.Request) {
13 w.Header().Set("Content-Type", "application/json")
14 addedReaction.Name = r.FormValue("name")
15 addedReaction.File = r.FormValue("file")
16 addedReaction.FileComment = r.FormValue("file_comment")
17 addedReaction.Channel = r.FormValue("channel")
18 addedReaction.Timestamp = r.FormValue("timestamp")
19 w.Write([]byte(`{ "ok": true }`))
20 }
21
22 func TestSlack_AddReaction(t *testing.T) {
23 http.HandleFunc("/reactions.add", addReactionHandler)
24 once.Do(startServer)
25 SLACK_API = "http://" + serverAddr + "/"
26 api := New("testing-token")
27 params := NewReactionParameters()
28 params.Name = "thumbsup"
29 params.File = "FileID"
30 params.FileComment = "FileCommentID"
31 params.Channel = "ChannelID"
32 params.Timestamp = "123"
33 addedReaction = ReactionParameters{}
34 err := api.AddReaction(params)
35 if err != nil {
36 t.Fatalf("Unexpected error: %s", err)
37 }
38 if !reflect.DeepEqual(params, addedReaction) {
39 t.Fatalf("Got reaction %#v, want %#v", addedReaction, params)
40 }
41 }