This is an automated email from the ASF dual-hosted git repository.

ashishtiwari pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git


The following commit(s) were added to refs/heads/master by this push:
     new 1faf2ae4 chore: migrate e2e tests for httproute basic (#2525)
1faf2ae4 is described below

commit 1faf2ae472ff16b102654a609bb131aa876f5c70
Author: Ashish Tiwari <ashishjaitiwari15112...@gmail.com>
AuthorDate: Tue Aug 26 12:28:40 2025 +0530

    chore: migrate e2e tests for httproute basic (#2525)
---
 test/e2e/gatewayapi/httproute.go | 114 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 114 insertions(+)

diff --git a/test/e2e/gatewayapi/httproute.go b/test/e2e/gatewayapi/httproute.go
index 233ea2ae..06ae3c72 100644
--- a/test/e2e/gatewayapi/httproute.go
+++ b/test/e2e/gatewayapi/httproute.go
@@ -37,6 +37,14 @@ import (
        "github.com/apache/apisix-ingress-controller/test/e2e/scaffold"
 )
 
+// helper to apply an HTTPRoute and run a list of request assertions
+func applyHTTPRouteAndAssert(s *scaffold.Scaffold, route string, asserts 
[]scaffold.RequestAssert) {
+       s.ResourceApplied("HTTPRoute", "httpbin", route, 1)
+       for i := range asserts {
+               s.RequestAssert(&asserts[i])
+       }
+}
+
 var _ = Describe("Test HTTPRoute", Label("networking.k8s.io", "httproute"), 
func() {
        s := scaffold.NewDefaultScaffold()
 
@@ -667,6 +675,112 @@ spec:
                                Interval: time.Second * 2,
                        })
                })
+               It("HTTPRoute with multiple hostnames", func() {
+                       route := fmt.Sprintf(`
+apiVersion: gateway.networking.k8s.io/v1
+kind: HTTPRoute
+metadata:
+  name: httpbin
+spec:
+  parentRefs:
+  - name: %s
+  hostnames:
+  - httpbin.example
+  - httpbin2.example
+  rules:
+  - matches:
+    - path:
+        type: Exact
+        value: /get
+    backendRefs:
+    - name: httpbin-service-e2e-test
+      port: 80
+`, s.Namespace())
+
+                       asserts := []scaffold.RequestAssert{
+                               {
+                                       Method:   "GET",
+                                       Path:     "/get",
+                                       Host:     "httpbin.example",
+                                       Check:    
scaffold.WithExpectedStatus(http.StatusOK),
+                                       Timeout:  30 * time.Second,
+                                       Interval: 2 * time.Second,
+                               },
+                               {
+                                       Method:   "GET",
+                                       Path:     "/get",
+                                       Host:     "httpbin2.example",
+                                       Check:    
scaffold.WithExpectedStatus(http.StatusOK),
+                                       Timeout:  30 * time.Second,
+                                       Interval: 2 * time.Second,
+                               },
+                               {
+                                       Method:   "GET",
+                                       Path:     "/get",
+                                       Host:     "httpbin3.example",
+                                       Check:    
scaffold.WithExpectedStatus(http.StatusNotFound),
+                                       Timeout:  30 * time.Second,
+                                       Interval: 2 * time.Second,
+                               },
+                       }
+
+                       applyHTTPRouteAndAssert(s, route, asserts)
+               })
+
+               It("HTTPRoute with multiple matches in one rule", func() {
+                       route := fmt.Sprintf(`
+apiVersion: gateway.networking.k8s.io/v1
+kind: HTTPRoute
+metadata:
+  name: httpbin
+spec:
+  parentRefs:
+  - name: %s
+  hostnames:
+  - httpbin.example
+  rules:
+  - matches:
+    - path:
+        type: Exact
+        value: /get
+    - path:
+        type: Exact
+        value: /ip
+    backendRefs:
+    - name: httpbin-service-e2e-test
+      port: 80
+`, s.Namespace())
+
+                       asserts := []scaffold.RequestAssert{
+                               {
+                                       Method:   "GET",
+                                       Path:     "/get",
+                                       Host:     "httpbin.example",
+                                       Check:    
scaffold.WithExpectedStatus(http.StatusOK),
+                                       Timeout:  30 * time.Second,
+                                       Interval: 2 * time.Second,
+                               },
+                               {
+                                       Method:   "GET",
+                                       Path:     "/ip",
+                                       Host:     "httpbin.example",
+                                       Check:    
scaffold.WithExpectedStatus(http.StatusOK),
+                                       Timeout:  30 * time.Second,
+                                       Interval: 2 * time.Second,
+                               },
+                               {
+                                       Method:   "GET",
+                                       Path:     "/status",
+                                       Host:     "httpbin.example",
+                                       Check:    
scaffold.WithExpectedStatus(http.StatusNotFound),
+                                       Timeout:  30 * time.Second,
+                                       Interval: 2 * time.Second,
+                               },
+                       }
+
+                       applyHTTPRouteAndAssert(s, route, asserts)
+               })
+
        })
 
        Context("HTTPRoute Rule Match", func() {

Reply via email to