slack_test.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // Copyright 2017 Unknwon
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License"): you may
  4. // not use this file except in compliance with the License. You may obtain
  5. // a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  11. // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  12. // License for the specific language governing permissions and limitations
  13. // under the License.
  14. package clog
  15. import (
  16. "testing"
  17. . "github.com/smartystreets/goconvey/convey"
  18. )
  19. func Test_slack_Init(t *testing.T) {
  20. Convey("Init Slack logger", t, func() {
  21. Convey("Mismatched config object", func() {
  22. err := New(SLACK, struct{}{})
  23. So(err, ShouldNotBeNil)
  24. _, ok := err.(ErrConfigObject)
  25. So(ok, ShouldBeTrue)
  26. })
  27. Convey("Valid config object", func() {
  28. So(New(SLACK, SlackConfig{
  29. URL: "https://slack.com",
  30. }), ShouldBeNil)
  31. Convey("Incorrect level", func() {
  32. err := New(SLACK, SlackConfig{
  33. Level: LEVEL(-1),
  34. })
  35. So(err, ShouldNotBeNil)
  36. _, ok := err.(ErrInvalidLevel)
  37. So(ok, ShouldBeTrue)
  38. })
  39. })
  40. })
  41. }
  42. func Test_buildSlackPayload(t *testing.T) {
  43. Convey("Build Slack payload", t, func() {
  44. payload, err := buildSlackPayload(&Message{
  45. Level: INFO,
  46. Body: "test message",
  47. })
  48. So(err, ShouldBeNil)
  49. So(payload, ShouldEqual, `{"attachments":[{"text":"test message","color":"#3aa3e3"}]}`)
  50. })
  51. }