[#6441] Hide and disable unassignable deliverables from the issue
* Hide - Closed deliverables * Hide - Closed contract deliverables * Disable - Locked deliverables * Disable - Locked contract deliverables
This commit is contained in:
+36
@@ -11,12 +11,19 @@ class RedmineContracts::Hooks::ViewIssuesBulkEditDetailsBottomHookTest < ActionC
|
||||
@issue3 = Issue.generate_for_project!(@project)
|
||||
@contract1 = Contract.generate!(:project => @project)
|
||||
@contract2 = Contract.generate!(:project => @project)
|
||||
@locked_contract = Contract.generate!(:project => @project, :status => 'locked')
|
||||
@closed_contract = Contract.generate!(:project => @project, :status => 'closed')
|
||||
|
||||
@manager = User.generate!(:login => 'manager', :password => 'existing', :password_confirmation => 'existing')
|
||||
@role = Role.generate!(:permissions => [:view_issues, :edit_issues])
|
||||
User.add_to_project(@manager, @project, @role)
|
||||
@deliverable1 = FixedDeliverable.generate!(:contract => @contract1, :manager => @manager, :title => 'The Title')
|
||||
@deliverable2 = FixedDeliverable.generate!(:contract => @contract2, :manager => @manager, :title => 'The Title')
|
||||
@locked_deliverable = FixedDeliverable.generate!(:contract => @contract1, :manager => @manager, :title => 'Locked Deliverable', :status => 'locked')
|
||||
@closed_deliverable = FixedDeliverable.generate!(:contract => @contract1, :manager => @manager, :title => 'Closed Deliverable', :status => 'closed')
|
||||
@deliverable1_on_locked_contract = FixedDeliverable.generate!(:contract => @locked_contract, :manager => @manager, :title => 'Deliverable 1 on locked contract')
|
||||
@deliverable2_on_locked_contract = FixedDeliverable.generate!(:contract => @locked_contract, :manager => @manager, :title => 'Deliverable 2 on locked contract')
|
||||
@deliverable_on_closed_contract = FixedDeliverable.generate!(:contract => @closed_contract, :manager => @manager, :title => 'Deliverable on closed contract')
|
||||
@issue.deliverable = @deliverable1
|
||||
|
||||
login_as('manager', 'existing')
|
||||
@@ -42,6 +49,35 @@ class RedmineContracts::Hooks::ViewIssuesBulkEditDetailsBottomHookTest < ActionC
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
should "disable all locked deliverables" do
|
||||
assert_select "select#deliverable_id" do
|
||||
assert_select "option[disabled=disabled]", :text => /#{@locked_deliverable.title}/
|
||||
end
|
||||
end
|
||||
|
||||
should "disable all deliverables on locked contracts" do
|
||||
assert_select "select#deliverable_id" do
|
||||
assert_select "optgroup[label=?]", @locked_contract.name do
|
||||
assert_select "option[disabled=disabled]", :text => /#{@deliverable1_on_locked_contract.title}/
|
||||
assert_select "option[disabled=disabled]", :text => /#{@deliverable2_on_locked_contract.title}/
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
should "not show closed deliverables" do
|
||||
assert_select "select#deliverable_id" do
|
||||
assert_select "option", :text => /#{@closed_deliverable.title}/, :count => 0
|
||||
end
|
||||
end
|
||||
|
||||
should "not show deliverables on closed contracts" do
|
||||
assert_select "select#deliverable_id" do
|
||||
assert_select "optgroup[label=?]", @closed_contract.name, :count => 0
|
||||
assert_select "option", :text => /#{@deliverable_on_closed_contract.title}/, :count => 0
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context "with no permission to Assign Deliverable" do
|
||||
|
||||
@@ -9,12 +9,19 @@ class RedmineContracts::Hooks::ViewIssuesFormDetailsBottomTest < ActionControlle
|
||||
@issue = Issue.generate_for_project!(@project)
|
||||
@contract1 = Contract.generate!(:project => @project)
|
||||
@contract2 = Contract.generate!(:project => @project)
|
||||
@locked_contract = Contract.generate!(:project => @project, :status => 'locked')
|
||||
@closed_contract = Contract.generate!(:project => @project, :status => 'closed')
|
||||
|
||||
@manager = User.generate!(:login => 'manager', :password => 'existing', :password_confirmation => 'existing')
|
||||
@role = Role.generate!(:permissions => [:view_issues, :edit_issues])
|
||||
User.add_to_project(@manager, @project, @role)
|
||||
@deliverable1 = FixedDeliverable.generate!(:contract => @contract1, :manager => @manager, :title => 'The Title')
|
||||
@deliverable2 = FixedDeliverable.generate!(:contract => @contract2, :manager => @manager, :title => 'The Title')
|
||||
@locked_deliverable = FixedDeliverable.generate!(:contract => @contract1, :manager => @manager, :title => 'Locked Deliverable', :status => 'locked')
|
||||
@closed_deliverable = FixedDeliverable.generate!(:contract => @contract1, :manager => @manager, :title => 'Closed Deliverable', :status => 'closed')
|
||||
@deliverable1_on_locked_contract = FixedDeliverable.generate!(:contract => @locked_contract, :manager => @manager, :title => 'Deliverable 1 on locked contract')
|
||||
@deliverable2_on_locked_contract = FixedDeliverable.generate!(:contract => @locked_contract, :manager => @manager, :title => 'Deliverable 2 on locked contract')
|
||||
@deliverable_on_closed_contract = FixedDeliverable.generate!(:contract => @closed_contract, :manager => @manager, :title => 'Deliverable on closed contract')
|
||||
@issue.deliverable = @deliverable1
|
||||
|
||||
login_as('manager', 'existing')
|
||||
@@ -39,6 +46,35 @@ class RedmineContracts::Hooks::ViewIssuesFormDetailsBottomTest < ActionControlle
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
should "disable all locked deliverables" do
|
||||
assert_select "select#issue_deliverable_id" do
|
||||
assert_select "option[disabled=disabled]", :text => /#{@locked_deliverable.title}/
|
||||
end
|
||||
end
|
||||
|
||||
should "disable all deliverables on locked contracts" do
|
||||
assert_select "select#issue_deliverable_id" do
|
||||
assert_select "optgroup[label=?]", @locked_contract.name do
|
||||
assert_select "option[disabled=disabled]", :text => /#{@deliverable1_on_locked_contract.title}/
|
||||
assert_select "option[disabled=disabled]", :text => /#{@deliverable2_on_locked_contract.title}/
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
should "not show closed deliverables" do
|
||||
assert_select "select#issue_deliverable_id" do
|
||||
assert_select "option", :text => /#{@closed_deliverable.title}/, :count => 0
|
||||
end
|
||||
end
|
||||
|
||||
should "not show deliverables on closed contracts" do
|
||||
assert_select "select#issue_deliverable_id" do
|
||||
assert_select "optgroup[label=?]", @closed_contract.name, :count => 0
|
||||
assert_select "option", :text => /#{@deliverable_on_closed_contract.title}/, :count => 0
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context "with no permission to Assign Deliverable" do
|
||||
|
||||
Reference in New Issue
Block a user