1
1
package cel
2
2
3
3
import (
4
- "context"
5
4
"testing"
6
5
7
- . "github.com/onsi/gomega"
8
6
controllerruntime "sigs.k8s.io/controller-runtime"
9
- "sigs.k8s.io/controller-runtime/pkg/client"
10
7
gatewayv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
11
8
12
9
ngfAPIv1alpha1 "github.com/nginx/nginx-gateway-fabric/v2/apis/v1alpha1"
13
10
"github.com/nginx/nginx-gateway-fabric/v2/internal/framework/helpers"
14
- "github.com/nginx/nginx-gateway-fabric/v2/tests/framework"
15
11
)
16
12
17
13
func TestClientSettingsPoliciesTargetRefKind (t * testing.T ) {
18
14
t .Parallel ()
19
- g := NewWithT (t )
20
-
21
- k8sClient , err := getKubernetesClient (t )
22
- g .Expect (err ).ToNot (HaveOccurred ())
15
+ k8sClient := getKubernetesClient (t )
23
16
24
17
tests := []struct {
25
- policySpec ngfAPIv1alpha1.ClientSettingsPolicySpec
18
+ spec ngfAPIv1alpha1.ClientSettingsPolicySpec
26
19
name string
27
20
wantErrors []string
28
21
}{
29
22
{
30
23
name : "Validate TargetRef of kind Gateway is allowed" ,
31
- policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
24
+ spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
32
25
TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
33
26
Kind : gatewayKind ,
34
27
Group : gatewayGroup ,
@@ -37,7 +30,7 @@ func TestClientSettingsPoliciesTargetRefKind(t *testing.T) {
37
30
},
38
31
{
39
32
name : "Validate TargetRef of kind HTTPRoute is allowed" ,
40
- policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
33
+ spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
41
34
TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
42
35
Kind : httpRouteKind ,
43
36
Group : gatewayGroup ,
@@ -46,7 +39,7 @@ func TestClientSettingsPoliciesTargetRefKind(t *testing.T) {
46
39
},
47
40
{
48
41
name : "Validate TargetRef of kind GRPCRoute is allowed" ,
49
- policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
42
+ spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
50
43
TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
51
44
Kind : grpcRouteKind ,
52
45
Group : gatewayGroup ,
@@ -56,7 +49,7 @@ func TestClientSettingsPoliciesTargetRefKind(t *testing.T) {
56
49
{
57
50
name : "Validate Invalid TargetRef Kind is not allowed" ,
58
51
wantErrors : []string {expectedTargetRefKindError },
59
- policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
52
+ spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
60
53
TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
61
54
Kind : invalidKind ,
62
55
Group : gatewayGroup ,
@@ -66,7 +59,7 @@ func TestClientSettingsPoliciesTargetRefKind(t *testing.T) {
66
59
{
67
60
name : "Validate TCPRoute TargetRef Kind is not allowed" ,
68
61
wantErrors : []string {expectedTargetRefKindError },
69
- policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
62
+ spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
70
63
TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
71
64
Kind : tcpRouteKind ,
72
65
Group : gatewayGroup ,
@@ -78,26 +71,32 @@ func TestClientSettingsPoliciesTargetRefKind(t *testing.T) {
78
71
for _ , tt := range tests {
79
72
t .Run (tt .name , func (t * testing.T ) {
80
73
t .Parallel ()
81
- validateClientSettingsPolicy (t , tt , g , k8sClient )
74
+ spec := tt .spec
75
+ spec .TargetRef .Name = gatewayv1alpha2 .ObjectName (uniqueResourceName (testTargetRefName ))
76
+ clientSettingsPolicy := & ngfAPIv1alpha1.ClientSettingsPolicy {
77
+ ObjectMeta : controllerruntime.ObjectMeta {
78
+ Name : uniqueResourceName (testResourceName ),
79
+ Namespace : defaultNamespace ,
80
+ },
81
+ Spec : spec ,
82
+ }
83
+ validateCrd (t , tt .wantErrors , clientSettingsPolicy , k8sClient )
82
84
})
83
85
}
84
86
}
85
87
86
88
func TestClientSettingsPoliciesTargetRefGroup (t * testing.T ) {
87
89
t .Parallel ()
88
- g := NewWithT (t )
89
-
90
- k8sClient , err := getKubernetesClient (t )
91
- g .Expect (err ).ToNot (HaveOccurred ())
90
+ k8sClient := getKubernetesClient (t )
92
91
93
92
tests := []struct {
94
- policySpec ngfAPIv1alpha1.ClientSettingsPolicySpec
93
+ spec ngfAPIv1alpha1.ClientSettingsPolicySpec
95
94
name string
96
95
wantErrors []string
97
96
}{
98
97
{
99
98
name : "Validate gateway.networking.k8s.io TargetRef Group is allowed" ,
100
- policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
99
+ spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
101
100
TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
102
101
Kind : gatewayKind ,
103
102
Group : gatewayGroup ,
@@ -107,7 +106,7 @@ func TestClientSettingsPoliciesTargetRefGroup(t *testing.T) {
107
106
{
108
107
name : "Validate invalid.networking.k8s.io TargetRef Group is not allowed" ,
109
108
wantErrors : []string {expectedTargetRefGroupError },
110
- policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
109
+ spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
111
110
TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
112
111
Kind : gatewayKind ,
113
112
Group : invalidGroup ,
@@ -117,7 +116,7 @@ func TestClientSettingsPoliciesTargetRefGroup(t *testing.T) {
117
116
{
118
117
name : "Validate discovery.k8s.io/v1 TargetRef Group is not allowed" ,
119
118
wantErrors : []string {expectedTargetRefGroupError },
120
- policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
119
+ spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
121
120
TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
122
121
Kind : gatewayKind ,
123
122
Group : discoveryGroup ,
@@ -129,26 +128,32 @@ func TestClientSettingsPoliciesTargetRefGroup(t *testing.T) {
129
128
for _ , tt := range tests {
130
129
t .Run (tt .name , func (t * testing.T ) {
131
130
t .Parallel ()
132
- validateClientSettingsPolicy (t , tt , g , k8sClient )
131
+ spec := tt .spec
132
+ spec .TargetRef .Name = gatewayv1alpha2 .ObjectName (uniqueResourceName (testTargetRefName ))
133
+ clientSettingsPolicy := & ngfAPIv1alpha1.ClientSettingsPolicy {
134
+ ObjectMeta : controllerruntime.ObjectMeta {
135
+ Name : uniqueResourceName (testResourceName ),
136
+ Namespace : defaultNamespace ,
137
+ },
138
+ Spec : spec ,
139
+ }
140
+ validateCrd (t , tt .wantErrors , clientSettingsPolicy , k8sClient )
133
141
})
134
142
}
135
143
}
136
144
137
145
func TestClientSettingsPoliciesKeepAliveTimeout (t * testing.T ) {
138
146
t .Parallel ()
139
- g := NewWithT (t )
140
-
141
- k8sClient , err := getKubernetesClient (t )
142
- g .Expect (err ).ToNot (HaveOccurred ())
147
+ k8sClient := getKubernetesClient (t )
143
148
144
149
tests := []struct {
145
- policySpec ngfAPIv1alpha1.ClientSettingsPolicySpec
150
+ spec ngfAPIv1alpha1.ClientSettingsPolicySpec
146
151
name string
147
152
wantErrors []string
148
153
}{
149
154
{
150
155
name : "Validate KeepAliveTimeout is not set" ,
151
- policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
156
+ spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
152
157
TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
153
158
Kind : gatewayKind ,
154
159
Group : gatewayGroup ,
@@ -158,7 +163,7 @@ func TestClientSettingsPoliciesKeepAliveTimeout(t *testing.T) {
158
163
},
159
164
{
160
165
name : "Validate KeepAlive is set" ,
161
- policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
166
+ spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
162
167
TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
163
168
Kind : gatewayKind ,
164
169
Group : gatewayGroup ,
@@ -174,7 +179,7 @@ func TestClientSettingsPoliciesKeepAliveTimeout(t *testing.T) {
174
179
{
175
180
name : "Validate Header cannot be set without Server" ,
176
181
wantErrors : []string {expectedHeaderWithoutServerError },
177
- policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
182
+ spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
178
183
TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
179
184
Kind : gatewayKind ,
180
185
Group : gatewayGroup ,
@@ -191,46 +196,16 @@ func TestClientSettingsPoliciesKeepAliveTimeout(t *testing.T) {
191
196
for _ , tt := range tests {
192
197
t .Run (tt .name , func (t * testing.T ) {
193
198
t .Parallel ()
194
- validateClientSettingsPolicy (t , tt , g , k8sClient )
199
+ spec := tt .spec
200
+ spec .TargetRef .Name = gatewayv1alpha2 .ObjectName (uniqueResourceName (testTargetRefName ))
201
+ clientSettingsPolicy := & ngfAPIv1alpha1.ClientSettingsPolicy {
202
+ ObjectMeta : controllerruntime.ObjectMeta {
203
+ Name : uniqueResourceName (testResourceName ),
204
+ Namespace : defaultNamespace ,
205
+ },
206
+ Spec : spec ,
207
+ }
208
+ validateCrd (t , tt .wantErrors , clientSettingsPolicy , k8sClient )
195
209
})
196
210
}
197
211
}
198
-
199
- func validateClientSettingsPolicy (t * testing.T , tt struct {
200
- policySpec ngfAPIv1alpha1.ClientSettingsPolicySpec
201
- name string
202
- wantErrors []string
203
- }, g * WithT , k8sClient client.Client ,
204
- ) {
205
- t .Helper ()
206
-
207
- policySpec := tt .policySpec
208
- policySpec .TargetRef .Name = gatewayv1alpha2 .ObjectName (uniqueResourceName (testTargetRefName ))
209
- policyName := uniqueResourceName (testPolicyName )
210
-
211
- clientSettingsPolicy := & ngfAPIv1alpha1.ClientSettingsPolicy {
212
- ObjectMeta : controllerruntime.ObjectMeta {
213
- Name : policyName ,
214
- Namespace : defaultNamespace ,
215
- },
216
- Spec : policySpec ,
217
- }
218
- timeoutConfig := framework .DefaultTimeoutConfig ()
219
- ctx , cancel := context .WithTimeout (context .Background (), timeoutConfig .KubernetesClientTimeout )
220
- err := k8sClient .Create (ctx , clientSettingsPolicy )
221
- defer cancel ()
222
-
223
- // Clean up after test
224
- defer func () {
225
- _ = k8sClient .Delete (context .Background (), clientSettingsPolicy )
226
- }()
227
-
228
- if len (tt .wantErrors ) == 0 {
229
- g .Expect (err ).ToNot (HaveOccurred ())
230
- } else {
231
- g .Expect (err ).To (HaveOccurred ())
232
- for _ , wantError := range tt .wantErrors {
233
- g .Expect (err .Error ()).To (ContainSubstring (wantError ), "Expected error '%s' not found in: %s" , wantError , err .Error ())
234
- }
235
- }
236
- }
0 commit comments