diff options
Diffstat (limited to 'test/web/pleroma_api/controllers')
5 files changed, 109 insertions, 185 deletions
| diff --git a/test/web/pleroma_api/controllers/account_controller_test.exs b/test/web/pleroma_api/controllers/account_controller_test.exs index c809f510f..d17026a6b 100644 --- a/test/web/pleroma_api/controllers/account_controller_test.exs +++ b/test/web/pleroma_api/controllers/account_controller_test.exs @@ -33,7 +33,6 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do      test "resend account confirmation email", %{conn: conn, user: user} do        conn -      |> assign(:user, user)        |> post("/api/v1/pleroma/accounts/confirmation_resend?email=#{user.email}")        |> json_response(:no_content) @@ -52,14 +51,12 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do    end    describe "PATCH /api/v1/pleroma/accounts/update_avatar" do -    test "user avatar can be set", %{conn: conn} do -      user = insert(:user) +    setup do: oauth_access(["write:accounts"]) + +    test "user avatar can be set", %{user: user, conn: conn} do        avatar_image = File.read!("test/fixtures/avatar_data_uri") -      conn = -        conn -        |> assign(:user, user) -        |> patch("/api/v1/pleroma/accounts/update_avatar", %{img: avatar_image}) +      conn = patch(conn, "/api/v1/pleroma/accounts/update_avatar", %{img: avatar_image})        user = refresh_record(user) @@ -78,13 +75,8 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do        assert %{"url" => _} = json_response(conn, 200)      end -    test "user avatar can be reset", %{conn: conn} do -      user = insert(:user) - -      conn = -        conn -        |> assign(:user, user) -        |> patch("/api/v1/pleroma/accounts/update_avatar", %{img: ""}) +    test "user avatar can be reset", %{user: user, conn: conn} do +      conn = patch(conn, "/api/v1/pleroma/accounts/update_avatar", %{img: ""})        user = User.get_cached_by_id(user.id) @@ -95,13 +87,10 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do    end    describe "PATCH /api/v1/pleroma/accounts/update_banner" do -    test "can set profile banner", %{conn: conn} do -      user = insert(:user) +    setup do: oauth_access(["write:accounts"]) -      conn = -        conn -        |> assign(:user, user) -        |> patch("/api/v1/pleroma/accounts/update_banner", %{"banner" => @image}) +    test "can set profile banner", %{user: user, conn: conn} do +      conn = patch(conn, "/api/v1/pleroma/accounts/update_banner", %{"banner" => @image})        user = refresh_record(user)        assert user.banner["type"] == "Image" @@ -109,13 +98,8 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do        assert %{"url" => _} = json_response(conn, 200)      end -    test "can reset profile banner", %{conn: conn} do -      user = insert(:user) - -      conn = -        conn -        |> assign(:user, user) -        |> patch("/api/v1/pleroma/accounts/update_banner", %{"banner" => ""}) +    test "can reset profile banner", %{user: user, conn: conn} do +      conn = patch(conn, "/api/v1/pleroma/accounts/update_banner", %{"banner" => ""})        user = refresh_record(user)        assert user.banner == %{} @@ -125,26 +109,18 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do    end    describe "PATCH /api/v1/pleroma/accounts/update_background" do -    test "background image can be set", %{conn: conn} do -      user = insert(:user) +    setup do: oauth_access(["write:accounts"]) -      conn = -        conn -        |> assign(:user, user) -        |> patch("/api/v1/pleroma/accounts/update_background", %{"img" => @image}) +    test "background image can be set", %{user: user, conn: conn} do +      conn = patch(conn, "/api/v1/pleroma/accounts/update_background", %{"img" => @image})        user = refresh_record(user)        assert user.background["type"] == "Image"        assert %{"url" => _} = json_response(conn, 200)      end -    test "background image can be reset", %{conn: conn} do -      user = insert(:user) - -      conn = -        conn -        |> assign(:user, user) -        |> patch("/api/v1/pleroma/accounts/update_background", %{"img" => ""}) +    test "background image can be reset", %{user: user, conn: conn} do +      conn = patch(conn, "/api/v1/pleroma/accounts/update_background", %{"img" => ""})        user = refresh_record(user)        assert user.background == %{} @@ -155,12 +131,12 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do    describe "getting favorites timeline of specified user" do      setup do        [current_user, user] = insert_pair(:user, hide_favorites: false) -      [current_user: current_user, user: user] +      %{user: current_user, conn: conn} = oauth_access(["read:favourites"], user: current_user) +      [current_user: current_user, user: user, conn: conn]      end      test "returns list of statuses favorited by specified user", %{        conn: conn, -      current_user: current_user,        user: user      } do        [activity | _] = insert_pair(:note_activity) @@ -168,7 +144,6 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do        response =          conn -        |> assign(:user, current_user)          |> get("/api/v1/pleroma/accounts/#{user.id}/favourites")          |> json_response(:ok) @@ -178,23 +153,18 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do        assert like["id"] == activity.id      end -    test "returns favorites for specified user_id when user is not logged in", %{ -      conn: conn, +    test "does not return favorites for specified user_id when user is not logged in", %{        user: user      } do        activity = insert(:note_activity)        CommonAPI.favorite(activity.id, user) -      response = -        conn -        |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") -        |> json_response(:ok) - -      assert length(response) == 1 +      build_conn() +      |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") +      |> json_response(403)      end      test "returns favorited DM only when user is logged in and he is one of recipients", %{ -      conn: conn,        current_user: current_user,        user: user      } do @@ -206,25 +176,24 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do        CommonAPI.favorite(direct.id, user) -      response = -        conn -        |> assign(:user, current_user) -        |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") -        |> json_response(:ok) +      for u <- [user, current_user] do +        response = +          build_conn() +          |> assign(:user, u) +          |> assign(:token, insert(:oauth_token, user: u, scopes: ["read:favourites"])) +          |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") +          |> json_response(:ok) -      assert length(response) == 1 +        assert length(response) == 1 +      end -      anonymous_response = -        conn -        |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") -        |> json_response(:ok) - -      assert Enum.empty?(anonymous_response) +      build_conn() +      |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") +      |> json_response(403)      end      test "does not return others' favorited DM when user is not one of recipients", %{        conn: conn, -      current_user: current_user,        user: user      } do        user_two = insert(:user) @@ -239,7 +208,6 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do        response =          conn -        |> assign(:user, current_user)          |> get("/api/v1/pleroma/accounts/#{user.id}/favourites")          |> json_response(:ok) @@ -248,7 +216,6 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do      test "paginates favorites using since_id and max_id", %{        conn: conn, -      current_user: current_user,        user: user      } do        activities = insert_list(10, :note_activity) @@ -262,7 +229,6 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do        response =          conn -        |> assign(:user, current_user)          |> get("/api/v1/pleroma/accounts/#{user.id}/favourites", %{            since_id: third_activity.id,            max_id: seventh_activity.id @@ -276,7 +242,6 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do      test "limits favorites using limit parameter", %{        conn: conn, -      current_user: current_user,        user: user      } do        7 @@ -287,7 +252,6 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do        response =          conn -        |> assign(:user, current_user)          |> get("/api/v1/pleroma/accounts/#{user.id}/favourites", %{limit: "3"})          |> json_response(:ok) @@ -296,12 +260,10 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do      test "returns empty response when user does not have any favorited statuses", %{        conn: conn, -      current_user: current_user,        user: user      } do        response =          conn -        |> assign(:user, current_user)          |> get("/api/v1/pleroma/accounts/#{user.id}/favourites")          |> json_response(:ok) @@ -314,79 +276,61 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do        assert json_response(conn, 404) == %{"error" => "Record not found"}      end -    test "returns 403 error when user has hidden own favorites", %{ -      conn: conn, -      current_user: current_user -    } do +    test "returns 403 error when user has hidden own favorites", %{conn: conn} do        user = insert(:user, hide_favorites: true)        activity = insert(:note_activity)        CommonAPI.favorite(activity.id, user) -      conn = -        conn -        |> assign(:user, current_user) -        |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") +      conn = get(conn, "/api/v1/pleroma/accounts/#{user.id}/favourites")        assert json_response(conn, 403) == %{"error" => "Can't get favorites"}      end -    test "hides favorites for new users by default", %{conn: conn, current_user: current_user} do +    test "hides favorites for new users by default", %{conn: conn} do        user = insert(:user)        activity = insert(:note_activity)        CommonAPI.favorite(activity.id, user) -      conn = -        conn -        |> assign(:user, current_user) -        |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") -        assert user.hide_favorites +      conn = get(conn, "/api/v1/pleroma/accounts/#{user.id}/favourites") +        assert json_response(conn, 403) == %{"error" => "Can't get favorites"}      end    end    describe "subscribing / unsubscribing" do -    test "subscribing / unsubscribing to a user", %{conn: conn} do -      user = insert(:user) +    test "subscribing / unsubscribing to a user" do +      %{user: user, conn: conn} = oauth_access(["follow"])        subscription_target = insert(:user) -      conn = +      ret_conn =          conn          |> assign(:user, user)          |> post("/api/v1/pleroma/accounts/#{subscription_target.id}/subscribe") -      assert %{"id" => _id, "subscribing" => true} = json_response(conn, 200) +      assert %{"id" => _id, "subscribing" => true} = json_response(ret_conn, 200) -      conn = -        build_conn() -        |> assign(:user, user) -        |> post("/api/v1/pleroma/accounts/#{subscription_target.id}/unsubscribe") +      conn = post(conn, "/api/v1/pleroma/accounts/#{subscription_target.id}/unsubscribe")        assert %{"id" => _id, "subscribing" => false} = json_response(conn, 200)      end    end    describe "subscribing" do -    test "returns 404 when subscription_target not found", %{conn: conn} do -      user = insert(:user) +    test "returns 404 when subscription_target not found" do +      %{conn: conn} = oauth_access(["write:follows"]) -      conn = -        conn -        |> assign(:user, user) -        |> post("/api/v1/pleroma/accounts/target_id/subscribe") +      conn = post(conn, "/api/v1/pleroma/accounts/target_id/subscribe")        assert %{"error" => "Record not found"} = json_response(conn, 404)      end    end    describe "unsubscribing" do -    test "returns 404 when subscription_target not found", %{conn: conn} do -      user = insert(:user) +    test "returns 404 when subscription_target not found" do +      %{conn: conn} = oauth_access(["follow"]) -      conn = -        conn -        |> assign(:user, user) -        |> post("/api/v1/pleroma/accounts/target_id/unsubscribe") +      conn = post(conn, "/api/v1/pleroma/accounts/target_id/unsubscribe")        assert %{"error" => "Record not found"} = json_response(conn, 404)      end diff --git a/test/web/pleroma_api/controllers/emoji_api_controller_test.exs b/test/web/pleroma_api/controllers/emoji_api_controller_test.exs index 3d3becefd..e1b484dae 100644 --- a/test/web/pleroma_api/controllers/emoji_api_controller_test.exs +++ b/test/web/pleroma_api/controllers/emoji_api_controller_test.exs @@ -39,9 +39,12 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do    test "listing remote packs" do      admin = insert(:user, is_admin: true) -    conn = build_conn() |> assign(:user, admin) +    %{conn: conn} = oauth_access(["admin:write"], user: admin) -    resp = conn |> get(emoji_api_path(conn, :list_packs)) |> json_response(200) +    resp = +      build_conn() +      |> get(emoji_api_path(conn, :list_packs)) +      |> json_response(200)      mock(fn        %{method: :get, url: "https://example.com/.well-known/nodeinfo"} -> @@ -123,7 +126,10 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do      admin = insert(:user, is_admin: true) -    conn = build_conn() |> assign(:user, admin) +    conn = +      build_conn() +      |> assign(:user, admin) +      |> assign(:token, insert(:oauth_admin_token, user: admin, scopes: ["admin:write"]))      assert (conn              |> put_req_header("content-type", "application/json") @@ -168,8 +174,6 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do      # non-shared, downloaded from the fallback URL -    conn = build_conn() |> assign(:user, admin) -      assert conn             |> put_req_header("content-type", "application/json")             |> post( @@ -205,8 +209,12 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do          File.write!(pack_file, original_content)        end) +      admin = insert(:user, is_admin: true) +      %{conn: conn} = oauth_access(["admin:write"], user: admin) +        {:ok, -       admin: insert(:user, is_admin: true), +       admin: admin, +       conn: conn,         pack_file: pack_file,         new_data: %{           "license" => "Test license changed", @@ -217,10 +225,9 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do      end      test "for a pack without a fallback source", ctx do -      conn = build_conn() +      conn = ctx[:conn]        assert conn -             |> assign(:user, ctx[:admin])               |> post(                 emoji_api_path(conn, :update_metadata, "test_pack"),                 %{ @@ -250,10 +257,9 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do            "74409E2674DAA06C072729C6C8426C4CB3B7E0B85ED77792DB7A436E11D76DAF"          ) -      conn = build_conn() +      conn = ctx[:conn]        assert conn -             |> assign(:user, ctx[:admin])               |> post(                 emoji_api_path(conn, :update_metadata, "test_pack"),                 %{ @@ -277,10 +283,9 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do        new_data = Map.put(ctx[:new_data], "fallback-src", "https://nonshared-pack") -      conn = build_conn() +      conn = ctx[:conn]        assert (conn -              |> assign(:user, ctx[:admin])                |> post(                  emoji_api_path(conn, :update_metadata, "test_pack"),                  %{ @@ -304,8 +309,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do      end)      admin = insert(:user, is_admin: true) - -    conn = build_conn() +    %{conn: conn} = oauth_access(["admin:write"], user: admin)      same_name = %{        "action" => "add", @@ -319,8 +323,6 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do      different_name = %{same_name | "shortcode" => "blank_2"} -    conn = conn |> assign(:user, admin) -      assert (conn              |> post(emoji_api_path(conn, :update_file, "test_pack"), same_name)              |> json_response(:conflict))["error"] =~ "already exists" @@ -392,8 +394,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do      end)      admin = insert(:user, is_admin: true) - -    conn = build_conn() |> assign(:user, admin) +    %{conn: conn} = oauth_access(["admin:write"], user: admin)      assert conn             |> put_req_header("content-type", "application/json") @@ -432,9 +433,9 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do      refute Map.has_key?(resp, "test_pack_for_import")      admin = insert(:user, is_admin: true) +    %{conn: conn} = oauth_access(["admin:write"], user: admin)      assert conn -           |> assign(:user, admin)             |> post(emoji_api_path(conn, :import_from_fs))             |> json_response(200) == ["test_pack_for_import"] @@ -449,11 +450,10 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do      File.write!("#{@emoji_dir_path}/test_pack_for_import/emoji.txt", emoji_txt_content)      assert conn -           |> assign(:user, admin)             |> post(emoji_api_path(conn, :import_from_fs))             |> json_response(200) == ["test_pack_for_import"] -    resp = conn |> get(emoji_api_path(conn, :list_packs)) |> json_response(200) +    resp = build_conn() |> get(emoji_api_path(conn, :list_packs)) |> json_response(200)      assert resp["test_pack_for_import"]["files"] == %{               "blank" => "blank.png", diff --git a/test/web/pleroma_api/controllers/mascot_controller_test.exs b/test/web/pleroma_api/controllers/mascot_controller_test.exs index ae9539b04..40c33e609 100644 --- a/test/web/pleroma_api/controllers/mascot_controller_test.exs +++ b/test/web/pleroma_api/controllers/mascot_controller_test.exs @@ -7,10 +7,8 @@ defmodule Pleroma.Web.PleromaAPI.MascotControllerTest do    alias Pleroma.User -  import Pleroma.Factory - -  test "mascot upload", %{conn: conn} do -    user = insert(:user) +  test "mascot upload" do +    %{conn: conn} = oauth_access(["write:accounts"])      non_image_file = %Plug.Upload{        content_type: "audio/mpeg", @@ -18,12 +16,9 @@ defmodule Pleroma.Web.PleromaAPI.MascotControllerTest do        filename: "sound.mp3"      } -    conn = -      conn -      |> assign(:user, user) -      |> put("/api/v1/pleroma/mascot", %{"file" => non_image_file}) +    ret_conn = put(conn, "/api/v1/pleroma/mascot", %{"file" => non_image_file}) -    assert json_response(conn, 415) +    assert json_response(ret_conn, 415)      file = %Plug.Upload{        content_type: "image/jpg", @@ -31,23 +26,18 @@ defmodule Pleroma.Web.PleromaAPI.MascotControllerTest do        filename: "an_image.jpg"      } -    conn = -      build_conn() -      |> assign(:user, user) -      |> put("/api/v1/pleroma/mascot", %{"file" => file}) +    conn = put(conn, "/api/v1/pleroma/mascot", %{"file" => file})      assert %{"id" => _, "type" => image} = json_response(conn, 200)    end -  test "mascot retrieving", %{conn: conn} do -    user = insert(:user) +  test "mascot retrieving" do +    %{user: user, conn: conn} = oauth_access(["read:accounts", "write:accounts"]) +      # When user hasn't set a mascot, we should just get pleroma tan back -    conn = -      conn -      |> assign(:user, user) -      |> get("/api/v1/pleroma/mascot") +    ret_conn = get(conn, "/api/v1/pleroma/mascot") -    assert %{"url" => url} = json_response(conn, 200) +    assert %{"url" => url} = json_response(ret_conn, 200)      assert url =~ "pleroma-fox-tan-smol"      # When a user sets their mascot, we should get that back @@ -57,17 +47,14 @@ defmodule Pleroma.Web.PleromaAPI.MascotControllerTest do        filename: "an_image.jpg"      } -    conn = -      build_conn() -      |> assign(:user, user) -      |> put("/api/v1/pleroma/mascot", %{"file" => file}) +    ret_conn = put(conn, "/api/v1/pleroma/mascot", %{"file" => file}) -    assert json_response(conn, 200) +    assert json_response(ret_conn, 200)      user = User.get_cached_by_id(user.id)      conn = -      build_conn() +      conn        |> assign(:user, user)        |> get("/api/v1/pleroma/mascot") diff --git a/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs b/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs index b1b59beed..3f7ef13bc 100644 --- a/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs +++ b/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs @@ -23,6 +23,7 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      result =        conn        |> assign(:user, other_user) +      |> assign(:token, insert(:oauth_token, user: other_user, scopes: ["write:statuses"]))        |> post("/api/v1/pleroma/statuses/#{activity.id}/react_with_emoji", %{"emoji" => "☕"})      assert %{"id" => id} = json_response(result, 200) @@ -39,6 +40,7 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      result =        conn        |> assign(:user, other_user) +      |> assign(:token, insert(:oauth_token, user: other_user, scopes: ["write:statuses"]))        |> post("/api/v1/pleroma/statuses/#{activity.id}/unreact_with_emoji", %{"emoji" => "☕"})      assert %{"id" => id} = json_response(result, 200) @@ -55,6 +57,11 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      {:ok, activity} = CommonAPI.post(user, %{"status" => "#cofe"}) +    conn = +      conn +      |> assign(:user, user) +      |> assign(:token, insert(:oauth_token, user: user, scopes: ["read:statuses"])) +      result =        conn        |> get("/api/v1/pleroma/statuses/#{activity.id}/emoji_reactions_by") @@ -73,9 +80,9 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      assert represented_user["id"] == other_user.id    end -  test "/api/v1/pleroma/conversations/:id", %{conn: conn} do +  test "/api/v1/pleroma/conversations/:id" do      user = insert(:user) -    other_user = insert(:user) +    %{user: other_user, conn: conn} = oauth_access(["read:statuses"])      {:ok, _activity} =        CommonAPI.post(user, %{"status" => "Hi @#{other_user.nickname}!", "visibility" => "direct"}) @@ -84,16 +91,15 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      result =        conn -      |> assign(:user, other_user)        |> get("/api/v1/pleroma/conversations/#{participation.id}")        |> json_response(200)      assert result["id"] == participation.id |> to_string()    end -  test "/api/v1/pleroma/conversations/:id/statuses", %{conn: conn} do +  test "/api/v1/pleroma/conversations/:id/statuses" do      user = insert(:user) -    other_user = insert(:user) +    %{user: other_user, conn: conn} = oauth_access(["read:statuses"])      third_user = insert(:user)      {:ok, _activity} = @@ -113,7 +119,6 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      result =        conn -      |> assign(:user, other_user)        |> get("/api/v1/pleroma/conversations/#{participation.id}/statuses")        |> json_response(200) @@ -124,8 +129,8 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      assert [%{"id" => ^id_one}, %{"id" => ^id_two}] = result    end -  test "PATCH /api/v1/pleroma/conversations/:id", %{conn: conn} do -    user = insert(:user) +  test "PATCH /api/v1/pleroma/conversations/:id" do +    %{user: user, conn: conn} = oauth_access(["write:conversations"])      other_user = insert(:user)      {:ok, _activity} = CommonAPI.post(user, %{"status" => "Hi", "visibility" => "direct"}) @@ -140,7 +145,6 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      result =        conn -      |> assign(:user, user)        |> patch("/api/v1/pleroma/conversations/#{participation.id}", %{          "recipients" => [user.id, other_user.id]        }) @@ -155,9 +159,9 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      assert other_user in participation.recipients    end -  test "POST /api/v1/pleroma/conversations/read", %{conn: conn} do +  test "POST /api/v1/pleroma/conversations/read" do      user = insert(:user) -    other_user = insert(:user) +    %{user: other_user, conn: conn} = oauth_access(["write:notifications"])      {:ok, _activity} =        CommonAPI.post(user, %{"status" => "Hi @#{other_user.nickname}", "visibility" => "direct"}) @@ -172,7 +176,6 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      [%{"unread" => false}, %{"unread" => false}] =        conn -      |> assign(:user, other_user)        |> post("/api/v1/pleroma/conversations/read", %{})        |> json_response(200) @@ -183,8 +186,9 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do    end    describe "POST /api/v1/pleroma/notifications/read" do -    test "it marks a single notification as read", %{conn: conn} do -      user1 = insert(:user) +    setup do: oauth_access(["write:notifications"]) + +    test "it marks a single notification as read", %{user: user1, conn: conn} do        user2 = insert(:user)        {:ok, activity1} = CommonAPI.post(user2, %{"status" => "hi @#{user1.nickname}"})        {:ok, activity2} = CommonAPI.post(user2, %{"status" => "hi @#{user1.nickname}"}) @@ -193,7 +197,6 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do        response =          conn -        |> assign(:user, user1)          |> post("/api/v1/pleroma/notifications/read", %{"id" => "#{notification1.id}"})          |> json_response(:ok) @@ -202,8 +205,7 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do        refute Repo.get(Notification, notification2.id).seen      end -    test "it marks multiple notifications as read", %{conn: conn} do -      user1 = insert(:user) +    test "it marks multiple notifications as read", %{user: user1, conn: conn} do        user2 = insert(:user)        {:ok, _activity1} = CommonAPI.post(user2, %{"status" => "hi @#{user1.nickname}"})        {:ok, _activity2} = CommonAPI.post(user2, %{"status" => "hi @#{user1.nickname}"}) @@ -213,7 +215,6 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do        [response1, response2] =          conn -        |> assign(:user, user1)          |> post("/api/v1/pleroma/notifications/read", %{"max_id" => "#{notification2.id}"})          |> json_response(:ok) @@ -225,11 +226,8 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      end      test "it returns error when notification not found", %{conn: conn} do -      user1 = insert(:user) -        response =          conn -        |> assign(:user, user1)          |> post("/api/v1/pleroma/notifications/read", %{"id" => "22222222222222"})          |> json_response(:bad_request) diff --git a/test/web/pleroma_api/controllers/scrobble_controller_test.exs b/test/web/pleroma_api/controllers/scrobble_controller_test.exs index 881f8012c..2242610f1 100644 --- a/test/web/pleroma_api/controllers/scrobble_controller_test.exs +++ b/test/web/pleroma_api/controllers/scrobble_controller_test.exs @@ -6,16 +6,13 @@ defmodule Pleroma.Web.PleromaAPI.ScrobbleControllerTest do    use Pleroma.Web.ConnCase    alias Pleroma.Web.CommonAPI -  import Pleroma.Factory    describe "POST /api/v1/pleroma/scrobble" do -    test "works correctly", %{conn: conn} do -      user = insert(:user) +    test "works correctly" do +      %{conn: conn} = oauth_access(["write"])        conn = -        conn -        |> assign(:user, user) -        |> post("/api/v1/pleroma/scrobble", %{ +        post(conn, "/api/v1/pleroma/scrobble", %{            "title" => "lain radio episode 1",            "artist" => "lain",            "album" => "lain radio", @@ -27,8 +24,8 @@ defmodule Pleroma.Web.PleromaAPI.ScrobbleControllerTest do    end    describe "GET /api/v1/pleroma/accounts/:id/scrobbles" do -    test "works correctly", %{conn: conn} do -      user = insert(:user) +    test "works correctly" do +      %{user: user, conn: conn} = oauth_access(["read"])        {:ok, _activity} =          CommonAPI.listen(user, %{ @@ -51,9 +48,7 @@ defmodule Pleroma.Web.PleromaAPI.ScrobbleControllerTest do            "album" => "lain radio"          }) -      conn = -        conn -        |> get("/api/v1/pleroma/accounts/#{user.id}/scrobbles") +      conn = get(conn, "/api/v1/pleroma/accounts/#{user.id}/scrobbles")        result = json_response(conn, 200) | 
