From 06d0d0eafab062df59e145e7642e1ea0f9a6cb4e Mon Sep 17 00:00:00 2001 From: Uku Taht Date: Tue, 23 Nov 2021 11:21:22 +0200 Subject: [PATCH] Fix over limit email reccommendation --- lib/workers/check_usage.ex | 2 +- test/workers/check_usage_test.exs | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/lib/workers/check_usage.ex b/lib/workers/check_usage.ex index 4bdf864b9..d18804d84 100644 --- a/lib/workers/check_usage.ex +++ b/lib/workers/check_usage.ex @@ -85,7 +85,7 @@ defmodule Plausible.Workers.CheckUsage do defp check_regular_subscriber(subscriber, billing_mod) do case check_pageview_limit(subscriber, billing_mod) do {:over_limit, {last_cycle, last_cycle_usage}} -> - suggested_plan = Plausible.Billing.Plans.suggested_plan(subscriber, last_cycle) + suggested_plan = Plausible.Billing.Plans.suggested_plan(subscriber, last_cycle_usage) template = PlausibleWeb.Email.over_limit_email( diff --git a/test/workers/check_usage_test.exs b/test/workers/check_usage_test.exs index 73bdbbf52..b38cfa74f 100644 --- a/test/workers/check_usage_test.exs +++ b/test/workers/check_usage_test.exs @@ -97,6 +97,32 @@ defmodule Plausible.Workers.CheckUsageTest do assert Repo.reload(user).grace_period.end_date == Timex.shift(Timex.today(), days: 7) end + test "reccommends a plan to upgrade to", %{ + user: user + } do + billing_stub = + Plausible.Billing + |> stub(:last_two_billing_months_usage, fn _user -> {11_000, 11_000} end) + |> stub(:last_two_billing_cycles, fn _user -> + {Date.range(Timex.today(), Timex.today()), Date.range(Timex.today(), Timex.today())} + end) + + insert(:subscription, + user: user, + paddle_plan_id: @paddle_id_10k, + last_bill_date: Timex.shift(Timex.today(), days: -1) + ) + + CheckUsage.perform(nil, billing_stub) + + assert_delivered_email_matches(%{ + html_body: html_body + }) + + # Should find 2 visiors + assert html_body =~ ~s(Based on that we recommend you select the 100k/mo plan.) + end + describe "enterprise customers" do test "checks billable pageview usage for enterprise customer, sends usage information to enterprise@plausible.io", %{