Merge remote-tracking branch 'pleroma/develop' into feature/disable-account
[akkoma] / test / tasks / instance.exs
1 defmodule Pleroma.InstanceTest do
2 use ExUnit.Case, async: true
3
4 setup do
5 File.mkdir_p!(tmp_path())
6 on_exit(fn -> File.rm_rf(tmp_path()) end)
7 :ok
8 end
9
10 defp tmp_path do
11 "/tmp/generated_files/"
12 end
13
14 test "running gen" do
15 mix_task = fn ->
16 Mix.Tasks.Pleroma.Instance.run([
17 "gen",
18 "--output",
19 tmp_path() <> "generated_config.exs",
20 "--output-psql",
21 tmp_path() <> "setup.psql",
22 "--domain",
23 "test.pleroma.social",
24 "--instance-name",
25 "Pleroma",
26 "--admin-email",
27 "admin@example.com",
28 "--notify-email",
29 "notify@example.com",
30 "--dbhost",
31 "dbhost",
32 "--dbname",
33 "dbname",
34 "--dbuser",
35 "dbuser",
36 "--dbpass",
37 "dbpass",
38 "--indexable",
39 "y"
40 ])
41 end
42
43 ExUnit.CaptureIO.capture_io(fn ->
44 mix_task.()
45 end)
46
47 generated_config = File.read!(tmp_path() <> "generated_config.exs")
48 assert generated_config =~ "host: \"test.pleroma.social\""
49 assert generated_config =~ "name: \"Pleroma\""
50 assert generated_config =~ "email: \"admin@example.com\""
51 assert generated_config =~ "notify_email: \"notify@example.com\""
52 assert generated_config =~ "hostname: \"dbhost\""
53 assert generated_config =~ "database: \"dbname\""
54 assert generated_config =~ "username: \"dbuser\""
55 assert generated_config =~ "password: \"dbpass\""
56 assert File.read!(tmp_path() <> "setup.psql") == generated_setup_psql()
57 end
58
59 defp generated_setup_psql do
60 ~s(CREATE USER dbuser WITH ENCRYPTED PASSWORD 'dbpass';\nCREATE DATABASE dbname OWNER dbuser;\n\\c dbname;\n--Extensions made by ecto.migrate that need superuser access\nCREATE EXTENSION IF NOT EXISTS citext;\nCREATE EXTENSION IF NOT EXISTS pg_trgm;\nCREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";\n)
61 end
62 end