Files
kong--kong/spec/03-plugins/02-legacy_propagation_parameter_warning_spec.lua
2026-07-13 12:32:21 +08:00

125 lines
3.6 KiB
Lua

local cjson = require "cjson"
local helpers = require "spec.helpers"
for _, strategy in helpers.each_strategy() do
describe("legacy propagation parameters [#" .. strategy .. "]", function()
local db
local admin_client
lazy_setup(function()
-- Create a service to make sure that our database is initialized properly.
local bp
bp, db = helpers.get_db_utils(strategy, {
"services",
})
db:truncate()
bp.services:insert{
protocol = "http",
host = helpers.mock_upstream_host,
port = helpers.mock_upstream_port,
}
assert(helpers.start_kong({
database = strategy,
nginx_conf = "spec/fixtures/custom_nginx.template",
}))
admin_client = helpers.admin_client()
end)
lazy_teardown(function()
if admin_client then
admin_client:close()
end
helpers.stop_kong()
end)
before_each(function()
helpers.clean_logfile()
end)
local plugin_id
after_each(function()
if plugin_id then
local res = admin_client:delete("/plugins/" .. plugin_id)
assert.res_status(204, res)
end
end)
local plugins = {
["zipkin"] = {
http_endpoint = "http://example.com/",
},
["opentelemetry"] = {
traces_endpoint = "http://example.com/",
},
}
for plugin, base_config in pairs(plugins) do
local function create_plugin(parameter, value)
local config = table.clone(base_config)
if parameter then
config[parameter] = value
end
local res = admin_client:post(
"/plugins",
{
headers = {
["Content-Type"] = "application/json"
},
body = cjson.encode({
name = plugin,
config = config
})
}
)
local body = cjson.decode(assert.res_status(201, res))
plugin_id = body.id
end
local log_wait_time = 0.01
describe("[#" .. plugin .. "]", function()
it("no unexpected propagation parameter deprecation warnings by default", function()
create_plugin()
assert.logfile().has.no.line("is deprecated, please use config.queue", true, log_wait_time)
end)
local parameters = { header_type = {
default_value = "preserve",
test_values = { "jaeger", "w3c", "ignore" }
} }
if plugin == "zipkin" then
parameters.default_header_type = {
default_value = "b3",
test_values = { "ot", "aws", "datadog" }
}
end
for parameter, values in pairs(parameters) do
local default_value = values.default_value
local test_values = values.test_values
local expected_warning = "config." .. parameter .. " is deprecated, please use config.propagation"
it ("does not warn when " .. parameter .. " is set to the old default " .. tostring(default_value), function()
create_plugin(parameter, default_value)
assert.logfile().has.no.line(expected_warning, true, log_wait_time)
end)
for _, test_value in ipairs(test_values) do
it ("does warn when " .. parameter .. " is set to a value different from the old default "
.. tostring(default_value) .. " (" .. tostring(test_value) .. ")", function()
create_plugin(parameter, test_value)
assert.logfile().has.line(expected_warning, true, log_wait_time)
end)
end
end
end)
end
end)
end