Fix specs.
[akkoma] / test / web / websub / websub_test.exs
index 48774dc692c28d3a2d63eae381a836b771c0e241..aaed9226ef19aa1e86af3d80aa03c8a39c515360 100644 (file)
@@ -7,7 +7,7 @@ end
 defmodule Pleroma.Web.WebsubTest do
   use Pleroma.DataCase
   alias Pleroma.Web.Websub
-  alias Pleroma.Web.Websub.WebsubServerSubscription
+  alias Pleroma.Web.Websub.{WebsubServerSubscription, WebsubClientSubscription}
   import Pleroma.Factory
   alias Pleroma.Web.Router.Helpers
 
@@ -174,4 +174,18 @@ defmodule Pleroma.Web.WebsubTest do
 
     signed = Websub.sign("secret", [["て"], ['す']])
   end
+
+  describe "renewing subscriptions" do
+    test "it renews subscriptions that have less than a day of time left" do
+      day = 60 * 60 * 24
+      now = NaiveDateTime.utc_now
+      still_good = insert(:websub_client_subscription, %{valid_until: NaiveDateTime.add(now, 2 * day), topic: "http://example.org/still_good", state: "accepted"})
+      needs_refresh = insert(:websub_client_subscription, %{valid_until: NaiveDateTime.add(now, day - 100), topic: "http://example.org/needs_refresh", state: "accepted"})
+
+      refresh = Websub.refresh_subscriptions()
+
+      assert still_good == Repo.get(WebsubClientSubscription, still_good.id)
+      refute needs_refresh == Repo.get(WebsubClientSubscription, needs_refresh.id)
+    end
+  end
 end