-
Notifications
You must be signed in to change notification settings - Fork 1
/
newrelic_test.go
85 lines (63 loc) · 2.66 KB
/
newrelic_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package hook
import (
"github.com/lucasgomide/snitch/types"
"gopkg.in/jarcoal/httpmock.v1"
"testing"
)
var newrelic_host = "https://api.newrelic.com"
func TestNewRelicDeploySuccessful(t *testing.T) {
httpmock.Activate()
defer httpmock.DeactivateAndReset()
var deploys []types.Deploy
deploys = append(deploys, types.Deploy{"app-sample", "12345678909", "sha1", "user@g.com", "v15"})
s := NewRelic{newrelic_host, "app-id-here", "api-key-here", "revision-here"}
httpmock.RegisterResponder("POST", s.Host+"/v2/applications/"+s.ApplicationId+"/deployments.json",
httpmock.NewStringResponder(201, `ok`))
if err := s.CallHook(deploys); err != nil {
t.Error(err)
}
}
func TestNewRelicReturnsErrorWhenCreateDeployFails(t *testing.T) {
httpmock.Activate()
defer httpmock.DeactivateAndReset()
var deploys []types.Deploy
deploys = append(deploys, types.Deploy{"app-sample", "12345678909", "sha1", "user@g.com", "v15"})
s := NewRelic{newrelic_host, "app-id-here", "api-key-here", "revision-here"}
httpmock.RegisterResponder("POST", s.Host+"/v2/applications/"+s.ApplicationId+"/deployments.json",
httpmock.NewStringResponder(502, `error`))
if err := s.CallHook(deploys); err == nil {
t.Error("Expected returns error, got no error")
} else if err.Error() != "NewRelic::CreateDeploy - response status code isn't 201" {
t.Error(err)
}
}
func TestNewRelicValidateFields(t *testing.T) {
s := NewRelic{}
if err = s.ValidatesFields(); err == nil {
t.Error("Expected returns error, got nil error")
} else if err.Error() != "Field host into NewRelic hook is required" {
t.Error("Expected error Field host into NewRelic hook is required, got", err.Error())
}
s.Host = "http://abc"
if err = s.ValidatesFields(); err == nil {
t.Error("Expected returns error, got nil error")
} else if err.Error() != "Field application_id into NewRelic hook is required" {
t.Error("Expected error Field application_id into NewRelic hook is required, got", err.Error())
}
s.ApplicationId = "app-id-here"
if err = s.ValidatesFields(); err == nil {
t.Error("Expected returns error, got nil error")
} else if err.Error() != "Field api_key into NewRelic hook is required" {
t.Error("Expected error Field api_key into NewRelic hook is required, got", err.Error())
}
s.ApiKey = "api-key-here"
if err = s.ValidatesFields(); err == nil {
t.Error("Expected returns error, got nil error")
} else if err.Error() != "Field revision into NewRelic hook is required" {
t.Error("Expected error Field revision into NewRelic hook is required, got", err.Error())
}
s.Revision = "revision-here"
if err = s.ValidatesFields(); err != nil {
t.Error("Expected returns no error, got", err.Error())
}
}