akkoma/test/pleroma/web/akkoma_api/metrics_controller_test.exs

36 lines
939 B
Elixir
Raw Normal View History

2022-12-16 10:56:17 +00:00
defmodule Pleroma.Web.AkkomaAPI.MetricsControllerTest do
use Pleroma.Web.ConnCase, async: false
2022-12-16 10:56:17 +00:00
describe "GET /api/v1/akkoma/metrics" do
test "should return metrics when the user has admin:metrics" do
%{conn: conn} = oauth_access(["admin:metrics"])
2022-12-16 11:18:14 +00:00
Pleroma.PrometheusExporter.gather()
2022-12-16 11:18:14 +00:00
resp =
conn
|> get("/api/v1/akkoma/metrics")
|> text_response(200)
2022-12-16 10:56:17 +00:00
assert resp =~ "# HELP"
end
test "should not allow users that do not have the admin:metrics scope" do
%{conn: conn} = oauth_access(["read:metrics"])
2022-12-16 11:18:14 +00:00
2022-12-16 11:17:04 +00:00
conn
2022-12-16 10:56:17 +00:00
|> get("/api/v1/akkoma/metrics")
|> json_response(403)
end
2022-12-16 11:17:04 +00:00
test "should be disabled by export_prometheus_metrics" do
clear_config([:instance, :export_prometheus_metrics], false)
%{conn: conn} = oauth_access(["admin:metrics"])
2022-12-16 11:18:14 +00:00
2022-12-16 11:17:04 +00:00
conn
|> get("/api/v1/akkoma/metrics")
|> response(404)
end
2022-12-16 10:56:17 +00:00
end
end