From b8502cbaeeb843f579221664289f3ff93be3df67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ho=CC=88ltje?= Date: Tue, 26 Mar 2013 10:19:55 -0400 Subject: [PATCH] Fixed UsersProject.in_projects I discovered while trying to use UserTeam#remove_member() that UsersProject.in_projects was broken. So I wrote test cases to test what I was trying to do and fixed the underlying problem. --- app/models/users_project.rb | 2 +- spec/models/user_team_spec.rb | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/models/users_project.rb b/app/models/users_project.rb index 8051c0604d9..c32edf38025 100644 --- a/app/models/users_project.rb +++ b/app/models/users_project.rb @@ -38,7 +38,7 @@ class UsersProject < ActiveRecord::Base scope :masters, -> { where(project_access: MASTER) } scope :in_project, ->(project) { where(project_id: project.id) } - scope :in_projects, ->(projects) { where(project_id: project_ids) } + scope :in_projects, ->(projects) { where(project_id: projects.map { |p| p.id }) } scope :with_user, ->(user) { where(user_id: user.id) } class << self diff --git a/spec/models/user_team_spec.rb b/spec/models/user_team_spec.rb index 6cc2003e97d..d330bbf3e33 100644 --- a/spec/models/user_team_spec.rb +++ b/spec/models/user_team_spec.rb @@ -14,5 +14,24 @@ require 'spec_helper' describe UserTeam do - pending "add some examples to (or delete) #{__FILE__}" + let(:team) { FactoryGirl.create :user_team } + + context ".add_member" do + let(:user) { FactoryGirl.create :user } + + it "should work" do + team.add_member(user, UsersProject::DEVELOPER, false) + team.members.should include(user) + end + end + + context ".remove_member" do + let(:user) { FactoryGirl.create :user } + before { team.add_member(user, UsersProject::DEVELOPER, false) } + + it "should work" do + team.remove_member(user) + team.members.should_not include(user) + end + end end