mirror of
https://github.com/plausible/analytics.git
synced 2024-12-26 11:02:52 +03:00
1128ff4bfa
* Update the internal /sites api to paginate results and adapts site-switcher to it * Update the Changelog * Format internal controller * Remove the `+ Add Site` link from the site-switcher in the dashboard * Change camel to snake case and replace imports with fully qualified calls * Remove trailing comma from site-switcher
50 lines
1.5 KiB
Elixir
50 lines
1.5 KiB
Elixir
defmodule PlausibleWeb.Api.InternalControllerTest do
|
|
use PlausibleWeb.ConnCase
|
|
use Plausible.Repo
|
|
import Plausible.TestUtils
|
|
|
|
describe "GET /api/:domain/status" do
|
|
setup [:create_user, :log_in]
|
|
|
|
test "is WAITING when site has no pageviews", %{conn: conn, user: user} do
|
|
site = insert(:site, members: [user])
|
|
conn = get(conn, "/api/#{site.domain}/status")
|
|
|
|
assert json_response(conn, 200) == "WAITING"
|
|
end
|
|
|
|
test "is READY when site has at least 1 pageview", %{conn: conn, user: user} do
|
|
site = insert(:site, members: [user])
|
|
Plausible.TestUtils.create_pageviews([%{domain: site.domain}])
|
|
|
|
conn = get(conn, "/api/#{site.domain}/status")
|
|
|
|
assert json_response(conn, 200) == "READY"
|
|
end
|
|
end
|
|
|
|
describe "GET /api/sites" do
|
|
setup [:create_user, :log_in]
|
|
|
|
test "returns a list of site domains for the current user", %{conn: conn, user: user} do
|
|
site = insert(:site, members: [user])
|
|
site2 = insert(:site, members: [user])
|
|
conn = get(conn, "/api/sites")
|
|
|
|
%{"data" => sites} = json_response(conn, 200)
|
|
|
|
assert Enum.map(sites, & &1["domain"]) == [site.domain, site2.domain]
|
|
end
|
|
end
|
|
|
|
describe "GET /api/sites - user not logged in" do
|
|
test "returns 401 unauthorized", %{conn: conn} do
|
|
conn = get(conn, "/api/sites")
|
|
|
|
assert json_response(conn, 401) == %{
|
|
"error" => "You need to be logged in to request a list of sites"
|
|
}
|
|
end
|
|
end
|
|
end
|