Firstsawyou commented on a change in pull request #2326:
URL: https://github.com/apache/apisix/pull/2326#discussion_r495534999
##########
File path: t/core/ctx.t
##########
@@ -155,3 +155,264 @@ GET /t?a=aaa
--- error_code: 500
--- error_log
invalid argument, expect string value
+
+
+
+=== TEST 7: add route and get `route_id`
+--- config
+ location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+ local code, body = t('/apisix/admin/routes/1',
+ ngx.HTTP_PUT,
+ [[{
+ "methods": ["GET"],
+ "plugins": {
+ "serverless-pre-function": {
+ "phase": "access",
+ "functions" : ["return function() ngx.log(ngx.ERR,
\"route_id: \", ngx.ctx.api_ctx.route_id) end"]
+ }
+ },
+ "upstream": {
+ "type": "roundrobin",
+ "nodes": {
+ "127.0.0.1:1980": 1
+ }
+ },
+ "uri": "/hello"
+ }]],
+ [[{
+ "node": {
+ "value": {
+ "methods": [
+ "GET"
+ ],
+ "uri": "/hello",
+ "plugins": {
+ "serverless-pre-function": {
+ "phase": "access",
+ "functions" : ["return function()
ngx.log(ngx.ERR, \"route_id: \", ngx.ctx.api_ctx.route_id) end"]
+ }
+ },
+ "upstream": {
+ "type": "roundrobin",
+ "nodes": {
+ "127.0.0.1:1980": 1
+ }
+ }
+ },
+ "key": "/apisix/routes/1"
+ },
+ "action": "set"
+ }]]
+ )
+
+ ngx.status = code
+ ngx.say(body)
+ }
+ }
+--- request
+GET /t
+--- response_body
+passed
+--- no_error_log
+[error]
+
+
+
+=== TEST 8: `url` exist and `route_id` is not empty
+--- request
+GET /hello
+--- response_body
+hello world
+--- error_log
+route_id: 1
+
+
+
+=== TEST 9: `url` does not exist and `route_id` is empty
+--- request
+GET /hello123
+--- error_code: 404
+--- no_error_log
+[error]
+
+
+
+=== TEST 10: create a service and `service_id` is 1
+--- config
+ location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+ local code, body = t('/apisix/admin/services/1',
+ ngx.HTTP_PUT,
+ [[{
+ "desc": "new_service"
+ }]],
+ [[{
+ "node": {
+ "value": {
+ "desc": "new_service"
+ },
+ "key": "/apisix/services/1"
+ },
+ "action": "set"
+ }]]
+ )
+
+ ngx.status = code
+ ngx.say(body)
+ }
+ }
+--- request
+GET /t
+--- response_body
+passed
+--- no_error_log
+[error]
+
+
+
+=== TEST 11: the route object not bind any service object
+--- config
+ location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+ local code, body = t('/apisix/admin/routes/1',
+ ngx.HTTP_PUT,
+ [[{
+ "methods": ["GET"],
+ "plugins": {
+ "serverless-pre-function": {
+ "phase": "access",
+ "functions" : ["return function() if
ngx.ctx.api_ctx.service_id then ngx.log(ngx.ERR, \"service_id: \",
ngx.ctx.api_ctx.service_id) end end"]
Review comment:
thank you, I got it.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]