require 'test_helper' class UserTest < ActiveSupport::TestCase def setup @user = users(:with_many_projects) end test "User#projects behaves the same as Project.projects_for_user" do # FIXME: Is the ordering important? If so, don't mask the different orders here! user_projects = @user.projects.pluck(:id).sort projects_for_user = Project.projects_for_user(@user.id).collect {|p| p.id}.sort assert_not_empty(user_projects) assert_equal(user_projects, projects_for_user) end test "empty filter term returns all projects" do projects = @user.projects filtered = @user.projects.filter('') assert_not_empty(projects) assert_equal(projects, filtered) end test "nil filter term returns all projects" do projects = @user.projects filtered = @user.projects.filter(nil) assert_not_empty(projects) assert_equal(projects, filtered) end test "valid filter term only returns matching records" do projects = @user.projects filtered = @user.projects.filter('DCC') assert_equal(filtered.count, 1) assert_not_equal(filtered, projects) assert_equal(projects(:test_plan_3), filtered.first) end end