-
Notifications
You must be signed in to change notification settings - Fork 4
/
time_enties_test.go
115 lines (92 loc) · 2.68 KB
/
time_enties_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
package mite_test
import (
"fmt"
"os"
"testing"
"time"
"github.com/jinzhu/now"
mite "github.com/gosticks/go-mite"
)
func TestGetTimeEntriesGroup(t *testing.T) {
username, okUser := os.LookupEnv("MITE_USER")
team, okAddr := os.LookupEnv("MITE_TEAM")
key, okKey := os.LookupEnv("MITE_APIKEY")
if !okAddr || !okUser || !okKey {
t.Errorf("username=%s, team=%s and key=%s are required", username, team, key)
t.FailNow()
}
m := mite.NewMiteAPI(username, team, key, "test@go-mite")
// should fail
_, errEntries := m.GetTimeEntriesGroup(now.BeginningOfMonth(), now.EndOfMonth(), nil)
if errEntries == nil {
t.Error(errEntries)
}
// should not fail
entries, errEntries := m.GetTimeEntriesGroup(now.BeginningOfMonth(), now.EndOfMonth(), map[string]string{"group_by": "user"})
if errEntries != nil {
t.Error(errEntries)
}
t.Logf("loaded %d groups", len(entries))
}
func TestCreateDeleteTimeEntry(t *testing.T) {
username, okUser := os.LookupEnv("MITE_USER")
team, okAddr := os.LookupEnv("MITE_TEAM")
key, okKey := os.LookupEnv("MITE_APIKEY")
if !okAddr || !okUser || !okKey {
t.Errorf("username=%s, team=%s and key=%s are required", username, team, key)
t.FailNow()
}
m := mite.NewMiteAPI(username, team, key, "test@go-mite")
newEntry := &mite.TimeEntryCreator{
DateAt: mite.Time{time.Now()},
Minutes: 60,
Note: "TEST NOTE CREATED BY GO-MITE API. PLEASE REMOVE",
}
entry, errEntry := m.CreateTimeEntry(newEntry)
if errEntry != nil {
t.Error(errEntry)
}
t.Logf("Created entry: %d", entry.ID)
errDel := m.DeleteTimeEntry(entry.ID)
if errDel != nil {
t.Error(errDel)
}
}
func TestCreateUpdateDeleteTimeEntry(t *testing.T) {
username, okUser := os.LookupEnv("MITE_USER")
team, okAddr := os.LookupEnv("MITE_TEAM")
key, okKey := os.LookupEnv("MITE_APIKEY")
if !okAddr || !okUser || !okKey {
t.Errorf("username=%s, team=%s and key=%s are required", username, team, key)
t.FailNow()
}
m := mite.NewMiteAPI(username, team, key, "test@go-mite")
newEntry := &mite.TimeEntryCreator{
DateAt: mite.Time{time.Now()},
Minutes: 60,
Note: "TEST NOTE CREATED BY GO-MITE API. PLEASE REMOVE",
}
entry, errEntry := m.CreateTimeEntry(newEntry)
if errEntry != nil {
t.Error(errEntry)
}
t.Logf("Created entry: %d", entry.ID)
errUpdate := m.UpdateTimeEntry(entry.ID, &mite.TimeEntry{
Note: "Updated note",
Minutes: 66,
})
if errUpdate != nil {
t.Error(errUpdate)
}
updated, errGet := m.GetTimeEntry(entry.ID)
if errGet != nil {
t.Error(errGet)
}
if updated.Minutes != 66 || updated.Note != "Updated note" {
t.Error(fmt.Errorf("Update failed values did not change"))
}
errDel := m.DeleteTimeEntry(entry.ID)
if errDel != nil {
t.Error(errDel)
}
}