logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

compiler_test.exs (1559B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2023 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.Web.ApiSpec.Scopes.CompilerTest do
  5. use ExUnit.Case, async: true
  6. alias Pleroma.Web.ApiSpec.Scopes.Compiler
  7. @dummy_response %{}
  8. @data %{
  9. paths: %{
  10. "/mew" => %OpenApiSpex.PathItem{
  11. post: %OpenApiSpex.Operation{
  12. security: [%{"oAuth" => ["a:b:c"]}],
  13. responses: @dummy_response
  14. },
  15. get: %OpenApiSpex.Operation{security: nil, responses: @dummy_response}
  16. },
  17. "/mew2" => %OpenApiSpex.PathItem{
  18. post: %OpenApiSpex.Operation{
  19. security: [%{"oAuth" => ["d:e", "f:g"]}],
  20. responses: @dummy_response
  21. },
  22. get: %OpenApiSpex.Operation{security: nil, responses: @dummy_response}
  23. }
  24. }
  25. }
  26. describe "process_scope/1" do
  27. test "gives all higher-level scopes" do
  28. scopes = Compiler.process_scope("admin:read:accounts")
  29. assert [_, _, _] = scopes
  30. assert "admin" in scopes
  31. assert "admin:read" in scopes
  32. assert "admin:read:accounts" in scopes
  33. end
  34. end
  35. describe "extract_all_scopes_from/1" do
  36. test "extracts scopes" do
  37. scopes = Compiler.extract_all_scopes_from(@data)
  38. assert [_, _, _, _, _, _, _] = scopes
  39. assert "a" in scopes
  40. assert "a:b" in scopes
  41. assert "a:b:c" in scopes
  42. assert "d" in scopes
  43. assert "d:e" in scopes
  44. assert "f" in scopes
  45. assert "f:g" in scopes
  46. end
  47. end
  48. end