tracks/test/models/todos/undone_todos_query_test.rb

98 lines
3.4 KiB
Ruby
Raw Normal View History

require 'test_helper'
module Todos
class UndoneTodosQueryTest < ActiveSupport::TestCase
def test_requires_a_user
assert_raises(ArgumentError) { UndoneTodosQuery.new }
end
def test_default_query_is_all_active_not_hidden_todos
user = users(:other_user)
undone_todos = UndoneTodosQuery.new(user).query({})
expected = [todos(:package_delivered),
todos(:buy_tix),
todos(:pal_confirmation)]
assert_equal expected, undone_todos.to_a
end
def test_filtering_by_done
user = users(:other_user)
# This gets everything done from a week ago until now
undone_todos = UndoneTodosQuery.new(user).query(done: '7')
expected = [todos(:assemble_furniture)]
assert_equal expected, undone_todos.to_a
end
def test_limiting_results
user = users(:other_user)
undone_todos = UndoneTodosQuery.new(user).query(limit: '1')
expected = [todos(:package_delivered)]
assert_equal expected, undone_todos.to_a
end
def test_filtering_by_due_date
user = users(:other_user)
# FIXME normalize HashWithIndifferentHash usage
# Only gets todos that are due today or are past their due date.
undone_todos = UndoneTodosQuery.new(user).query(due: '0', 'due' => '0')
expected = [todos(:package_delivered)]
assert_equal expected, undone_todos.to_a
end
def test_filtering_by_tag
user = users(:other_user)
# FIXME normalize HashWithIndifferentHash usage
undone_todos = UndoneTodosQuery.new(user).query(tag: 'bar', "tag" => "bar")
expected = [todos(:package_delivered),
todos(:buy_tix)]
assert_equal expected, undone_todos.to_a
end
def test_filtering_by_context
user = users(:other_user)
# FIXME normalize HashWithIndifferentHash usage
undone_todos = UndoneTodosQuery.new(user).query(context_id: '11', 'context_id' => '11')
expected = [todos(:package_delivered),
todos(:pal_confirmation)]
assert_equal expected, undone_todos.to_a
end
def test_using_a_non_existant_context_raises_an_exception
user = users(:other_user)
# FIXME normalize HashWithIndifferentHash usage
assert_raises(ActiveRecord::RecordNotFound) do
undone_todos = UndoneTodosQuery.new(user).query(context_id: '110', 'context_id' => '110')
end
end
def test_filtering_by_project
user = users(:other_user)
# FIXME normalize HashWithIndifferentHash usage
undone_todos = UndoneTodosQuery.new(user).query(project_id: '5', 'project_id' => '5')
expected = [todos(:package_delivered)]
assert_equal expected, undone_todos.to_a
end
def test_using_a_non_existant_project_raises_an_exception
user = users(:other_user)
# FIXME normalize HashWithIndifferentHash usage
assert_raises(ActiveRecord::RecordNotFound) do
undone_todos = UndoneTodosQuery.new(user).query(project_id: '110', 'project_id' => '110')
end
end
def test_combination_of_all_params
user = users(:other_user)
# FIXME normalize HashWithIndifferentHash usage
undone_todos = UndoneTodosQuery.new(user).query({
limit: "1",
project_id: "5", "project_id" => "5",
context_id: "11", "context_id" => "11",
tag: "bar", "tag" => "bar",
due: "0", "due" => "0"})
expected = [todos(:package_delivered)]
assert_equal expected, undone_todos.to_a
end
end
end