describe "create_notification" do
@tag needs_streamer: true
test "it creates a notification for user and send to the 'user' and the 'user:notification' stream" do
- user = insert(:user)
+ %{user: user, token: oauth_token} = oauth_access(["read"])
task =
Task.async(fn ->
- Streamer.get_topic_and_add_socket("user", user)
+ {:ok, _topic} = Streamer.get_topic_and_add_socket("user", user, oauth_token)
assert_receive {:render_with_user, _, _, _}, 4_000
end)
task_user_notification =
Task.async(fn ->
- Streamer.get_topic_and_add_socket("user:notification", user)
+ {:ok, _topic} =
+ Streamer.get_topic_and_add_socket("user:notification", user, oauth_token)
+
assert_receive {:render_with_user, _, _, _}, 4_000
end)
muter = Repo.get(User, muter.id)
{:ok, activity} = CommonAPI.post(muted, %{status: "Hi @#{muter.nickname}"})
- assert Notification.create_notification(activity, muter)
+ notification = Notification.create_notification(activity, muter)
+
+ assert notification.id
+ assert notification.seen
end
test "notification created if user is muted without notifications" do
in_reply_to_status_id: activity.id
})
- assert Notification.create_notification(activity, muter)
+ notification = Notification.create_notification(activity, muter)
+
+ assert notification.id
+ assert notification.seen
end
test "it disables notifications from strangers" do
{:ok, [notification]} = Notification.create_notifications(status)
assert notification
+ refute notification.seen
end
test "it creates notifications when someone likes user's status with a filtered word" do
{:ok, [notification]} = Notification.create_notifications(activity_two)
assert notification
+ refute notification.seen
end
end
[notification] = Notification.for_user(user)
assert notification.activity.object
+ assert notification.seen
end
test "it doesn't return notifications for muted user with notifications", %{user: user} do