From b0c7646391ce30623ed55bf9c5da90ae33b44a8f Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Tue, 2 Jul 2024 12:15:25 +0200 Subject: [PATCH] wip --- lib/workers/traffic_change_notifier.ex | 13 +++++---- test/workers/traffic_change_notifier_test.exs | 28 +++++++++++++------ 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/lib/workers/traffic_change_notifier.ex b/lib/workers/traffic_change_notifier.ex index b133d890f031..06cf5a84dbda 100644 --- a/lib/workers/traffic_change_notifier.ex +++ b/lib/workers/traffic_change_notifier.ex @@ -11,6 +11,7 @@ defmodule Plausible.Workers.TrafficChangeNotifier do @impl Oban.Worker def perform(_job, clickhouse \\ Plausible.Stats.Clickhouse) do today = Date.utc_today() + notifications = Repo.all( from sn in TrafficChangeNotification, @@ -19,12 +20,12 @@ defmodule Plausible.Workers.TrafficChangeNotifier do join: s in Plausible.Site, on: sn.site_id == s.id, where: not s.locked, - join: sm in Plausible.Site.Membership, - on: sm.site_id == s.id, - where: sm.role == :owner, - join: u in Plausible.Auth.User, - on: u.id == sm.user_id, - where: is_nil(u.accept_traffic_until) or u.accept_traffic_until > ^today, + join: sm in Plausible.Site.Membership, + on: sm.site_id == s.id, + where: sm.role == :owner, + join: u in Plausible.Auth.User, + on: u.id == sm.user_id, + where: is_nil(u.accept_traffic_until) or u.accept_traffic_until > ^today, preload: [site: s] ) diff --git a/test/workers/traffic_change_notifier_test.exs b/test/workers/traffic_change_notifier_test.exs index 536926394920..c9778412d01b 100644 --- a/test/workers/traffic_change_notifier_test.exs +++ b/test/workers/traffic_change_notifier_test.exs @@ -5,12 +5,16 @@ defmodule Plausible.Workers.TrafficChangeNotifierTest do alias Plausible.Workers.TrafficChangeNotifier describe "drops" do - test "does not notify anyone if we've stopped accepting traffic for the owner" do - site = insert(:site, memberships: [ - build(:site_membership, - user: build(:user, accept_traffic_until: Date.utc_today()), - role: :owner)]) + site = + insert(:site, + memberships: [ + build(:site_membership, + user: build(:user, accept_traffic_until: Date.utc_today()), + role: :owner + ) + ] + ) insert(:drop_notification, site: site, @@ -27,10 +31,15 @@ defmodule Plausible.Workers.TrafficChangeNotifierTest do end test "does notify if threshold reached and we're accepting traffic" do - site = insert(:site, memberships: [ - build(:site_membership, - user: build(:user, accept_traffic_until: Date.utc_today() |> Date.add(+1)), - role: :owner)]) + site = + insert(:site, + memberships: [ + build(:site_membership, + user: build(:user, accept_traffic_until: Date.utc_today() |> Date.add(+1)), + role: :owner + ) + ] + ) insert(:drop_notification, site: site, @@ -68,6 +77,7 @@ defmodule Plausible.Workers.TrafficChangeNotifierTest do test "notifies all recipients when traffic drops under configured threshold" do site = insert(:site) + insert(:drop_notification, site: site, threshold: 10,