pleroma/test/marker_test.exs

79 lines
2.1 KiB
Elixir
Raw Normal View History

2019-10-17 05:26:59 -07:00
# Pleroma: A lightweight social networking server
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.MarkerTest do
use Pleroma.DataCase
alias Pleroma.Marker
import Pleroma.Factory
2019-10-23 12:48:04 -07:00
describe "multi_set_unread_count/3" do
test "returns multi" do
user = insert(:user)
assert %Ecto.Multi{
operations: [marker: {:run, _}, counters: {:run, _}]
} =
2020-02-09 22:01:45 -08:00
Marker.multi_set_last_read_id(
2019-10-23 12:48:04 -07:00
Ecto.Multi.new(),
user,
"notifications"
)
end
2019-10-23 23:50:41 -07:00
test "return empty multi" do
user = insert(:user)
multi = Ecto.Multi.new()
2020-02-09 22:01:45 -08:00
assert Marker.multi_set_last_read_id(multi, user, "home") == multi
2019-10-23 23:50:41 -07:00
end
2019-10-23 12:48:04 -07:00
end
2019-10-17 05:26:59 -07:00
describe "get_markers/2" do
test "returns user markers" 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,
2020-02-09 22:01:45 -08:00
["notifications"]
) == [%Marker{refresh_record(marker) | unread_count: 2}]
end
2019-10-17 05:26:59 -07:00
end
describe "upsert/2" do
test "creates a marker" do
user = insert(:user)
{:ok, %{"notifications" => %Marker{} = marker}} =
Marker.upsert(
user,
%{"notifications" => %{"last_read_id" => "34"}}
)
assert marker.timeline == "notifications"
assert marker.last_read_id == "34"
assert marker.lock_version == 0
end
test "updates exist marker" do
user = insert(:user)
marker = insert(:marker, user: user, last_read_id: "8909")
{:ok, %{"notifications" => %Marker{}}} =
Marker.upsert(
user,
%{"notifications" => %{"last_read_id" => "9909"}}
)
marker = refresh_record(marker)
assert marker.timeline == "notifications"
assert marker.last_read_id == "9909"
assert marker.lock_version == 0
end
end
end