diff --git a/pkg/notifier/client_test.go b/pkg/notifier/client_test.go new file mode 100644 index 00000000..3695f087 --- /dev/null +++ b/pkg/notifier/client_test.go @@ -0,0 +1,30 @@ +package notifier + +import ( + "encoding/json" + "io/ioutil" + "net/http" + "net/http/httptest" + "testing" +) + +func Test_postMessage(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + b, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Fatal(err) + } + var payload = make(map[string]string) + err = json.Unmarshal(b, &payload) + + if payload["status"] != "success" { + t.Fatal("wrong payload") + } + })) + defer ts.Close() + + err := postMessage(ts.URL, map[string]string{"status": "success"}) + if err != nil { + t.Fatal(err) + } +} diff --git a/pkg/notifier/slack_test.go b/pkg/notifier/slack_test.go new file mode 100644 index 00000000..e0bb976a --- /dev/null +++ b/pkg/notifier/slack_test.go @@ -0,0 +1,35 @@ +package notifier + +import ( + "encoding/json" + "io/ioutil" + "net/http" + "net/http/httptest" + "testing" +) + +func TestSlack_Post(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + b, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Fatal(err) + } + var payload = SlackPayload{} + err = json.Unmarshal(b, &payload) + + if payload.Attachments[0].AuthorName != "podinfo.test" { + t.Fatal("wrong author name") + } + })) + defer ts.Close() + + slack, err := NewSlack(ts.URL, "test", "test") + if err != nil { + t.Fatal(err) + } + + err = slack.Post("podinfo", "test", "test", nil, true) + if err != nil { + t.Fatal(err) + } +} diff --git a/pkg/notifier/teams_test.go b/pkg/notifier/teams_test.go new file mode 100644 index 00000000..70799b12 --- /dev/null +++ b/pkg/notifier/teams_test.go @@ -0,0 +1,35 @@ +package notifier + +import ( + "encoding/json" + "io/ioutil" + "net/http" + "net/http/httptest" + "testing" +) + +func TestTeams_Post(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + b, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Fatal(err) + } + var payload = MSTeamsPayload{} + err = json.Unmarshal(b, &payload) + + if payload.Sections[0].ActivitySubtitle != "podinfo.test" { + t.Fatal("wrong activity subtitle") + } + })) + defer ts.Close() + + teams, err := NewMSTeams(ts.URL) + if err != nil { + t.Fatal(err) + } + + err = teams.Post("podinfo", "test", "test", nil, true) + if err != nil { + t.Fatal(err) + } +}