75 lines
1.8 KiB
Lua
75 lines
1.8 KiB
Lua
local cjson = require "cjson"
|
|
local helpers = require "spec.helpers"
|
|
|
|
describe("Plugin: prometheus (API)",function()
|
|
local admin_client
|
|
|
|
describe("with no 'prometheus_metrics' shm defined", function()
|
|
setup(function()
|
|
helpers.get_db_utils()
|
|
assert(helpers.start_kong({
|
|
plugins = "bundled, prometheus",
|
|
}))
|
|
|
|
admin_client = helpers.admin_client()
|
|
end)
|
|
teardown(function()
|
|
if admin_client then
|
|
admin_client:close()
|
|
end
|
|
|
|
helpers.stop_kong()
|
|
end)
|
|
|
|
-- skipping since Kong always injected a `prometheus_metrics` shm when
|
|
-- prometheus plugin is loaded into memory
|
|
pending("prometheus plugin cannot be configured", function()
|
|
local res = assert(admin_client:send {
|
|
method = "POST",
|
|
path = "/plugins",
|
|
body = {
|
|
name = "prometheus"
|
|
},
|
|
headers = {
|
|
["Content-Type"] = "application/json"
|
|
}
|
|
})
|
|
local body = assert.res_status(400, res)
|
|
local json = cjson.decode(body)
|
|
assert.equal(json.config, "ngx shared dict 'prometheus_metrics' not found")
|
|
end)
|
|
end)
|
|
|
|
describe("with 'prometheus_metrics' defined", function()
|
|
setup(function()
|
|
helpers.get_db_utils()
|
|
assert(helpers.start_kong({
|
|
plugins = "bundled, prometheus",
|
|
}))
|
|
|
|
admin_client = helpers.admin_client()
|
|
end)
|
|
teardown(function()
|
|
if admin_client then
|
|
admin_client:close()
|
|
end
|
|
|
|
helpers.stop_kong()
|
|
end)
|
|
|
|
it("prometheus plugin can be configured", function()
|
|
local res = assert(admin_client:send {
|
|
method = "POST",
|
|
path = "/plugins",
|
|
body = {
|
|
name = "prometheus"
|
|
},
|
|
headers = {
|
|
["Content-Type"] = "application/json"
|
|
}
|
|
})
|
|
assert.res_status(201, res)
|
|
end)
|
|
end)
|
|
end)
|