############################################################################### # The contents of this file are subject to the Common Public Attribution # License Version 1.0. (the "License"); you may not use this file except in # compliance with the License. You may obtain a copy of the License at # https://raw.githubusercontent.com/udia-software/udia/master/LICENSE. # The License is based on the Mozilla Public License Version 1.1, but # Sections 14 and 15 have been added to cover use of software over a computer # network and provide for limited attribution for the Original Developer. # In addition, Exhibit A has been modified to be consistent with Exhibit B. # # Software distributed under the License is distributed on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for # the specific language governing rights and limitations under the License. # # The Original Code is UDIA. # # The Original Developer is the Initial Developer. The Initial Developer of # the Original Code is Udia Software Incorporated. # # All portions of the code written by UDIA are Copyright (c) 2016-2017 # Udia Software Incorporated. All Rights Reserved. ############################################################################### defmodule Udia.TestHelpers do alias Udia.Repo def insert_user(attrs \\ %{}) do changes = attrs |> Enum.into(%{ username: "user#{Base.encode16(:crypto.strong_rand_bytes(8))}", password: "supersecret", }) %Udia.Auths.User{} |> Udia.Auths.registration_changeset(changes) |> Repo.insert!() end def insert_post(user, attrs \\ %{}) do user |> Ecto.build_assoc(:posts, attrs) |> Repo.insert!() end def insert_comment(user, post, attrs) do user |> Ecto.build_assoc(:comments, post_id: post.id) |> Udia.Logs.comment_changeset(attrs) |> Repo.insert! end def insert_comment(attrs) do %Udia.Logs.Comment{} |> Udia.Logs.comment_changeset(attrs) |> Repo.insert! end def insert_vote(user, post, attrs) do user |> Ecto.build_assoc(:vote, post_id: post.id) |> Udia.Reactions.vote_changeset(attrs) |> Repo.insert! end end