Skip to content

Commit 9eabcb5

Browse files
committed
fix tests
1 parent 698082e commit 9eabcb5

3 files changed

Lines changed: 69 additions & 32 deletions

File tree

test/plausible_web/controllers/api/stats_controller/authorization_test.exs

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,14 @@ defmodule PlausibleWeb.Api.StatsController.AuthorizationTest do
2424
test "returns stats for public site", %{conn: conn} do
2525
conn = init_session(conn)
2626
site = insert(:site, public: true)
27-
conn = get(conn, "/api/stats/#{site.domain}/main-graph")
2827

29-
assert %{"plot" => _any} = json_response(conn, 200)
28+
conn =
29+
post(conn, "/api/stats/#{site.domain}/query", %{
30+
"date_range" => "day",
31+
"metrics" => ["visitors"]
32+
})
33+
34+
assert %{"results" => _} = json_response(conn, 200)
3035
end
3136
end
3237

@@ -185,16 +190,26 @@ defmodule PlausibleWeb.Api.StatsController.AuthorizationTest do
185190

186191
test "returns stats for public site", %{conn: conn} do
187192
site = new_site(public: true)
188-
conn = get(conn, "/api/stats/#{site.domain}/main-graph")
189193

190-
assert %{"plot" => _any} = json_response(conn, 200)
194+
conn =
195+
post(conn, "/api/stats/#{site.domain}/query", %{
196+
"date_range" => "day",
197+
"metrics" => ["visitors"]
198+
})
199+
200+
assert %{"results" => _} = json_response(conn, 200)
191201
end
192202

193203
test "returns stats for a private site that the user owns", %{conn: conn, user: user} do
194204
site = new_site(public: false, owner: user)
195-
conn = get(conn, "/api/stats/#{site.domain}/main-graph")
196205

197-
assert %{"plot" => _any} = json_response(conn, 200)
206+
conn =
207+
post(conn, "/api/stats/#{site.domain}/query", %{
208+
"date_range" => "day",
209+
"metrics" => ["visitors"]
210+
})
211+
212+
assert %{"results" => _} = json_response(conn, 200)
198213
end
199214
end
200215
end

test/plausible_web/controllers/api/stats_controller/debug_metadata_test.exs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,15 @@ defmodule PlausibleWeb.Api.StatsController.DebugMetadataTest do
55
describe "Debug metadata for logged in requests" do
66
setup [:create_user, :log_in]
77

8-
test "for main-graph", %{conn: conn, user: user} do
8+
test "for /api/stats/:domain/query", %{conn: conn, user: user} do
99
domain = :rand.bytes(20) |> Base.url_encode64()
1010
site = new_site(domain: domain, owner: user)
11-
conn = get(conn, "/api/stats/#{site.domain}/main-graph")
11+
12+
conn =
13+
post(conn, "/api/stats/#{site.domain}/query", %{
14+
"date_range" => "day",
15+
"metrics" => ["visitors"]
16+
})
1217

1318
assert json_response(conn, 200)
1419

@@ -24,11 +29,16 @@ defmodule PlausibleWeb.Api.StatsController.DebugMetadataTest do
2429
decoded = Jason.decode!(unparsed_log_comment)
2530

2631
assert_matches ^strict_map(%{
27-
"params" => ^strict_map(%{"domain" => ^site.domain}),
28-
"phoenix_action" => "main_graph",
32+
"params" =>
33+
^strict_map(%{
34+
"domain" => ^site.domain,
35+
"date_range" => "day",
36+
"metrics" => ["visitors"]
37+
}),
38+
"phoenix_action" => "query",
2939
"phoenix_controller" => "Elixir.PlausibleWeb.Api.StatsController",
30-
"request_method" => "GET",
31-
"request_path" => ^"/api/stats/#{site.domain}/main-graph",
40+
"request_method" => "POST",
41+
"request_path" => ^"/api/stats/#{site.domain}/query",
3242
"site_domain" => ^site.domain,
3343
"site_id" => ^site.id,
3444
"team_id" => ^team_of(user).id,

test/plausible_web/controllers/api/stats_controller/imported_test.exs

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -73,18 +73,24 @@ defmodule PlausibleWeb.Api.StatsController.ImportedTest do
7373
"imported_visitors"
7474
)
7575

76-
conn =
77-
get(
78-
conn,
79-
"/api/stats/#{site.domain}/main-graph?period=month&date=2021-01-01&with_imported=true"
80-
)
76+
params = %{
77+
"date_range" => "month",
78+
"metrics" => ["visitors"],
79+
"relative_date" => "2021-01-01",
80+
"dimensions" => ["time:day"],
81+
"include" => %{"imports" => true, "time_labels" => true}
82+
}
8183

82-
assert %{"plot" => plot} = json_response(conn, 200)
84+
conn = post(conn, "/api/stats/#{site.domain}/query", params)
8385

84-
assert Enum.count(plot) == 31
85-
assert List.first(plot) == 2
86-
assert List.last(plot) == 2
87-
assert Enum.sum(plot) == 4
86+
response = json_response(conn, 200)
87+
88+
assert length(response["meta"]["time_labels"]) == 31
89+
90+
assert response["results"] == [
91+
%{"dimensions" => ["2021-01-01"], "metrics" => [2]},
92+
%{"dimensions" => ["2021-01-31"], "metrics" => [2]}
93+
]
8894
end
8995

9096
test "returns data grouped by week", %{conn: conn, site: site, import_id: import_id} do
@@ -121,18 +127,24 @@ defmodule PlausibleWeb.Api.StatsController.ImportedTest do
121127
"imported_visitors"
122128
)
123129

124-
conn =
125-
get(
126-
conn,
127-
"/api/stats/#{site.domain}/main-graph?period=month&date=2021-01-01&with_imported=true&interval=week"
128-
)
130+
params = %{
131+
"date_range" => "month",
132+
"metrics" => ["visitors"],
133+
"relative_date" => "2021-01-01",
134+
"dimensions" => ["time:week"],
135+
"include" => %{"imports" => true, "time_labels" => true}
136+
}
129137

130-
assert %{"plot" => plot} = json_response(conn, 200)
138+
conn = post(conn, "/api/stats/#{site.domain}/query", params)
131139

132-
assert Enum.count(plot) == 5
133-
assert List.first(plot) == 2
134-
assert List.last(plot) == 2
135-
assert Enum.sum(plot) == 4
140+
response = json_response(conn, 200)
141+
142+
assert length(response["meta"]["time_labels"]) == 5
143+
144+
assert response["results"] == [
145+
%{"dimensions" => ["2021-01-01"], "metrics" => [2]},
146+
%{"dimensions" => ["2021-01-25"], "metrics" => [2]}
147+
]
136148
end
137149

138150
test "Sources are imported", %{conn: conn, site: site, import_id: import_id} do

0 commit comments

Comments
 (0)