kong/t/01-pdk/08-response/12-get_source.t (6 lines of code) (raw):

use warnings FATAL => 'all'; use Test::Nginx::Socket::Lua; do "./t/Util.pm"; plan tests => repeat_each() * (blocks() * 3) - 3; run_tests(); __DATA__ === TEST 1: response.get_source() returns "error" by default --- http_config eval: $t::Util::HttpConfig --- config location /t { content_by_lua_block { } header_filter_by_lua_block { local PDK = require "kong.pdk" local pdk = PDK.new() ngx.header["X-Source"] = pdk.response.get_source() } } --- request GET /t --- response_headers X-Source: error --- no_error_log [error] === TEST 2: response.get_source() returns "service" when the service has answered --- http_config eval: $t::Util::HttpConfig --- config location /t { content_by_lua_block { ngx.ctx.KONG_PROXIED = true } header_filter_by_lua_block { local PDK = require "kong.pdk" local pdk = PDK.new() ngx.header["X-Source"] = pdk.response.get_source() } } --- request GET /t --- response_headers X-Source: service --- no_error_log [error] === TEST 3: response.get_source() returns "exit" when kong.response.exit was previously used --- http_config eval: $t::Util::HttpConfig --- config location /t { content_by_lua_block { local PDK = require "kong.pdk" local pdk = PDK.new({ enabled_headers = {} }) pdk.response.exit(200, "ok") } header_filter_by_lua_block { local PDK = require "kong.pdk" local pdk = PDK.new() ngx.header["X-Source"] = pdk.response.get_source() } } --- request GET /t --- response_headers X-Source: exit --- no_error_log [error] === TEST 4: response.get_source() returns "error" when upstream timeouts --- http_config eval: $t::Util::HttpConfig --- config location = /t { proxy_pass http://localhost:58252; header_filter_by_lua_block { if ngx.status == 502 then ngx.ctx.KONG_UNEXPECTED = true end ngx.header.content_length = nil } body_filter_by_lua_block { local PDK = require "kong.pdk" local pdk = PDK.new() ngx.arg[1] = "content source: " .. pdk.response.get_source() ngx.arg[2] = true } } --- request GET /t --- error_code: 502 --- response_body chop content source: error === TEST 5: response.get_source() returns "error" when upstream timeouts even with KONG_PROXIED = true --- http_config eval: $t::Util::HttpConfig --- config location = /t { access_by_lua_block { ngx.ctx.KONG_PROXIED = true } proxy_pass http://localhost:58252; header_filter_by_lua_block { if ngx.status == 502 then ngx.ctx.KONG_UNEXPECTED = true end ngx.header.content_length = nil } body_filter_by_lua_block { local PDK = require "kong.pdk" local pdk = PDK.new() ngx.arg[1] = "content source: " .. pdk.response.get_source() ngx.arg[2] = true } } --- request GET /t --- error_code: 502 --- response_body chop content source: error === TEST 6: response.get_source() returns "error" when upstream timeouts even with KONG_EXITED = true --- http_config eval: $t::Util::HttpConfig --- config location = /t { access_by_lua_block { ngx.ctx.KONG_EXITED = true } proxy_pass http://localhost:58252; header_filter_by_lua_block { if ngx.status == 502 then ngx.ctx.KONG_UNEXPECTED = true end ngx.header.content_length = nil } body_filter_by_lua_block { local PDK = require "kong.pdk" local pdk = PDK.new() ngx.arg[1] = "content source: " .. pdk.response.get_source() ngx.arg[2] = true } } --- request GET /t --- error_code: 502 --- response_body chop content source: error