diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2017-03-08 20:36:22 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2017-03-08 20:36:22 +0000 |
commit | 9c6ba6653981b9ae921d1ca115946bc1fc39d3af (patch) | |
tree | 2895500b838daa7079c3744bf56ceafc10ea1b90 | |
parent | 109d6de0c53dcf2d77d9daea8ab50947507f6ca2 (diff) | |
download | redmine-9c6ba6653981b9ae921d1ca115946bc1fc39d3af.tar.gz redmine-9c6ba6653981b9ae921d1ca115946bc1fc39d3af.zip |
Adds a test for #25289.
git-svn-id: http://svn.redmine.org/redmine/trunk@16382 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/models/member.rb | 3 | ||||
-rw-r--r-- | test/unit/member_test.rb | 11 |
2 files changed, 13 insertions, 1 deletions
diff --git a/app/models/member.rb b/app/models/member.rb index b19f78c6b..61cec0d79 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -172,7 +172,8 @@ class Member < ActiveRecord::Base end end - # Creates memberships for principal with the attributes + # Creates memberships for principal with the attributes, or add the roles + # if the membership already exists. # * project_ids : one or more project ids # * role_ids : ids of the roles to give to each membership # diff --git a/test/unit/member_test.rb b/test/unit/member_test.rb index ce9898f4b..344aec7b9 100644 --- a/test/unit/member_test.rb +++ b/test/unit/member_test.rb @@ -196,4 +196,15 @@ class MemberTest < ActiveSupport::TestCase member.roles << Role.generate!(:all_roles_managed => true) assert_equal [], member.managed_roles end + + def test_create_principal_memberships_should_not_error_with_2_projects_and_inheritance + parent = Project.generate! + child = Project.generate!(:parent_id => parent.id, :inherit_members => true) + user = User.generate! + + assert_difference 'Member.count', 2 do + members = Member.create_principal_memberships(user, :project_ids => [parent.id, child.id], :role_ids => [1]) + assert members.none?(&:new_record?), "Unsaved members were returned: #{members.select(&:new_record?).map{|m| m.errors.full_messages}*","}" + end + end end |