77 lines
2.5 KiB
Lua
77 lines
2.5 KiB
Lua
local helpers = require "spec.helpers"
|
|
|
|
for _, strategy in helpers.each_strategy() do
|
|
describe("plugin triggering #" .. strategy, function()
|
|
lazy_setup(function()
|
|
local bp = assert(helpers.get_db_utils(strategy, {
|
|
"services",
|
|
"routes",
|
|
"plugins",
|
|
}))
|
|
|
|
assert(bp.services:insert {})
|
|
assert(bp.routes:insert({
|
|
protocols = { "http" },
|
|
paths = { "/" }
|
|
}))
|
|
|
|
local kong_prefix = helpers.test_conf.prefix
|
|
|
|
assert(helpers.start_kong({
|
|
nginx_conf = "spec/fixtures/custom_nginx.template",
|
|
database = strategy,
|
|
plugins = "bundled,reports-api,go-hello,py-hello",
|
|
pluginserver_names = "test-go,test-py",
|
|
pluginserver_test_go_socket = kong_prefix .. "/go-hello.socket",
|
|
pluginserver_test_go_query_cmd = helpers.external_plugins_path .. "/go/go-hello -dump -kong-prefix " .. kong_prefix,
|
|
pluginserver_test_go_start_cmd = helpers.external_plugins_path .. "/go/go-hello -kong-prefix " .. kong_prefix,
|
|
pluginserver_test_py_socket = kong_prefix .. "/py-hello.socket",
|
|
pluginserver_test_py_query_cmd = helpers.external_plugins_path .. "/py/py-hello.py --dump",
|
|
pluginserver_test_py_start_cmd = helpers.external_plugins_path .. "/py/py-hello.py --socket-name py-hello.socket --kong-prefix " .. kong_prefix,
|
|
}))
|
|
|
|
local admin_client = helpers.admin_client()
|
|
|
|
local res = admin_client:post("/plugins", {
|
|
headers = {
|
|
["Content-Type"] = "application/json"
|
|
},
|
|
body = {
|
|
name = "go-hello",
|
|
config = {
|
|
message = "Kong!"
|
|
}
|
|
}
|
|
})
|
|
assert.res_status(201, res)
|
|
|
|
res = admin_client:post("/plugins", {
|
|
headers = {
|
|
["Content-Type"] = "application/json"
|
|
},
|
|
body = {
|
|
name = "py-hello",
|
|
config = {
|
|
message = "Kong!"
|
|
}
|
|
}
|
|
})
|
|
assert.res_status(201, res)
|
|
end)
|
|
|
|
lazy_teardown(function()
|
|
helpers.stop_kong()
|
|
end)
|
|
|
|
it("executes external plugins [golang, python]", function()
|
|
local proxy_client = assert(helpers.proxy_client())
|
|
local res = proxy_client:get("/")
|
|
assert.res_status(200, res)
|
|
local h = assert.response(res).has.header("x-hello-from-go")
|
|
assert.matches("Go says Kong! to", h)
|
|
h = assert.response(res).has.header("x-hello-from-python")
|
|
assert.matches("Python says Kong! to", h)
|
|
end)
|
|
end)
|
|
end
|