You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by al...@apache.org on 2025/07/24 07:20:21 UTC
(apisix-ingress-controller) branch master updated: chore: differentiate the API versions for CRD testing (#2492)
This is an automated email from the ASF dual-hosted git repository.
alinsran 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 f6196ff5 chore: differentiate the API versions for CRD testing (#2492)
f6196ff5 is described below
commit f6196ff50c20d0564b79179f668673e9b5582c7d
Author: AlinsRan <al...@apache.org>
AuthorDate: Thu Jul 24 15:20:15 2025 +0800
chore: differentiate the API versions for CRD testing (#2492)
* chore: differentiate the API versions for CRD testing
* revert ingress.go
* update test
* update test
---
test/e2e/apisix/e2e_test.go | 3 +-
.../crds/{ => v1alpha1}/backendtrafficpolicy.go | 2 +-
test/e2e/crds/{ => v1alpha1}/consumer.go | 2 +-
test/e2e/crds/{ => v1alpha1}/gatewayproxy.go | 2 +-
test/e2e/{apisix => crds/v2}/basic.go | 2 +-
test/e2e/{apisix => crds/v2}/consumer.go | 105 +++++++++++++++++----
test/e2e/{apisix => crds/v2}/globalrule.go | 2 +-
test/e2e/{apisix => crds/v2}/pluginconfig.go | 2 +-
test/e2e/{apisix => crds/v2}/route.go | 19 +++-
test/e2e/{apisix => crds/v2}/status.go | 2 +-
test/e2e/{apisix => crds/v2}/tls.go | 2 +-
11 files changed, 116 insertions(+), 27 deletions(-)
diff --git a/test/e2e/apisix/e2e_test.go b/test/e2e/apisix/e2e_test.go
index ea814157..03fe0ca6 100644
--- a/test/e2e/apisix/e2e_test.go
+++ b/test/e2e/apisix/e2e_test.go
@@ -24,7 +24,8 @@ import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
- _ "github.com/apache/apisix-ingress-controller/test/e2e/crds"
+ _ "github.com/apache/apisix-ingress-controller/test/e2e/crds/v1alpha1"
+ _ "github.com/apache/apisix-ingress-controller/test/e2e/crds/v2"
"github.com/apache/apisix-ingress-controller/test/e2e/framework"
_ "github.com/apache/apisix-ingress-controller/test/e2e/gatewayapi"
_ "github.com/apache/apisix-ingress-controller/test/e2e/ingress"
diff --git a/test/e2e/crds/backendtrafficpolicy.go b/test/e2e/crds/v1alpha1/backendtrafficpolicy.go
similarity index 99%
rename from test/e2e/crds/backendtrafficpolicy.go
rename to test/e2e/crds/v1alpha1/backendtrafficpolicy.go
index 82b88a20..d91888c5 100644
--- a/test/e2e/crds/backendtrafficpolicy.go
+++ b/test/e2e/crds/v1alpha1/backendtrafficpolicy.go
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package gatewayapi
+package v1alpha1
import (
"fmt"
diff --git a/test/e2e/crds/consumer.go b/test/e2e/crds/v1alpha1/consumer.go
similarity index 99%
rename from test/e2e/crds/consumer.go
rename to test/e2e/crds/v1alpha1/consumer.go
index 26b8554f..d2db2a5b 100644
--- a/test/e2e/crds/consumer.go
+++ b/test/e2e/crds/v1alpha1/consumer.go
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package gatewayapi
+package v1alpha1
import (
"fmt"
diff --git a/test/e2e/crds/gatewayproxy.go b/test/e2e/crds/v1alpha1/gatewayproxy.go
similarity index 99%
rename from test/e2e/crds/gatewayproxy.go
rename to test/e2e/crds/v1alpha1/gatewayproxy.go
index 70773f6f..10cca3ea 100644
--- a/test/e2e/crds/gatewayproxy.go
+++ b/test/e2e/crds/v1alpha1/gatewayproxy.go
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package gatewayapi
+package v1alpha1
import (
"context"
diff --git a/test/e2e/apisix/basic.go b/test/e2e/crds/v2/basic.go
similarity index 99%
rename from test/e2e/apisix/basic.go
rename to test/e2e/crds/v2/basic.go
index 245419f1..1d16a9f7 100644
--- a/test/e2e/apisix/basic.go
+++ b/test/e2e/crds/v2/basic.go
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package apisix
+package v2
import (
. "github.com/onsi/ginkgo/v2"
diff --git a/test/e2e/apisix/consumer.go b/test/e2e/crds/v2/consumer.go
similarity index 79%
rename from test/e2e/apisix/consumer.go
rename to test/e2e/crds/v2/consumer.go
index 29ceb667..ee243fb1 100644
--- a/test/e2e/apisix/consumer.go
+++ b/test/e2e/crds/v2/consumer.go
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package apisix
+package v2
import (
"fmt"
@@ -275,9 +275,6 @@ spec:
`
)
- request := func(path string, username, password string) int {
- return s.NewAPISIXClient().GET(path).WithBasicAuth(username, password).WithHost("httpbin").Expect().Raw().StatusCode
- }
It("Basic tests", func() {
By("apply ApisixRoute")
applier.MustApplyAPIv2(types.NamespacedName{Namespace: s.Namespace(), Name: "default"}, &apiv2.ApisixRoute{}, defaultApisixRoute)
@@ -286,19 +283,50 @@ spec:
applier.MustApplyAPIv2(types.NamespacedName{Namespace: s.Namespace(), Name: "test-consumer"}, &apiv2.ApisixConsumer{}, basicAuth)
By("verify ApisixRoute with ApisixConsumer")
- Eventually(request).WithArguments("/get", "invalid-username", "invalid-password").WithTimeout(5 * time.Second).ProbeEvery(time.Second).Should(Equal(http.StatusUnauthorized))
-
- Eventually(request).WithArguments("/get", "test-user", "test-password").WithTimeout(5 * time.Second).ProbeEvery(time.Second).Should(Equal(http.StatusOK))
+ s.RequestAssert(&scaffold.RequestAssert{
+ Method: "GET",
+ Path: "/get",
+ Host: "httpbin",
+ BasicAuth: &scaffold.BasicAuth{
+ Username: "invalid-username",
+ Password: "invalid-password",
+ },
+ Check: scaffold.WithExpectedStatus(http.StatusUnauthorized),
+ })
+ s.RequestAssert(&scaffold.RequestAssert{
+ Method: "GET",
+ Path: "/get",
+ Host: "httpbin",
+ BasicAuth: &scaffold.BasicAuth{
+ Username: "test-user",
+ Password: "test-password",
+ },
+ Check: scaffold.WithExpectedStatus(http.StatusOK),
+ })
By("Delete ApisixConsumer")
err := s.DeleteResource("ApisixConsumer", "test-consumer")
Expect(err).ShouldNot(HaveOccurred(), "deleting ApisixConsumer")
- Eventually(request).WithArguments("/get", "test-user", "test-password").WithTimeout(5 * time.Second).ProbeEvery(time.Second).Should(Equal(http.StatusUnauthorized))
+ s.RequestAssert(&scaffold.RequestAssert{
+ Method: "GET",
+ Path: "/get",
+ Host: "httpbin",
+ BasicAuth: &scaffold.BasicAuth{
+ Username: "test-user",
+ Password: "test-password",
+ },
+ Check: scaffold.WithExpectedStatus(http.StatusUnauthorized),
+ })
By("delete ApisixRoute")
err = s.DeleteResource("ApisixRoute", "default")
Expect(err).ShouldNot(HaveOccurred(), "deleting ApisixRoute")
- Eventually(request).WithArguments("/headers", "", "").WithTimeout(5 * time.Second).ProbeEvery(time.Second).Should(Equal(http.StatusNotFound))
+ s.RequestAssert(&scaffold.RequestAssert{
+ Method: "GET",
+ Path: "/get",
+ Host: "httpbin",
+ Check: scaffold.WithExpectedStatus(http.StatusNotFound),
+ })
})
It("SecretRef tests", func() {
@@ -313,25 +341,70 @@ spec:
applier.MustApplyAPIv2(types.NamespacedName{Namespace: s.Namespace(), Name: "test-consumer"}, &apiv2.ApisixConsumer{}, basicAuthWithSecret)
By("verify ApisixRoute with ApisixConsumer")
- Eventually(request).WithArguments("/get", "", "").WithTimeout(5 * time.Second).ProbeEvery(time.Second).Should(Equal(http.StatusUnauthorized))
- Eventually(request).WithArguments("/get", "foo", "bar").WithTimeout(5 * time.Second).ProbeEvery(time.Second).Should(Equal(http.StatusOK))
+ s.RequestAssert(&scaffold.RequestAssert{
+ Method: "GET",
+ Path: "/get",
+ Host: "httpbin",
+ Check: scaffold.WithExpectedStatus(http.StatusUnauthorized),
+ })
+ s.RequestAssert(&scaffold.RequestAssert{
+ Method: "GET",
+ Path: "/get",
+ Host: "httpbin",
+ BasicAuth: &scaffold.BasicAuth{
+ Username: "foo",
+ Password: "bar",
+ },
+ Check: scaffold.WithExpectedStatus(http.StatusOK),
+ })
By("update Secret")
err = s.CreateResourceFromString(secretUpdated)
Expect(err).ShouldNot(HaveOccurred(), "updating Secret for ApisixConsumer")
-
- Eventually(request).WithArguments("/get", "foo", "bar").WithTimeout(5 * time.Second).ProbeEvery(time.Second).Should(Equal(http.StatusUnauthorized))
- Eventually(request).WithArguments("/get", "foo-new-user", "bar-new-password").WithTimeout(5 * time.Second).ProbeEvery(time.Second).Should(Equal(http.StatusOK))
+ s.RequestAssert(&scaffold.RequestAssert{
+ Method: "GET",
+ Path: "/get",
+ Host: "httpbin",
+ BasicAuth: &scaffold.BasicAuth{
+ Username: "foo",
+ Password: "bar",
+ },
+ Check: scaffold.WithExpectedStatus(http.StatusUnauthorized),
+ })
+ s.RequestAssert(&scaffold.RequestAssert{
+ Method: "GET",
+ Path: "/get",
+ Host: "httpbin",
+ BasicAuth: &scaffold.BasicAuth{
+ Username: "foo-new-user",
+ Password: "bar-new-password",
+ },
+ Check: scaffold.WithExpectedStatus(http.StatusOK),
+ })
By("Delete ApisixConsumer")
err = s.DeleteResource("ApisixConsumer", "test-consumer")
Expect(err).ShouldNot(HaveOccurred(), "deleting ApisixConsumer")
- Eventually(request).WithArguments("/get", "foo-new-user", "bar-new-password").WithTimeout(5 * time.Second).ProbeEvery(time.Second).Should(Equal(http.StatusUnauthorized))
+ s.RequestAssert(&scaffold.RequestAssert{
+ Method: "GET",
+ Path: "/get",
+ Host: "httpbin",
+ BasicAuth: &scaffold.BasicAuth{
+ Username: "foo-new-user",
+ Password: "bar-new-password",
+ },
+ Check: scaffold.WithExpectedStatus(http.StatusUnauthorized),
+ })
By("delete ApisixRoute")
err = s.DeleteResource("ApisixRoute", "default")
Expect(err).ShouldNot(HaveOccurred(), "deleting ApisixRoute")
- Eventually(request).WithArguments("/get", "", "").WithTimeout(5 * time.Second).ProbeEvery(time.Second).Should(Equal(http.StatusNotFound))
+ s.RequestAssert(&scaffold.RequestAssert{
+ Method: "GET",
+ Path: "/get",
+ Host: "httpbin",
+ Check: scaffold.WithExpectedStatus(http.StatusNotFound),
+ })
})
})
})
diff --git a/test/e2e/apisix/globalrule.go b/test/e2e/crds/v2/globalrule.go
similarity index 99%
rename from test/e2e/apisix/globalrule.go
rename to test/e2e/crds/v2/globalrule.go
index 0e3f2f41..738d43e0 100644
--- a/test/e2e/apisix/globalrule.go
+++ b/test/e2e/crds/v2/globalrule.go
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package apisix
+package v2
import (
"fmt"
diff --git a/test/e2e/apisix/pluginconfig.go b/test/e2e/crds/v2/pluginconfig.go
similarity index 99%
rename from test/e2e/apisix/pluginconfig.go
rename to test/e2e/crds/v2/pluginconfig.go
index 2c4c27fc..589427eb 100644
--- a/test/e2e/apisix/pluginconfig.go
+++ b/test/e2e/crds/v2/pluginconfig.go
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package apisix
+package v2
import (
"fmt"
diff --git a/test/e2e/apisix/route.go b/test/e2e/crds/v2/route.go
similarity index 97%
rename from test/e2e/apisix/route.go
rename to test/e2e/crds/v2/route.go
index c921a17e..ce1b9864 100644
--- a/test/e2e/apisix/route.go
+++ b/test/e2e/crds/v2/route.go
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package apisix
+package v2
import (
"context"
@@ -235,7 +235,22 @@ spec:
match:
paths:
- /*
- filter_func: "function(vars)\n local core = require ('apisix.core')\n local body, err = core.request.get_body()\n if not body then\n return false\n end\n\n local data, err = core.json.decode(body)\n if not data then\n return false\n end\n\n if data['foo'] == 'bar' then\n return true\n end\n\n return false\nend"
+ filter_func: |
+ function(vars)
+ local core = require ('apisix.core')
+ local body, err = core.request.get_body()
+ if not body then
+ return false
+ end
+ local data, err = core.json.decode(body)
+ if not data then
+ return false
+ end
+ if data['foo'] == 'bar' then
+ return true
+ end
+ return false
+ end
backends:
- serviceName: httpbin-service-e2e-test
servicePort: 80
diff --git a/test/e2e/apisix/status.go b/test/e2e/crds/v2/status.go
similarity index 99%
rename from test/e2e/apisix/status.go
rename to test/e2e/crds/v2/status.go
index 1193bd69..d1fadc28 100644
--- a/test/e2e/apisix/status.go
+++ b/test/e2e/crds/v2/status.go
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package apisix
+package v2
import (
"fmt"
diff --git a/test/e2e/apisix/tls.go b/test/e2e/crds/v2/tls.go
similarity index 99%
rename from test/e2e/apisix/tls.go
rename to test/e2e/crds/v2/tls.go
index b81020b4..56f9cc89 100644
--- a/test/e2e/apisix/tls.go
+++ b/test/e2e/crds/v2/tls.go
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package apisix
+package v2
import (
"context"