[#4180] Add Hourly Deliverables.
This commit is contained in:
@@ -37,6 +37,7 @@ class ContractsShowTest < ActionController::IntegrationTest
|
||||
|
||||
@deliverable1 = FixedDeliverable.generate!(:contract => @contract, :manager => @manager)
|
||||
@deliverable2 = FixedDeliverable.generate!(:contract => @contract, :manager => @manager)
|
||||
@deliverable3 = HourlyDeliverable.generate!(:contract => @contract, :manager => @manager)
|
||||
visit_contract_page(@contract)
|
||||
|
||||
assert_select "table#deliverables" do
|
||||
@@ -46,6 +47,12 @@ class ContractsShowTest < ActionController::IntegrationTest
|
||||
assert_select "td.title", :text => /#{deliverable.title}/
|
||||
assert_select "td.manager", :text => /#{deliverable.manager.name}/
|
||||
end
|
||||
[@deliverable3].each do |deliverable|
|
||||
assert_select "td.end-date", :text => /#{format_date(deliverable.end_date)}/
|
||||
assert_select "td.type", :text => "H"
|
||||
assert_select "td.title", :text => /#{deliverable.title}/
|
||||
assert_select "td.manager", :text => /#{deliverable.manager.name}/
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -9,17 +9,19 @@ class DeliverablesEditTest < ActionController::IntegrationTest
|
||||
@manager = User.generate!
|
||||
@role = Role.generate!
|
||||
User.add_to_project(@manager, @project, @role)
|
||||
@deliverable = FixedDeliverable.generate!(:contract => @contract, :manager => @manager, :title => 'The Title')
|
||||
@fixed_deliverable = FixedDeliverable.generate!(:contract => @contract, :manager => @manager, :title => 'The Title')
|
||||
@hourly_deliverable = HourlyDeliverable.generate!(:contract => @contract, :manager => @manager, :title => 'An Hourly')
|
||||
|
||||
end
|
||||
|
||||
should "allow any user to edit the deliverable" do
|
||||
should "allow any user to edit the Fixed deliverable" do
|
||||
visit_contract_page(@contract)
|
||||
click_link_within "#fixed_deliverable_#{@deliverable.id}", 'Edit'
|
||||
click_link_within "#fixed_deliverable_#{@fixed_deliverable.id}", 'Edit'
|
||||
assert_response :success
|
||||
assert_template 'deliverables/edit'
|
||||
|
||||
assert_select "form#edit_fixed_deliverable_#{@deliverable.id}" do
|
||||
assert_select "input#fixed_deliverable_title[value=?]", /#{@deliverable.title}/
|
||||
assert_select "form#edit_fixed_deliverable_#{@fixed_deliverable.id}" do
|
||||
assert_select "input#fixed_deliverable_title[value=?]", /#{@fixed_deliverable.title}/
|
||||
assert_select "select#fixed_deliverable_type" do
|
||||
assert_select "option[selected=selected][value=FixedDeliverable]"
|
||||
end
|
||||
@@ -33,9 +35,38 @@ class DeliverablesEditTest < ActionController::IntegrationTest
|
||||
assert_response :success
|
||||
assert_template 'contracts/show'
|
||||
|
||||
assert_equal "An updated title", @deliverable.reload.title
|
||||
assert @deliverable.reload.warranty_sign_off?
|
||||
assert @deliverable.reload.feature_sign_off?
|
||||
assert_equal "An updated title", @fixed_deliverable.reload.title
|
||||
assert_equal "FixedDeliverable", @fixed_deliverable.reload.type
|
||||
assert @fixed_deliverable.reload.warranty_sign_off?
|
||||
assert @fixed_deliverable.reload.feature_sign_off?
|
||||
|
||||
end
|
||||
|
||||
should "allow any user to edit the Hourly deliverable" do
|
||||
visit_contract_page(@contract)
|
||||
click_link_within "#hourly_deliverable_#{@hourly_deliverable.id}", 'Edit'
|
||||
assert_response :success
|
||||
assert_template 'deliverables/edit'
|
||||
|
||||
assert_select "form#edit_hourly_deliverable_#{@hourly_deliverable.id}" do
|
||||
assert_select "input#hourly_deliverable_title[value=?]", /#{@hourly_deliverable.title}/
|
||||
assert_select "select#hourly_deliverable_type" do
|
||||
assert_select "option[selected=selected][value=HourlyDeliverable]"
|
||||
end
|
||||
end
|
||||
|
||||
fill_in "Title", :with => 'An updated title'
|
||||
check "Feature Sign Off"
|
||||
check "Warranty Sign Off"
|
||||
click_button "Save"
|
||||
|
||||
assert_response :success
|
||||
assert_template 'contracts/show'
|
||||
|
||||
assert_equal "An updated title", @hourly_deliverable.reload.title
|
||||
assert_equal "HourlyDeliverable", @hourly_deliverable.reload.type
|
||||
assert @hourly_deliverable.reload.warranty_sign_off?
|
||||
assert @hourly_deliverable.reload.feature_sign_off?
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -72,4 +72,35 @@ class DeliverablesNewTest < ActionController::IntegrationTest
|
||||
assert_equal @manager, @deliverable.manager
|
||||
assert_equal 1000.0, @deliverable.total.to_f
|
||||
end
|
||||
|
||||
should "create a new Hourly deliverable" do
|
||||
@manager = User.generate!
|
||||
@role = Role.generate!
|
||||
User.add_to_project(@manager, @project, @role)
|
||||
|
||||
visit_contract_page(@contract)
|
||||
click_link 'Add New'
|
||||
assert_response :success
|
||||
|
||||
fill_in "Title", :with => 'A New Deliverable'
|
||||
select "Hourly", :from => "Type"
|
||||
select @manager.name, :from => "Manager"
|
||||
fill_in "Start", :with => '2010-01-01'
|
||||
fill_in "End Date", :with => '2010-12-31'
|
||||
fill_in "Notes", :with => 'Some notes on the deliverable'
|
||||
|
||||
click_button "Save"
|
||||
|
||||
assert_response :success
|
||||
assert_template 'contracts/show'
|
||||
|
||||
@deliverable = Deliverable.last
|
||||
assert_equal "A New Deliverable", @deliverable.title
|
||||
assert_equal @contract, @deliverable.contract
|
||||
assert_equal "HourlyDeliverable", @deliverable.type
|
||||
assert_equal '2010-01-01', @deliverable.start_date.to_s
|
||||
assert_equal '2010-12-31', @deliverable.end_date.to_s
|
||||
assert_equal @manager, @deliverable.manager
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user