-
Notifications
You must be signed in to change notification settings - Fork 1
/
colors_test.go
63 lines (53 loc) · 1.49 KB
/
colors_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
package prox
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
var _ = Describe("colorPalette", func() {
Describe("next", func() {
It("should return a random permutation of colors", func() {
cp := newColorPalette()
Expect(len(cp.colors)).To(BeNumerically(">", 2))
// fetch all available colors
colors := map[color]struct{}{}
for i := 0; i < len(cp.colors); i++ {
c := cp.next()
Expect(colors).NotTo(HaveKey(c), "there should be no duplicate colors")
colors[c] = struct{}{}
}
})
It("should reuse its colors when asked for more colors than we have defined", func() {
cp := newColorPalette()
colors1 := map[color]struct{}{}
colors2 := map[color]struct{}{}
for i := 0; i < len(cp.colors); i++ {
c := cp.next()
colors1[c] = struct{}{}
}
for i := 0; i < len(cp.colors); i++ {
c := cp.next()
colors2[c] = struct{}{}
}
Expect(colors1).To(Equal(colors2))
})
})
})
var _ = Describe("parseColor", func() {
It("should support bold for all colors", func() {
colors := map[string]color{
"red": colorRed,
"green": colorGreen,
"yellow": colorYellow,
"blue": colorBlue,
"magenta": colorMagenta,
"cyan": colorCyan,
"white": colorWhite,
}
for colorStr, expected := range colors {
actual := parseColor(colorStr)
Expect(actual).To(Equal(expected), "Parsing " + colorStr)
actual = parseColor(colorStr+"-bold")
Expect(actual).To(Equal(expected+colorBold), "Parsing " + colorStr+ " (bold)")
}
})
})