-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfields_test.go
More file actions
85 lines (77 loc) · 2.22 KB
/
fields_test.go
File metadata and controls
85 lines (77 loc) · 2.22 KB
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
package labeler
import (
"testing"
)
func TestFieldFlag_Has(t *testing.T) {
tests := []struct {
name string
flag FieldFlag
check FieldFlag
expected bool
}{
{"Has title", FieldTitle, FieldTitle, true},
{"Has body", FieldBody, FieldBody, true},
{"Has both", AllFieldFlags, FieldTitle, true},
{"Has both (body)", AllFieldFlags, FieldBody, true},
{"Does not have", FieldTitle, FieldBody, false},
{"Zero flag", 0, FieldTitle, false},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := tt.flag.Has(tt.check)
if got != tt.expected {
t.Errorf("FieldFlag(%d).Has(%d) = %v; want %v", tt.flag, tt.check, got, tt.expected)
}
})
}
}
func TestFieldFlag_OrDefault(t *testing.T) {
tests := []struct {
name string
flag FieldFlag
expected FieldFlag
}{
{"Non-zero returns self", FieldTitle, FieldTitle},
{"AllFieldFlags returns self", AllFieldFlags, AllFieldFlags},
{"Zero returns AllFieldFlags", 0, AllFieldFlags},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := tt.flag.OrDefault()
if got != tt.expected {
t.Errorf("FieldFlag(%d).OrDefault() = %d; want %d", tt.flag, got, tt.expected)
}
})
}
}
func TestParseFieldFlags(t *testing.T) {
tests := []struct {
name string
input []string
expected FieldFlag
}{
{"Empty slice", []string{}, 0},
{"Single title", []string{"title"}, FieldTitle},
{"Single body", []string{"body"}, FieldBody},
{"Single description (alternate)", []string{"description"}, FieldBody},
{"Both fields", []string{"title", "body"}, AllFieldFlags},
{"Duplicate fields", []string{"title", "title"}, FieldTitle},
{"Unknown field", []string{"unknown"}, 0},
{"Mixed known and unknown", []string{"title", "unknown"}, FieldTitle},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := ParseFieldFlags(tt.input)
if got != tt.expected {
t.Errorf("ParseFieldFlags(%v) = %d; want %d", tt.input, got, tt.expected)
}
})
}
}
func TestAllFieldFlagsValue(t *testing.T) {
expected := FieldTitle | FieldBody
// Ensure AllFieldFlags is set to the correct value of OR'd flags.
if AllFieldFlags != expected {
t.Errorf("AllFieldFlags = %d; want %d", AllFieldFlags, expected)
}
}