-
Notifications
You must be signed in to change notification settings - Fork 13
/
integ_test.go
128 lines (104 loc) · 2.83 KB
/
integ_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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package main
import (
"fmt"
"io/ioutil"
"net"
"net/http"
"os"
"testing"
"time"
)
func TestMain(m *testing.M) {
// switch to testdata dir to access dummy config.toml
os.Chdir("./testdata")
// set up verbose flags for testing
os.Args = append(os.Args, "-test.v")
go main()
// make sure the server is up before running tests
tries := 10
for i := 0; i < tries; i++ {
if conn, err := net.Dial("tcp", "localhost:9001"); err == nil {
conn.Close()
fmt.Println("Server up! Waiting another second.")
<-time.After(1 * time.Second)
break
}
if i < tries-1 {
fmt.Printf("Server not up yet. Try %d\n", i)
} else {
fmt.Printf("Server not up after %d tries. Failing tests.\n", tries)
os.Exit(-1)
}
<-time.After(1 * time.Second)
}
os.Exit(m.Run())
}
func TestPushEventExplicit(t *testing.T) {
body, err := os.Open("./push_develop.json")
if err != nil {
t.Fatalf("Failed to open payload file. Error: %v", err)
}
client := http.Client{}
req, _ := http.NewRequest("POST", "http://localhost:9001", body)
req.Header.Add("X-GitHub-Event", "push")
res, err := client.Do(req)
if err != nil {
t.Fatalf("Error posting to server. Error: %v", err)
}
if res.StatusCode != 200 {
t.Errorf("Bad response from server. Response code: %v", res.StatusCode)
}
data, err := ioutil.ReadAll(res.Body)
if err != nil {
t.Fatalf("Failed to read in response body. Error: %v", err)
t.FailNow()
}
res.Body.Close()
t.Logf("Data returned: %v", data)
}
func TestPushEventAll(t *testing.T) {
body, err := os.Open("./push_master.json")
if err != nil {
t.Fatalf("Failed to open payload file. Error: %v", err)
}
client := http.Client{}
req, _ := http.NewRequest("POST", "http://localhost:9001", body)
req.Header.Add("X-GitHub-Event", "push")
res, err := client.Do(req)
if err != nil {
t.Fatalf("Error posting to server. Error: %v", err)
}
if res.StatusCode != 200 {
t.Errorf("Bad response from server. Response code: %v", res.StatusCode)
}
data, err := ioutil.ReadAll(res.Body)
if err != nil {
t.Fatalf("Failed to read in response body. Error: %v", err)
t.FailNow()
}
res.Body.Close()
t.Logf("Data returned: %v", data)
}
func TestPushEventBadRepo(t *testing.T) {
body, err := os.Open("./push_differentrepo.json")
if err != nil {
t.Fatalf("Failed to open payload file. Error: %v", err)
}
client := http.Client{}
req, _ := http.NewRequest("POST", "http://localhost:9001", body)
req.Header.Add("X-GitHub-Event", "push")
res, err := client.Do(req)
if err != nil {
t.Fatalf("Error posting to server. Error: %v", err)
}
if res.StatusCode != 200 {
t.Errorf("Bad response from server. Response code: %v", res.StatusCode)
}
data, err := ioutil.ReadAll(res.Body)
if err != nil {
t.Fatalf("Failed to read in response body. Error: %v", err)
t.FailNow()
}
res.Body.Close()
t.Logf("Data returned: %v", data)
}