From d4270397dcb2aebde8ed14fd89998ab57aaae545 Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Tue, 22 Oct 2019 13:42:59 +0300 Subject: Marker: added unread_count field --- test/web/mastodon_api/controllers/marker_controller_test.exs | 7 +++++-- test/web/mastodon_api/views/marker_view_test.exs | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/web/mastodon_api/controllers/marker_controller_test.exs b/test/web/mastodon_api/controllers/marker_controller_test.exs index 1fcad873d..5e7b4001f 100644 --- a/test/web/mastodon_api/controllers/marker_controller_test.exs +++ b/test/web/mastodon_api/controllers/marker_controller_test.exs @@ -15,7 +15,7 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do {:ok, %{"notifications" => marker}} = Pleroma.Marker.upsert( user, - %{"notifications" => %{"last_read_id" => "69420"}} + %{"notifications" => %{"last_read_id" => "69420", "unread_count" => 7}} ) response = @@ -28,6 +28,7 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do assert response == %{ "notifications" => %{ "last_read_id" => "69420", + "unread_count" => 7, "updated_at" => NaiveDateTime.to_iso8601(marker.updated_at), "version" => 0 } @@ -70,7 +71,8 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do "notifications" => %{ "last_read_id" => "69420", "updated_at" => _, - "version" => 0 + "version" => 0, + "unread_count" => 0 } } = response end @@ -98,6 +100,7 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do assert response == %{ "notifications" => %{ "last_read_id" => "69888", + "unread_count" => 0, "updated_at" => NaiveDateTime.to_iso8601(marker.updated_at), "version" => 0 } diff --git a/test/web/mastodon_api/views/marker_view_test.exs b/test/web/mastodon_api/views/marker_view_test.exs index 8a5c89d56..3ce794617 100644 --- a/test/web/mastodon_api/views/marker_view_test.exs +++ b/test/web/mastodon_api/views/marker_view_test.exs @@ -8,17 +8,19 @@ 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", + unread_count: 0, updated_at: NaiveDateTime.to_iso8601(marker2.updated_at), version: 0 }, "notifications" => %{ last_read_id: "17", + unread_count: 5, updated_at: NaiveDateTime.to_iso8601(marker1.updated_at), version: 0 } -- cgit v1.2.3 From 9a4afbd2a0486238bfaf4047d91376d32635514a Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Tue, 22 Oct 2019 16:13:22 +0300 Subject: added update unread_count for notifications --- test/notification_test.exs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'test') diff --git a/test/notification_test.exs b/test/notification_test.exs index 96316f8dd..558ac358c 100644 --- a/test/notification_test.exs +++ b/test/notification_test.exs @@ -310,6 +310,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 -- cgit v1.2.3 From d3fb9e02cc0ce7dc462e587e639e117aaef5fbc5 Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Wed, 23 Oct 2019 22:48:04 +0300 Subject: add tests --- test/marker_test.exs | 15 +++++++++++++++ test/notification_test.exs | 3 +++ 2 files changed, 18 insertions(+) (limited to 'test') diff --git a/test/marker_test.exs b/test/marker_test.exs index 04bd67fe6..1900ed08b 100644 --- a/test/marker_test.exs +++ b/test/marker_test.exs @@ -8,6 +8,21 @@ 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 + end + describe "get_markers/2" do test "returns user markers" do user = insert(:user) diff --git a/test/notification_test.exs b/test/notification_test.exs index 558ac358c..1e8a9ca98 100644 --- a/test/notification_test.exs +++ b/test/notification_test.exs @@ -31,6 +31,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 -- cgit v1.2.3 From 922e3d082c38ccd108710e21d4bda8e65b551f9c Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Thu, 24 Oct 2019 09:50:41 +0300 Subject: add test --- test/marker_test.exs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'test') diff --git a/test/marker_test.exs b/test/marker_test.exs index 1900ed08b..5d03db48e 100644 --- a/test/marker_test.exs +++ b/test/marker_test.exs @@ -21,6 +21,12 @@ defmodule Pleroma.MarkerTest do "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 -- cgit v1.2.3 From 209319c8d289564653f73cbf15fb6449d91cf3ca Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Wed, 30 Oct 2019 23:49:05 +0300 Subject: update marker api --- .../controllers/marker_controller_test.exs | 20 ++++++++++---------- test/web/mastodon_api/views/marker_view_test.exs | 8 ++++---- 2 files changed, 14 insertions(+), 14 deletions(-) (limited to 'test') diff --git a/test/web/mastodon_api/controllers/marker_controller_test.exs b/test/web/mastodon_api/controllers/marker_controller_test.exs index 5e7b4001f..e0aacccb4 100644 --- a/test/web/mastodon_api/controllers/marker_controller_test.exs +++ b/test/web/mastodon_api/controllers/marker_controller_test.exs @@ -26,13 +26,13 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do |> json_response(200) assert response == %{ - "notifications" => %{ - "last_read_id" => "69420", - "unread_count" => 7, - "updated_at" => NaiveDateTime.to_iso8601(marker.updated_at), - "version" => 0 - } - } + "notifications" => %{ + "last_read_id" => "69420", + "updated_at" => NaiveDateTime.to_iso8601(marker.updated_at), + "version" => 0, + "pleroma" => %{ "unread_count" => 7 } + } + } end test "gets markers with missed scopes", %{conn: conn} do @@ -72,7 +72,7 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do "last_read_id" => "69420", "updated_at" => _, "version" => 0, - "unread_count" => 0 + "pleroma" => %{ "unread_count" => 0 } } } = response end @@ -100,9 +100,9 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do assert response == %{ "notifications" => %{ "last_read_id" => "69888", - "unread_count" => 0, "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 3ce794617..f172e5023 100644 --- a/test/web/mastodon_api/views/marker_view_test.exs +++ b/test/web/mastodon_api/views/marker_view_test.exs @@ -14,15 +14,15 @@ defmodule Pleroma.Web.MastodonAPI.MarkerViewTest do assert MarkerView.render("markers.json", %{markers: [marker1, marker2]}) == %{ "home" => %{ last_read_id: "42", - unread_count: 0, updated_at: NaiveDateTime.to_iso8601(marker2.updated_at), - version: 0 + version: 0, + pleroma: %{unread_count: 0} }, "notifications" => %{ last_read_id: "17", - unread_count: 5, updated_at: NaiveDateTime.to_iso8601(marker1.updated_at), - version: 0 + version: 0, + pleroma: %{unread_count: 5} } } end -- cgit v1.2.3 From 1b3a942a84b8b612e07e3bf34801137741926911 Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Thu, 31 Oct 2019 17:36:59 +0300 Subject: fix format --- .../controllers/marker_controller_test.exs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'test') diff --git a/test/web/mastodon_api/controllers/marker_controller_test.exs b/test/web/mastodon_api/controllers/marker_controller_test.exs index e0aacccb4..8bcfcb7e1 100644 --- a/test/web/mastodon_api/controllers/marker_controller_test.exs +++ b/test/web/mastodon_api/controllers/marker_controller_test.exs @@ -26,13 +26,13 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do |> json_response(200) assert response == %{ - "notifications" => %{ - "last_read_id" => "69420", - "updated_at" => NaiveDateTime.to_iso8601(marker.updated_at), - "version" => 0, - "pleroma" => %{ "unread_count" => 7 } - } - } + "notifications" => %{ + "last_read_id" => "69420", + "updated_at" => NaiveDateTime.to_iso8601(marker.updated_at), + "version" => 0, + "pleroma" => %{"unread_count" => 7} + } + } end test "gets markers with missed scopes", %{conn: conn} do @@ -72,7 +72,7 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do "last_read_id" => "69420", "updated_at" => _, "version" => 0, - "pleroma" => %{ "unread_count" => 0 } + "pleroma" => %{"unread_count" => 0} } } = response end @@ -102,7 +102,7 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do "last_read_id" => "69888", "updated_at" => NaiveDateTime.to_iso8601(marker.updated_at), "version" => 0, - "pleroma" => %{ "unread_count" => 0 } + "pleroma" => %{"unread_count" => 0} } } end -- cgit v1.2.3 From b9041c209787dc279d4dc5194d65dff73684cdb9 Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Fri, 15 Nov 2019 22:10:41 +0300 Subject: added recount unread notifications to markers --- test/marker_test.exs | 14 ++++++++++++++ .../mastodon_api/controllers/marker_controller_test.exs | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/marker_test.exs b/test/marker_test.exs index 5d03db48e..7b1d2218a 100644 --- a/test/marker_test.exs +++ b/test/marker_test.exs @@ -36,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/web/mastodon_api/controllers/marker_controller_test.exs b/test/web/mastodon_api/controllers/marker_controller_test.exs index 8bcfcb7e1..64bf79bb1 100644 --- a/test/web/mastodon_api/controllers/marker_controller_test.exs +++ b/test/web/mastodon_api/controllers/marker_controller_test.exs @@ -11,11 +11,12 @@ 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( user, - %{"notifications" => %{"last_read_id" => "69420", "unread_count" => 7}} + %{"notifications" => %{"last_read_id" => "69420"}} ) response = -- cgit v1.2.3 From cd040691bd28fea1437b8f1c39bb914465e1ff46 Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Mon, 10 Feb 2020 09:01:45 +0300 Subject: maked `unread_count` as virtual field --- test/marker_test.exs | 14 +++----------- test/notification_test.exs | 5 ++++- 2 files changed, 7 insertions(+), 12 deletions(-) (limited to 'test') diff --git a/test/marker_test.exs b/test/marker_test.exs index 7b1d2218a..54c710691 100644 --- a/test/marker_test.exs +++ b/test/marker_test.exs @@ -15,7 +15,7 @@ defmodule Pleroma.MarkerTest do assert %Ecto.Multi{ operations: [marker: {:run, _}, counters: {:run, _}] } = - Marker.multi_set_unread_count( + Marker.multi_set_last_read_id( Ecto.Multi.new(), user, "notifications" @@ -25,19 +25,12 @@ defmodule Pleroma.MarkerTest do test "return empty multi" do user = insert(:user) multi = Ecto.Multi.new() - assert Marker.multi_set_unread_count(multi, user, "home") == multi + assert Marker.multi_set_last_read_id(multi, user, "home") == multi end end describe "get_markers/2" do test "returns user markers" do - user = insert(:user) - marker = insert(:marker, user: user) - 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) @@ -46,8 +39,7 @@ defmodule Pleroma.MarkerTest do assert Marker.get_markers( user, - ["notifications"], - %{recount_unread: true} + ["notifications"] ) == [%Marker{refresh_record(marker) | unread_count: 2}] end end diff --git a/test/notification_test.exs b/test/notification_test.exs index c9b352097..49a79b2d3 100644 --- a/test/notification_test.exs +++ b/test/notification_test.exs @@ -338,12 +338,15 @@ defmodule Pleroma.NotificationTest do assert n2.seen == true assert n3.seen == false - assert %Pleroma.Marker{unread_count: 1} = + assert %Pleroma.Marker{} = + m = Pleroma.Repo.get_by( Pleroma.Marker, user_id: other_user.id, timeline: "notifications" ) + + assert m.last_read_id == to_string(n2.id) end end -- cgit v1.2.3