Files
kong--kong/spec/02-integration/05-proxy/29-collect-plugin-errors_spec.lua
2026-07-13 12:32:21 +08:00

70 lines
1.8 KiB
Lua

local helpers = require "spec.helpers"
local cjson = require "cjson"
for _, strategy in helpers.each_strategy() do
describe("Collect plugin errors [#" .. strategy .. "]", function()
local client
lazy_setup(function()
local bp = helpers.get_db_utils(strategy, {
"routes",
"services",
"plugins",
},{
"logger"
})
local service = assert(bp.services:insert {
url = helpers.mock_upstream_url
})
local route = assert(bp.routes:insert {
service = service,
hosts = { "error.test" }
})
assert(bp.plugins:insert {
name = "error-generator",
route = { id = route.id },
config = {
access = true,
},
})
assert(bp.plugins:insert {
name = "logger",
route = { id = route.id },
})
assert(helpers.start_kong({
database = strategy,
plugins = "bundled, error-generator, logger",
nginx_conf = "spec/fixtures/custom_nginx.template",
}))
client = helpers.proxy_client()
end)
lazy_teardown(function()
if client then
client:close()
end
helpers.stop_kong()
end)
it("delays the error response", function()
local res = assert(client:get("/get", {
headers = {
Host = "error.test",
}
}))
local body = assert.res_status(500, res)
local json = cjson.decode(body)
assert.not_nil(json)
assert.matches("An unexpected error occurred", json.message)
-- the other plugin's phases were executed:
assert.logfile().has.line("header_filter phase", true)
assert.logfile().has.line("body_filter phase", true)
assert.logfile().has.line("log phase", true)
end)
end)
end