Commit b8502cbaeeb843f579221664289f3ff93be3df67

Authored by Christian Höltje
1 parent 58a1ed6d

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
@@ -38,7 +38,7 @@ class UsersProject < ActiveRecord::Base @@ -38,7 +38,7 @@ class UsersProject < ActiveRecord::Base
38 scope :masters, -> { where(project_access: MASTER) } 38 scope :masters, -> { where(project_access: MASTER) }
39 39
40 scope :in_project, ->(project) { where(project_id: project.id) } 40 scope :in_project, ->(project) { where(project_id: project.id) }
41 - scope :in_projects, ->(projects) { where(project_id: project_ids) } 41 + scope :in_projects, ->(projects) { where(project_id: projects.map { |p| p.id }) }
42 scope :with_user, ->(user) { where(user_id: user.id) } 42 scope :with_user, ->(user) { where(user_id: user.id) }
43 43
44 class << self 44 class << self
spec/models/user_team_spec.rb
@@ -14,5 +14,24 @@ @@ -14,5 +14,24 @@
14 require 'spec_helper' 14 require 'spec_helper'
15 15
16 describe UserTeam do 16 describe UserTeam do
17 - pending "add some examples to (or delete) #{__FILE__}" 17 + let(:team) { FactoryGirl.create :user_team }
  18 +
  19 + context ".add_member" do
  20 + let(:user) { FactoryGirl.create :user }
  21 +
  22 + it "should work" do
  23 + team.add_member(user, UsersProject::DEVELOPER, false)
  24 + team.members.should include(user)
  25 + end
  26 + end
  27 +
  28 + context ".remove_member" do
  29 + let(:user) { FactoryGirl.create :user }
  30 + before { team.add_member(user, UsersProject::DEVELOPER, false) }
  31 +
  32 + it "should work" do
  33 + team.remove_member(user)
  34 + team.members.should_not include(user)
  35 + end
  36 + end
18 end 37 end