Skip to content

Commit 6e3547d

Browse files
committed
add test
1 parent 48686ca commit 6e3547d

File tree

1 file changed

+124
-0
lines changed

1 file changed

+124
-0
lines changed
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
package gatewayapi
2+
3+
import (
4+
"time"
5+
6+
. "github.com/onsi/ginkgo/v2"
7+
. "github.com/onsi/gomega"
8+
9+
"github.com/api7/api7-ingress-controller/test/e2e/scaffold"
10+
)
11+
12+
var _ = Describe("Test BackendTrafficPolicy", func() {
13+
s := scaffold.NewDefaultScaffold()
14+
15+
var defaultGatewayClass = `
16+
apiVersion: gateway.networking.k8s.io/v1
17+
kind: GatewayClass
18+
metadata:
19+
name: %s
20+
spec:
21+
controllerName: %s
22+
`
23+
24+
var defaultGateway = `
25+
apiVersion: gateway.networking.k8s.io/v1
26+
kind: Gateway
27+
metadata:
28+
name: api7ee
29+
spec:
30+
gatewayClassName: %s
31+
listeners:
32+
- name: http1
33+
protocol: HTTP
34+
port: 80
35+
`
36+
37+
var defaultHTTPRoute = `
38+
apiVersion: gateway.networking.k8s.io/v1
39+
kind: HTTPRoute
40+
metadata:
41+
name: httpbin
42+
spec:
43+
parentRefs:
44+
- name: api7ee
45+
hostnames:
46+
- "httpbin.org"
47+
rules:
48+
- matches:
49+
- path:
50+
type: Exact
51+
value: /get
52+
- path:
53+
type: Exact
54+
value: /headers
55+
backendRefs:
56+
- name: httpbin-service-e2e-test
57+
port: 80
58+
`
59+
Context("Rewrite Upstream Host", func() {
60+
var createUpstreamHost = `
61+
apiVersion: gateway.apisix.io/v1alpha1
62+
kind: BackendTrafficPolicy
63+
metadata:
64+
name: httpbin
65+
namespace: default
66+
spec:
67+
targetRefs:
68+
- name: httpbin-service-e2e-test
69+
kind: Service
70+
group: ""
71+
passHost: rewrite
72+
upstreamHost: httpbin.example.com
73+
`
74+
75+
var updateUpstreamHost = `
76+
apiVersion: gateway.apisix.io/v1alpha1
77+
kind: BackendTrafficPolicy
78+
metadata:
79+
name: httpbin
80+
namespace: default
81+
spec:
82+
targetRefs:
83+
- name: httpbin-service-e2e-test
84+
kind: Service
85+
group: ""
86+
passHost: rewrite
87+
upstreamHost: httpbin.update.example.com
88+
`
89+
90+
BeforeEach(func() {
91+
s.ApplyDefaultGatewayResource(defaultGatewayClass, defaultGateway, defaultHTTPRoute)
92+
})
93+
It("should rewrite upstream host", func() {
94+
s.ResourceApplied("BackendTrafficPolicy", "httpbin", createUpstreamHost, 1)
95+
s.NewAPISIXClient().
96+
GET("/headers").
97+
WithHost("httpbin.org").
98+
Expect().
99+
Status(200).
100+
Body().Contains("httpbin.example.com")
101+
102+
s.ResourceApplied("BackendTrafficPolicy", "httpbin", updateUpstreamHost, 2)
103+
s.NewAPISIXClient().
104+
GET("/headers").
105+
WithHost("httpbin.org").
106+
Expect().
107+
Status(200).
108+
Body().Contains("httpbin.update.example.com")
109+
110+
err := s.DeleteResourceFromString(createUpstreamHost)
111+
Expect(err).NotTo(HaveOccurred(), "deleting BackendTrafficPolicy")
112+
time.Sleep(5 * time.Second)
113+
114+
s.NewAPISIXClient().
115+
GET("/headers").
116+
WithHost("httpbin.org").
117+
Expect().
118+
Status(200).
119+
Body().
120+
NotContains("httpbin.update.example.com").
121+
NotContains("httpbin.example.com")
122+
})
123+
})
124+
})

0 commit comments

Comments
 (0)