mirror of
https://github.com/plausible/analytics.git
synced 2024-12-23 09:33:19 +03:00
add a test and fix rendering the dashboard link
This commit is contained in:
parent
fc3be2a5b8
commit
fbe3a4e6f1
@ -10,7 +10,7 @@ There are currently <%= @current_visitors %> visitors on <%= link(@site.domain,
|
|||||||
|
|
||||||
<%= if @link do %>
|
<%= if @link do %>
|
||||||
<br /><br />
|
<br /><br />
|
||||||
View dashboard: @link
|
View dashboard: <%= link(@link, to: @link) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<br /><br />
|
<br /><br />
|
||||||
--
|
--
|
||||||
|
@ -31,7 +31,7 @@ defmodule Plausible.Workers.SpikeNotifier do
|
|||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
||||||
def notify(notification, current_visitors, sources) do
|
defp notify(notification, current_visitors, sources) do
|
||||||
for recipient <- notification.recipients do
|
for recipient <- notification.recipients do
|
||||||
send_notification(recipient, notification.site, current_visitors, sources)
|
send_notification(recipient, notification.site, current_visitors, sources)
|
||||||
end
|
end
|
||||||
@ -45,7 +45,7 @@ defmodule Plausible.Workers.SpikeNotifier do
|
|||||||
site = Repo.preload(site, :members)
|
site = Repo.preload(site, :members)
|
||||||
|
|
||||||
dashboard_link =
|
dashboard_link =
|
||||||
if Enum.member?(site.members, recipient) do
|
if Enum.any?(site.members, &(&1.email == recipient)) do
|
||||||
PlausibleWeb.Endpoint.url() <> "/" <> URI.encode_www_form(site.domain)
|
PlausibleWeb.Endpoint.url() <> "/" <> URI.encode_www_form(site.domain)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -85,4 +85,18 @@ defmodule Plausible.Workers.SpikeNotifierTest do
|
|||||||
|
|
||||||
assert_no_emails_delivered()
|
assert_no_emails_delivered()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "adds a dashboard link if recipient has access to the site" do
|
||||||
|
user = insert(:user, email: "robert@example.com")
|
||||||
|
site = insert(:site, domain: "example.com", members: [user])
|
||||||
|
insert(:spike_notification, site: site, threshold: 10, recipients: ["robert@example.com"])
|
||||||
|
|
||||||
|
clickhouse_stub =
|
||||||
|
stub(Plausible.Stats.Clickhouse, :current_visitors, fn _site, _query -> 10 end)
|
||||||
|
|> stub(:top_sources, fn _site, _query, _limit, _page, _show_noref -> [] end)
|
||||||
|
|
||||||
|
SpikeNotifier.perform(nil, clickhouse_stub)
|
||||||
|
|
||||||
|
assert_email_delivered_with(html_body: ~r/View dashboard: <a href=\"http.+\/example.com/)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user