diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/marker_test.exs | 35 | ||||
| -rw-r--r-- | test/notification_test.exs | 10 | ||||
| -rw-r--r-- | test/web/mastodon_api/controllers/marker_controller_test.exs | 10 | ||||
| -rw-r--r-- | test/web/mastodon_api/views/marker_view_test.exs | 8 | 
4 files changed, 57 insertions, 6 deletions
| diff --git a/test/marker_test.exs b/test/marker_test.exs index 04bd67fe6..7b1d2218a 100644 --- a/test/marker_test.exs +++ b/test/marker_test.exs @@ -8,6 +8,27 @@ defmodule Pleroma.MarkerTest do    import Pleroma.Factory +  describe "multi_set_unread_count/3" do +    test "returns multi" do +      user = insert(:user) + +      assert %Ecto.Multi{ +               operations: [marker: {:run, _}, counters: {:run, _}] +             } = +               Marker.multi_set_unread_count( +                 Ecto.Multi.new(), +                 user, +                 "notifications" +               ) +    end + +    test "return empty multi" do +      user = insert(:user) +      multi = Ecto.Multi.new() +      assert Marker.multi_set_unread_count(multi, user, "home") == multi +    end +  end +    describe "get_markers/2" do      test "returns user markers" do        user = insert(:user) @@ -15,6 +36,20 @@ defmodule Pleroma.MarkerTest do        insert(:marker, timeline: "home", user: user)        assert Marker.get_markers(user, ["notifications"]) == [refresh_record(marker)]      end + +    test "returns user markers with recount unread notifications" do +      user = insert(:user) +      marker = insert(:marker, user: user) +      insert(:notification, user: user) +      insert(:notification, user: user) +      insert(:marker, timeline: "home", user: user) + +      assert Marker.get_markers( +               user, +               ["notifications"], +               %{recount_unread: true} +             ) == [%Marker{refresh_record(marker) | unread_count: 2}] +    end    end    describe "upsert/2" do diff --git a/test/notification_test.exs b/test/notification_test.exs index 04bf5b41a..c9b352097 100644 --- a/test/notification_test.exs +++ b/test/notification_test.exs @@ -43,6 +43,9 @@ defmodule Pleroma.NotificationTest do        assert notified_ids == [other_user.id, third_user.id]        assert notification.activity_id == activity.id        assert other_notification.activity_id == activity.id + +      assert [%Pleroma.Marker{unread_count: 2}] = +               Pleroma.Marker.get_markers(other_user, ["notifications"])      end      test "it creates a notification for subscribed users" do @@ -334,6 +337,13 @@ defmodule Pleroma.NotificationTest do        assert n1.seen == true        assert n2.seen == true        assert n3.seen == false + +      assert %Pleroma.Marker{unread_count: 1} = +               Pleroma.Repo.get_by( +                 Pleroma.Marker, +                 user_id: other_user.id, +                 timeline: "notifications" +               )      end    end diff --git a/test/web/mastodon_api/controllers/marker_controller_test.exs b/test/web/mastodon_api/controllers/marker_controller_test.exs index 1fcad873d..64bf79bb1 100644 --- a/test/web/mastodon_api/controllers/marker_controller_test.exs +++ b/test/web/mastodon_api/controllers/marker_controller_test.exs @@ -11,6 +11,7 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do      test "gets markers with correct scopes", %{conn: conn} do        user = insert(:user)        token = insert(:oauth_token, user: user, scopes: ["read:statuses"]) +      insert_list(7, :notification, user: user)        {:ok, %{"notifications" => marker}} =          Pleroma.Marker.upsert( @@ -29,7 +30,8 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do                 "notifications" => %{                   "last_read_id" => "69420",                   "updated_at" => NaiveDateTime.to_iso8601(marker.updated_at), -                 "version" => 0 +                 "version" => 0, +                 "pleroma" => %{"unread_count" => 7}                 }               }      end @@ -70,7 +72,8 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do                 "notifications" => %{                   "last_read_id" => "69420",                   "updated_at" => _, -                 "version" => 0 +                 "version" => 0, +                 "pleroma" => %{"unread_count" => 0}                 }               } = response      end @@ -99,7 +102,8 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do                 "notifications" => %{                   "last_read_id" => "69888",                   "updated_at" => NaiveDateTime.to_iso8601(marker.updated_at), -                 "version" => 0 +                 "version" => 0, +                 "pleroma" => %{"unread_count" => 0}                 }               }      end diff --git a/test/web/mastodon_api/views/marker_view_test.exs b/test/web/mastodon_api/views/marker_view_test.exs index 8a5c89d56..f172e5023 100644 --- a/test/web/mastodon_api/views/marker_view_test.exs +++ b/test/web/mastodon_api/views/marker_view_test.exs @@ -8,19 +8,21 @@ defmodule Pleroma.Web.MastodonAPI.MarkerViewTest do    import Pleroma.Factory    test "returns markers" do -    marker1 = insert(:marker, timeline: "notifications", last_read_id: "17") +    marker1 = insert(:marker, timeline: "notifications", last_read_id: "17", unread_count: 5)      marker2 = insert(:marker, timeline: "home", last_read_id: "42")      assert MarkerView.render("markers.json", %{markers: [marker1, marker2]}) == %{               "home" => %{                 last_read_id: "42",                 updated_at: NaiveDateTime.to_iso8601(marker2.updated_at), -               version: 0 +               version: 0, +               pleroma: %{unread_count: 0}               },               "notifications" => %{                 last_read_id: "17",                 updated_at: NaiveDateTime.to_iso8601(marker1.updated_at), -               version: 0 +               version: 0, +               pleroma: %{unread_count: 5}               }             }    end | 
