diff options
| author | Egor Kislitsyn <egor@kislitsyn.com> | 2020-04-20 20:37:56 +0400 | 
|---|---|---|
| committer | Egor Kislitsyn <egor@kislitsyn.com> | 2020-04-20 20:37:56 +0400 | 
| commit | 364eecc49f137ae3c7798ad240983591e27b134c (patch) | |
| tree | 7ed228221db9794b0aae59fa0e548623c0aa12ae /test/tasks | |
| parent | dc8fa04192cc133749e762b78ec043e0902d046d (diff) | |
| parent | 28165dad3ac02a6d3ba4b0cda51992a1831515dd (diff) | |
| download | pleroma-364eecc49f137ae3c7798ad240983591e27b134c.tar.gz pleroma-364eecc49f137ae3c7798ad240983591e27b134c.zip | |
Merge branch 'develop' into global-status-expiration
Diffstat (limited to 'test/tasks')
| -rw-r--r-- | test/tasks/app_test.exs | 65 | 
1 files changed, 65 insertions, 0 deletions
| diff --git a/test/tasks/app_test.exs b/test/tasks/app_test.exs new file mode 100644 index 000000000..b8f03566d --- /dev/null +++ b/test/tasks/app_test.exs @@ -0,0 +1,65 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Mix.Tasks.Pleroma.AppTest do +  use Pleroma.DataCase, async: true + +  setup_all do +    Mix.shell(Mix.Shell.Process) + +    on_exit(fn -> +      Mix.shell(Mix.Shell.IO) +    end) +  end + +  describe "creates new app" do +    test "with default scopes" do +      name = "Some name" +      redirect = "https://example.com" +      Mix.Tasks.Pleroma.App.run(["create", "-n", name, "-r", redirect]) + +      assert_app(name, redirect, ["read", "write", "follow", "push"]) +    end + +    test "with custom scopes" do +      name = "Another name" +      redirect = "https://example.com" + +      Mix.Tasks.Pleroma.App.run([ +        "create", +        "-n", +        name, +        "-r", +        redirect, +        "-s", +        "read,write,follow,push,admin" +      ]) + +      assert_app(name, redirect, ["read", "write", "follow", "push", "admin"]) +    end +  end + +  test "with errors" do +    Mix.Tasks.Pleroma.App.run(["create"]) +    {:mix_shell, :error, ["Creating failed:"]} +    {:mix_shell, :error, ["name: can't be blank"]} +    {:mix_shell, :error, ["redirect_uris: can't be blank"]} +  end + +  defp assert_app(name, redirect, scopes) do +    app = Repo.get_by(Pleroma.Web.OAuth.App, client_name: name) + +    assert_received {:mix_shell, :info, [message]} +    assert message == "#{name} successfully created:" + +    assert_received {:mix_shell, :info, [message]} +    assert message == "App client_id: #{app.client_id}" + +    assert_received {:mix_shell, :info, [message]} +    assert message == "App client_secret: #{app.client_secret}" + +    assert app.scopes == scopes +    assert app.redirect_uris == redirect +  end +end | 
