From 7efaf8dbe2b50700b5bed538e5eeb3ad30e98aec Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Thu, 1 Jul 2010 15:06:24 -0700 Subject: [PATCH] [#4181] Only show project members as Deliverable managers. --- app/views/deliverables/_form.html.erb | 2 +- test/integration/deliverables_edit_test.rb | 2 ++ test/integration/deliverables_new_test.rb | 26 ++++++++++++++++++++++ test/test_helper.rb | 4 ++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/app/views/deliverables/_form.html.erb b/app/views/deliverables/_form.html.erb index 46ef996..99db133 100644 --- a/app/views/deliverables/_form.html.erb +++ b/app/views/deliverables/_form.html.erb @@ -1,7 +1,7 @@ <% form.inputs do %> <%= form.input :title, :required => true %> <%= form.input :type, :required => true, :as => :select, :collection => [["Fixed", "FixedDeliverable"]] %> - <%= form.input :manager, :required => true %> + <%= form.input :manager, :required => true, :collection => @project.users %> <%= form.input :start_date, :as => :string, :input_html => {:size => 10}, :hint => calendar_for('deliverable_start_date') %> <%= form.input :end_date, :as => :string, :input_html => {:size => 10}, :hint => calendar_for('deliverable_end_date') %> <%= form.input :notes, :input_html => {:class => 'wiki-edit', :rows => '5'} %> diff --git a/test/integration/deliverables_edit_test.rb b/test/integration/deliverables_edit_test.rb index 46c07da..9e82483 100644 --- a/test/integration/deliverables_edit_test.rb +++ b/test/integration/deliverables_edit_test.rb @@ -7,6 +7,8 @@ class DeliverablesEditTest < ActionController::IntegrationTest @project = Project.generate!(:identifier => 'main') @contract = Contract.generate!(:project => @project, :name => 'A Contract', :payment_terms => 'net_15') @manager = User.generate! + @role = Role.generate! + User.add_to_project(@manager, @project, @role) @deliverable = FixedDeliverable.generate!(:contract => @contract, :manager => @manager, :title => 'The Title') end diff --git a/test/integration/deliverables_new_test.rb b/test/integration/deliverables_new_test.rb index 5bdc453..4c90c76 100644 --- a/test/integration/deliverables_new_test.rb +++ b/test/integration/deliverables_new_test.rb @@ -17,8 +17,34 @@ class DeliverablesNewTest < ActionController::IntegrationTest assert_select "form#new_deliverable" end + should "show all members on the project as available managers" do + @member1 = User.generate!.reload + @member2 = User.generate!.reload + @member3 = User.generate!.reload + @nonmember1 = User.generate! + + @role = Role.generate! + User.add_to_project(@member1, @project, @role) + User.add_to_project(@member2, @project, @role) + User.add_to_project(@member3, @project, @role) + + visit_contract_page(@contract) + click_link 'Add New' + assert_response :success + + assert_select "select#deliverable_manager_id" do + assert_select "option", :text => @member1.to_s + assert_select "option", :text => @member2.to_s + assert_select "option", :text => @member3.to_s + end + + assert_select "select#deliverable_manager_id option", :text => @nonmember1.to_s, :count => 0 + end + should "create a new Fixed deliverable" do @manager = User.generate! + @role = Role.generate! + User.add_to_project(@manager, @project, @role) visit_contract_page(@contract) click_link 'Add New' diff --git a/test/test_helper.rb b/test/test_helper.rb index 419f9e0..38fcc4a 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -10,6 +10,10 @@ Webrat.configure do |config| config.mode = :rails end +def User.add_to_project(user, project, role) + Member.generate!(:principal => user, :project => project, :roles => [role]) +end + module IntegrationTestHelper def login_as(user="existing", password="existing") visit "/login"