Packages
A web application in pursuit of meaning in life.
Retired package: Complete rewrite, scratch old versions
Current section
Files
Jump to
Current section
Files
test/reactions_test.exs
###############################################################################
# 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.ReactionsTest do
use Udia.DataCase
alias Udia.Reactions.Vote
setup do
user = insert_user(username: "seto")
post = insert_post(user, %{content: "some content", title: "some title"})
{:ok, user: user, post: post}
end
test "vote_changeset/2 return a vote changeset" do
assert %Ecto.Changeset{} = Reactions.vote_changeset(%Vote{}, %{vote: 1})
end
test "get_vote/2 return only vote assoc with user and post", %{user: user, post: post} do
vote =
user
|> build_assoc(:vote, post_id: post.id)
|> Reactions.vote_changeset(%{vote: -1})
|> Repo.insert!
assert vote == Reactions.get_vote(user.id, post.id)
end
test "get_point/1 return the point for post", %{user: user, post: post} do
vote =
user
|> build_assoc(:vote, post_id: post.id)
|> Reactions.vote_changeset(%{vote: 1})
|> Repo.insert!
assert Reactions.get_point(post.id) == [vote.vote]
end
end