summaryrefslogtreecommitdiff
path: root/test/support/builders/user_builder.ex
blob: d6af30612cf81bcc42b4e01468ee81d9dc9038d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.Builders.UserBuilder do
  alias Pleroma.Repo
  alias Pleroma.User

  def build(data \\ %{}) do
    user = %User{
      email: "test@example.org",
      name: "Test Name",
      nickname: "testname",
      password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt("test"),
      bio: "A tester.",
      ap_id: "some id",
      last_digest_emailed_at: NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second),
      multi_factor_authentication_settings: %Pleroma.MFA.Settings{},
      notification_settings: %Pleroma.User.NotificationSetting{}
    }

    Map.merge(user, data)
  end

  def insert(data \\ %{}) do
    {:ok, user} = Repo.insert(build(data))
    User.invalidate_cache(user)
    {:ok, user}
  end
end