-
Notifications
You must be signed in to change notification settings - Fork 1
/
whos_out_test.go
62 lines (55 loc) · 1.4 KB
/
whos_out_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
package bamboohr_test
import (
"fmt"
"net/http"
"testing"
"gotest.tools/assert"
bamboohr "github.com/AkihikoITOH/bamboohr.go"
)
var dummyTimeOffsData = []byte(
`[
{
"id": 111,
"type": "timeOff",
"employeeId": 54321,
"name": "Jessy Doe",
"start": "2018-02-01",
"end": "2019-01-31"
},
{
"id": 222,
"type": "timeOff",
"employeeId": 12345,
"name": "John Doe",
"start": "2018-11-07",
"end": "2019-03-31"
},
{
"id": 123,
"type": "holiday",
"start": "2019-03-08",
"end": "2019-03-08"
}
]`)
func Example_whosOut() {
conf := bamboohr.NewConfig("api-domain", "api-key")
api := bamboohr.NewAPI(conf)
api.WhosOut("2018-01-01", "2019-03-31")
}
func TestWhosOut(t *testing.T) {
client := NewMockClient(dummyTimeOffsData)
api := &bamboohr.API{Config: mockAPIConfig, HTTPClient: client}
timeoffs, err := api.WhosOut("", "2019-03-31")
if err != nil {
fmt.Println(err.Error())
return
}
// Check request object
assert.Equal(t, client.Request.Method, http.MethodGet)
assert.Equal(t, client.Request.URL.String(), "https://api.bamboohr.com/api/gateway.php/test/v1/time_off/whos_out?end=2019-03-31")
assert.Equal(t, client.Request.Body, nil)
SharedRequestTests(t, client.Request)
assert.Equal(t, len(timeoffs), 3)
assert.Equal(t, timeoffs[0].Name, "Jessy Doe")
assert.Equal(t, timeoffs[0].ID, 111)
}