File size: 1,055 Bytes
c9c49ab | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | defmodule Plausible.Stats.ApiQueryParserTest do
use Plausible.DataCase
import Plausible.Stats.ApiQueryParser
alias Plausible.Stats.QueryError
test "parsing empty map fails" do
assert {:error,
%QueryError{
code: :failed_schema_validation,
message: "#: Required properties site_id, metrics, date_range were not present."
}} =
parse(%{})
end
test "invalid metric passed" do
params = %{
"site_id" => "example.com",
"metrics" => ["visitors", "event:name"],
"date_range" => "all"
}
assert {:error,
%QueryError{
code: :failed_schema_validation,
message: "#/metrics/1: Invalid metric \"event:name\""
}} =
parse(params)
end
test "parses 24h date_range shorthand" do
params = %{
"site_id" => "example.com",
"metrics" => ["visitors"],
"date_range" => "24h"
}
assert {:ok, parsed} = parse(params)
assert parsed.input_date_range == :"24h"
end
end
|