You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by bz...@apache.org on 2022/12/21 09:17:28 UTC
[apisix-dashboard] branch master updated: fix: remove cases external service dependency (#2697)
This is an automated email from the ASF dual-hosted git repository.
bzp2010 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-dashboard.git
The following commit(s) were added to refs/heads/master by this push:
new 8d6d1c7b3 fix: remove cases external service dependency (#2697)
8d6d1c7b3 is described below
commit 8d6d1c7b3fd5272ee46eaa53ea80fa577ec14448
Author: Zeping Bai <bz...@apache.org>
AuthorDate: Wed Dec 21 17:17:21 2022 +0800
fix: remove cases external service dependency (#2697)
---
api/test/docker/docker-compose.yaml | 6 +
api/test/e2e/base/base.go | 1 +
api/test/e2e/upstream/upstream_test.go | 197 +++++++++++++++------------------
3 files changed, 96 insertions(+), 108 deletions(-)
diff --git a/api/test/docker/docker-compose.yaml b/api/test/docker/docker-compose.yaml
index f10c68a22..974edbed6 100644
--- a/api/test/docker/docker-compose.yaml
+++ b/api/test/docker/docker-compose.yaml
@@ -57,6 +57,12 @@ services:
apisix_dashboard_e2e:
ipv4_address: 172.16.238.21
+ upstream_httpbin:
+ image: kennethreitz/httpbin
+ networks:
+ apisix_dashboard_e2e:
+ ipv4_address: 172.16.238.22
+
apisix:
hostname: apisix_server1
image: apache/apisix:2.15.1-debian
diff --git a/api/test/e2e/base/base.go b/api/test/e2e/base/base.go
index 59365517e..7fbaf8afd 100644
--- a/api/test/e2e/base/base.go
+++ b/api/test/e2e/base/base.go
@@ -39,6 +39,7 @@ var (
UpstreamIp = "upstream"
UpstreamGrpcIp = "upstream_grpc"
+ UpstreamHTTPBinIp = "upstream_httpbin"
APISIXHost = "http://127.0.0.1:9080"
APISIXAdminAPIHost = "http://127.0.0.1:9180"
APISIXInternalUrl = "http://apisix:9080"
diff --git a/api/test/e2e/upstream/upstream_test.go b/api/test/e2e/upstream/upstream_test.go
index 3f0443e9f..69fe19ce4 100644
--- a/api/test/e2e/upstream/upstream_test.go
+++ b/api/test/e2e/upstream/upstream_test.go
@@ -329,114 +329,95 @@ var _ = Describe("Upstream", func() {
})
})
-var _ = Describe("Upstream update with domain", func() {
- It("create upstream success", func() {
- createUpstreamBody := make(map[string]interface{})
- createUpstreamBody["name"] = "upstream1"
- createUpstreamBody["nodes"] = []map[string]interface{}{
- {
- "host": base.UpstreamIp,
- "port": 1980,
- "weight": 1,
- "priority": 10,
- },
- }
- createUpstreamBody["type"] = "roundrobin"
- _createUpstreamBody, err := json.Marshal(createUpstreamBody)
- Expect(err).To(BeNil())
- base.RunTestCase(base.HttpTestCase{
- Object: base.ManagerApiExpect(),
- Method: http.MethodPut,
- Path: "/apisix/admin/upstreams/1",
- Body: string(_createUpstreamBody),
- Headers: map[string]string{"Authorization": base.GetToken()},
- ExpectStatus: http.StatusOK,
- ExpectBody: `"code":0`,
- })
- })
- It("create route using the upstream(use proxy rewriteproxy rewrite plugin)", func() {
- base.RunTestCase(base.HttpTestCase{
- Object: base.ManagerApiExpect(),
- Method: http.MethodPut,
- Path: "/apisix/admin/routes/1",
- Body: `{
- "name": "route1",
- "uri": "/*",
- "upstream_id": "1",
- "plugins": {
- "proxy-rewrite": {
- "uri": "/",
- "scheme": "https"
- }
- }
- }`,
- Headers: map[string]string{"Authorization": base.GetToken()},
- ExpectStatus: http.StatusOK,
- Sleep: base.SleepTime,
- })
- })
- It("update upstream with domain", func() {
- createUpstreamBody := make(map[string]interface{})
- createUpstreamBody["nodes"] = []map[string]interface{}{
- {
- "host": "www.google.com",
- "port": 443,
- "weight": 1,
- "priority": 10,
- },
- }
- createUpstreamBody["type"] = "roundrobin"
- createUpstreamBody["pass_host"] = "node"
- _createUpstreamBody, err := json.Marshal(createUpstreamBody)
- Expect(err).To(BeNil())
- base.RunTestCase(base.HttpTestCase{
- Object: base.ManagerApiExpect(),
- Method: http.MethodPut,
- Path: "/apisix/admin/upstreams/1",
- Body: string(_createUpstreamBody),
- Headers: map[string]string{"Authorization": base.GetToken()},
- ExpectStatus: http.StatusOK,
- })
- })
- It("hit the route using upstream 1", func() {
- base.RunTestCase(base.HttpTestCase{
- Object: base.APISIXExpect(),
- Method: http.MethodGet,
- Path: "/",
- ExpectStatus: http.StatusOK,
- ExpectBody: "google",
- Sleep: base.SleepTime,
- })
- })
- It("delete route", func() {
- base.RunTestCase(base.HttpTestCase{
- Object: base.ManagerApiExpect(),
- Method: http.MethodDelete,
- Path: "/apisix/admin/routes/1",
- Headers: map[string]string{"Authorization": base.GetToken()},
- ExpectStatus: http.StatusOK,
- })
- })
- It("delete upstream", func() {
- base.RunTestCase(base.HttpTestCase{
- Object: base.ManagerApiExpect(),
- Method: http.MethodDelete,
- Path: "/apisix/admin/upstreams/1",
- Headers: map[string]string{"Authorization": base.GetToken()},
- ExpectStatus: http.StatusOK,
- })
- })
- It("hit the route just deleted", func() {
- base.RunTestCase(base.HttpTestCase{
- Object: base.APISIXExpect(),
- Method: http.MethodGet,
- Path: "/get",
- ExpectStatus: http.StatusNotFound,
- ExpectBody: "{\"error_msg\":\"404 Route Not Found\"}\n",
- Sleep: base.SleepTime,
- })
- })
-})
+var _ = DescribeTable("Upstream update with domain",
+ func(tc base.HttpTestCase) {
+ base.RunTestCase(tc)
+ },
+ Entry("create upstream success", base.HttpTestCase{
+ Object: base.ManagerApiExpect(),
+ Method: http.MethodPut,
+ Path: "/apisix/admin/upstreams/1",
+ Body: `{
+ "name": "upstream1",
+ "nodes": [{
+ "host": "` + base.UpstreamIp + `",
+ "port": 1980,
+ "weight": 1,
+ "priority": 10
+ }],
+ "type": "roundrobin"
+ }`,
+ Headers: map[string]string{"Authorization": base.GetToken()},
+ ExpectStatus: http.StatusOK,
+ ExpectBody: `"code":0`,
+ Sleep: base.SleepTime,
+ }),
+ Entry("create route using the upstream(use proxy rewriteproxy rewrite plugin)", base.HttpTestCase{
+ Object: base.ManagerApiExpect(),
+ Method: http.MethodPut,
+ Path: "/apisix/admin/routes/1",
+ Body: `{
+ "name": "route1",
+ "uri": "/*",
+ "upstream_id": "1"
+ }`,
+ Headers: map[string]string{"Authorization": base.GetToken()},
+ ExpectStatus: http.StatusOK,
+ Sleep: base.SleepTime,
+ }),
+ Entry("update upstream with domain", base.HttpTestCase{
+ Object: base.ManagerApiExpect(),
+ Method: http.MethodPut,
+ Path: "/apisix/admin/upstreams/1",
+ Body: `{
+ "name": "upstream1",
+ "nodes": [{
+ "host": "` + base.UpstreamHTTPBinIp + `",
+ "port": 80,
+ "weight": 1,
+ "priority": 10
+ }],
+ "type": "roundrobin",
+ "pass_host": "node"
+ }`,
+ Headers: map[string]string{"Authorization": base.GetToken()},
+ ExpectStatus: http.StatusOK,
+ Sleep: base.SleepTime,
+ }),
+ Entry("hit the route using upstream 1", base.HttpTestCase{
+ Object: base.APISIXExpect(),
+ Method: http.MethodGet,
+ Headers: map[string]string{
+ "Host": "iamhttpbin.org",
+ },
+ Path: "/anything",
+ ExpectStatus: http.StatusOK,
+ ExpectBody: "http://iamhttpbin.org/anything",
+ Sleep: base.SleepTime,
+ }),
+ Entry("delete route", base.HttpTestCase{
+ Object: base.ManagerApiExpect(),
+ Method: http.MethodDelete,
+ Path: "/apisix/admin/routes/1",
+ Headers: map[string]string{"Authorization": base.GetToken()},
+ ExpectStatus: http.StatusOK,
+ }),
+ Entry("delete upstream", base.HttpTestCase{
+ Object: base.ManagerApiExpect(),
+ Method: http.MethodDelete,
+ Path: "/apisix/admin/upstreams/1",
+ Headers: map[string]string{"Authorization": base.GetToken()},
+ ExpectStatus: http.StatusOK,
+ }),
+ Entry("hit the route just deleted", base.HttpTestCase{
+ Object: base.APISIXExpect(),
+ Method: http.MethodGet,
+ Path: "/get",
+ ExpectStatus: http.StatusNotFound,
+ ExpectBody: `{"error_msg":"404 Route Not Found"}`,
+ Sleep: base.SleepTime,
+ }),
+)
var _ = Describe("Upstream chash remote addr", func() {
It("create chash upstream with key (remote_addr)", func() {