-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
Copy pathgroup_test.go
117 lines (95 loc) · 2.78 KB
/
group_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
package v1
import (
"testing"
"github.com/stretchr/testify/assert"
"go.k6.io/k6/lib"
)
func TestNewCheck(t *testing.T) {
t.Parallel()
og, err := lib.NewGroup("", nil)
assert.NoError(t, err)
oc, err := lib.NewCheck("my check", og)
assert.NoError(t, err)
oc.Passes = 1234
oc.Fails = 5678
c := NewCheck(oc)
assert.Equal(t, oc.ID, c.ID)
assert.Equal(t, "my check", c.Name)
assert.Equal(t, int64(1234), c.Passes)
assert.Equal(t, int64(5678), c.Fails)
}
func TestNewGroup(t *testing.T) {
t.Parallel()
t.Run("simple", func(t *testing.T) {
t.Parallel()
og, err := lib.NewGroup("My Group", nil)
assert.NoError(t, err)
g := NewGroup(og, nil)
assert.Equal(t, og.ID, g.ID)
assert.Equal(t, og.Name, g.Name)
assert.Nil(t, g.Parent)
assert.Empty(t, g.Groups)
})
t.Run("groups", func(t *testing.T) {
t.Parallel()
root, _ := lib.NewGroup("My Group", nil)
child, _ := root.Group("Child")
inner, _ := child.Group("Inner")
g := NewGroup(root, nil)
assert.Equal(t, root.ID, g.ID)
assert.Equal(t, "My Group", g.Name)
assert.Nil(t, g.Parent)
assert.Len(t, g.Groups, 1)
assert.Len(t, g.Checks, 0)
assert.Equal(t, "Child", g.Groups[0].Name)
assert.Equal(t, child.ID, g.Groups[0].ID)
assert.Equal(t, "My Group", g.Groups[0].Parent.Name)
assert.Equal(t, root.ID, g.Groups[0].Parent.ID)
assert.Equal(t, "Inner", g.Groups[0].Groups[0].Name)
assert.Equal(t, inner.ID, g.Groups[0].Groups[0].ID)
assert.Equal(t, "Child", g.Groups[0].Groups[0].Parent.Name)
assert.Equal(t, child.ID, g.Groups[0].Groups[0].Parent.ID)
assert.Equal(t, "My Group", g.Groups[0].Groups[0].Parent.Parent.Name)
assert.Equal(t, root.ID, g.Groups[0].Groups[0].Parent.Parent.ID)
})
t.Run("checks", func(t *testing.T) {
t.Parallel()
og, _ := lib.NewGroup("My Group", nil)
check, _ := og.Check("my check")
g := NewGroup(og, nil)
assert.Equal(t, og.ID, g.ID)
assert.Equal(t, "My Group", g.Name)
assert.Nil(t, g.Parent)
assert.Len(t, g.Groups, 0)
assert.Len(t, g.Checks, 1)
assert.Equal(t, check.ID, g.Checks[0].ID)
assert.Equal(t, "my check", g.Checks[0].Name)
})
}
func TestFlattenGroup(t *testing.T) {
t.Parallel()
t.Run("blank", func(t *testing.T) {
t.Parallel()
g := &Group{}
assert.EqualValues(t, []*Group{g}, FlattenGroup(g))
})
t.Run("one level", func(t *testing.T) {
t.Parallel()
g := &Group{}
g1 := &Group{Parent: g}
g2 := &Group{Parent: g}
g.Groups = []*Group{g1, g2}
assert.EqualValues(t, []*Group{g, g1, g2}, FlattenGroup(g))
})
t.Run("two levels", func(t *testing.T) {
t.Parallel()
g := &Group{}
g1 := &Group{Parent: g}
g1a := &Group{Parent: g1}
g1b := &Group{Parent: g1}
g1.Groups = []*Group{g1a, g1b}
g2 := &Group{Parent: g}
g.Groups = []*Group{g1, g2}
assert.EqualValues(t, []*Group{g, g1, g1a, g1b, g2}, FlattenGroup(g))
})
}