7
7
"github.com/stretchr/testify/assert"
8
8
9
9
"github.com/go-task/task/v3/internal/experiments"
10
+ "github.com/go-task/task/v3/taskrc/ast"
10
11
)
11
12
12
13
func TestNew (t * testing.T ) {
@@ -16,60 +17,124 @@ func TestNew(t *testing.T) {
16
17
)
17
18
tests := []struct {
18
19
name string
20
+ config * ast.TaskRC
19
21
allowedValues []int
20
- value int
22
+ env int
21
23
wantEnabled bool
22
24
wantActive bool
23
25
wantValid error
26
+ wantValue int
24
27
}{
25
28
{
26
- name : `[] allowed, value =""` ,
29
+ name : `[] allowed, env =""` ,
27
30
wantEnabled : false ,
28
31
wantActive : false ,
29
32
},
30
33
{
31
- name : `[] allowed, value ="1"` ,
32
- value : 1 ,
34
+ name : `[] allowed, env ="1"` ,
35
+ env : 1 ,
33
36
wantEnabled : false ,
34
37
wantActive : false ,
35
38
wantValid : & experiments.InactiveError {
36
39
Name : exampleExperiment ,
37
40
},
41
+ wantValue : 1 ,
38
42
},
39
43
{
40
- name : `[1] allowed, value =""` ,
44
+ name : `[1] allowed, env =""` ,
41
45
allowedValues : []int {1 },
42
46
wantEnabled : false ,
43
47
wantActive : true ,
44
48
},
45
49
{
46
- name : `[1] allowed, value ="1"` ,
50
+ name : `[1] allowed, env ="1"` ,
47
51
allowedValues : []int {1 },
48
- value : 1 ,
52
+ env : 1 ,
49
53
wantEnabled : true ,
50
54
wantActive : true ,
55
+ wantValue : 1 ,
51
56
},
52
57
{
53
- name : `[1] allowed, value ="2"` ,
58
+ name : `[1] allowed, env ="2"` ,
54
59
allowedValues : []int {1 },
55
- value : 2 ,
60
+ env : 2 ,
56
61
wantEnabled : false ,
57
62
wantActive : true ,
58
63
wantValid : & experiments.InvalidValueError {
59
64
Name : exampleExperiment ,
60
65
AllowedValues : []int {1 },
61
66
Value : 2 ,
62
67
},
68
+ wantValue : 2 ,
69
+ },
70
+ {
71
+ name : `[1, 2] allowed, env="1"` ,
72
+ allowedValues : []int {1 , 2 },
73
+ env : 1 ,
74
+ wantEnabled : true ,
75
+ wantActive : true ,
76
+ wantValue : 1 ,
77
+ },
78
+ {
79
+ name : `[1, 2] allowed, env="1"` ,
80
+ allowedValues : []int {1 , 2 },
81
+ env : 2 ,
82
+ wantEnabled : true ,
83
+ wantActive : true ,
84
+ wantValue : 2 ,
85
+ },
86
+ {
87
+ name : `[1] allowed, config="1"` ,
88
+ config : & ast.TaskRC {
89
+ Experiments : map [string ]int {
90
+ exampleExperiment : 1 ,
91
+ },
92
+ },
93
+ allowedValues : []int {1 },
94
+ wantEnabled : true ,
95
+ wantActive : true ,
96
+ wantValue : 1 ,
97
+ },
98
+ {
99
+ name : `[1] allowed, config="2"` ,
100
+ config : & ast.TaskRC {
101
+ Experiments : map [string ]int {
102
+ exampleExperiment : 2 ,
103
+ },
104
+ },
105
+ allowedValues : []int {1 },
106
+ wantEnabled : false ,
107
+ wantActive : true ,
108
+ wantValid : & experiments.InvalidValueError {
109
+ Name : exampleExperiment ,
110
+ AllowedValues : []int {1 },
111
+ Value : 2 ,
112
+ },
113
+ wantValue : 2 ,
114
+ },
115
+ {
116
+ name : `[1, 2] allowed, env="1", config="2"` ,
117
+ config : & ast.TaskRC {
118
+ Experiments : map [string ]int {
119
+ exampleExperiment : 2 ,
120
+ },
121
+ },
122
+ allowedValues : []int {1 , 2 },
123
+ env : 1 ,
124
+ wantEnabled : true ,
125
+ wantActive : true ,
126
+ wantValue : 2 ,
63
127
},
64
128
}
65
129
for _ , tt := range tests {
66
130
t .Run (tt .name , func (t * testing.T ) {
67
- t .Setenv (exampleExperimentEnv , strconv .Itoa (tt .value ))
68
- x := experiments .New (exampleExperiment , tt .allowedValues ... )
131
+ t .Setenv (exampleExperimentEnv , strconv .Itoa (tt .env ))
132
+ x := experiments .New (exampleExperiment , tt .config , tt . allowedValues ... )
69
133
assert .Equal (t , exampleExperiment , x .Name )
70
134
assert .Equal (t , tt .wantEnabled , x .Enabled ())
71
135
assert .Equal (t , tt .wantActive , x .Active ())
72
136
assert .Equal (t , tt .wantValid , x .Valid ())
137
+ assert .Equal (t , tt .wantValue , x .Value )
73
138
})
74
139
}
75
140
}
0 commit comments