Skip to content

Commit

Permalink
Show correct related WorkPackage in the relation dialog
Browse files Browse the repository at this point in the history
  • Loading branch information
HDinger committed Nov 28, 2024
1 parent 3724f0c commit 0bdb3b3
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,13 @@ def initialize(work_package:, relation:, base_errors: nil)

def related_work_package
@related_work_package ||= @relation.to

# We cannot rely on the related WorkPackage being the "to", depending on the relation it can also be "from"
if @related_work_package.id == @work_package.id
@related_work_package = @relation.from
end

@related_work_package
end

def submit_url_options
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,29 @@ def label_for_relation_type(relation_type)
expect(page).to have_no_css("[data-test-selector='op-relation-row-#{child_wp.id}-edit-button']")
end
end

context "with the shown WorkPackage being the 'to' relation part" do
let(:another_wp) { create(:work_package, type: type2, subject: "related to main") }

let(:relation_to) do
create(:relation,
from: another_wp,
to: work_package,
relation_type: Relation::TYPE_FOLLOWS)
end

it "shows the correct related WorkPackage in the dialog (regression #59771)" do
scroll_to_element relations_panel

relations_tab.open_relation_dialog(relation_to)

within "##{WorkPackageRelationsTab::WorkPackageRelationDialogComponent::DIALOG_ID}" do
expect(page).to have_field("Work package",
readonly: true,
with: "#{another_wp.type.name.upcase} ##{another_wp.id} - #{another_wp.subject}")
end
end
end
end

describe "creating a relation" do
Expand Down
32 changes: 14 additions & 18 deletions spec/support/components/work_packages/relations.rb
Original file line number Diff line number Diff line change
Expand Up @@ -169,15 +169,7 @@ def add_relation(type:, relatable:, description: nil)
end

def add_description_to_relation(relatable, description)
actual_relatable = find_relatable(relatable)
relation_row = find_row(actual_relatable)

within relation_row do
page.find_test_selector("op-relation-row-#{actual_relatable.id}-action-menu").click
page.find_test_selector("op-relation-row-#{actual_relatable.id}-edit-button").click
end

wait_for_reload if using_cuprite?
open_relation_dialog(relatable)

within "##{WorkPackageRelationsTab::WorkPackageRelationDialogComponent::DIALOG_ID}" do
expect(page).to have_field("Work package", readonly: true)
Expand All @@ -192,15 +184,7 @@ def add_description_to_relation(relatable, description)
end

def edit_relation_description(relatable, description)
actual_relatable = find_relatable(relatable)
relation_row = find_row(actual_relatable)

within relation_row do
page.find_test_selector("op-relation-row-#{actual_relatable.id}-action-menu").click
page.find_test_selector("op-relation-row-#{actual_relatable.id}-edit-button").click
end

wait_for_reload if using_cuprite?
open_relation_dialog(relatable)

within "##{WorkPackageRelationsTab::WorkPackageRelationDialogComponent::DIALOG_ID}" do
expect(page).to have_field("Work package", readonly: true)
Expand All @@ -214,6 +198,18 @@ def edit_relation_description(relatable, description)
end
end

def open_relation_dialog(relatable)
actual_relatable = find_relatable(relatable)
relation_row = find_row(actual_relatable)

within relation_row do
page.find_test_selector("op-relation-row-#{actual_relatable.id}-action-menu").click
page.find_test_selector("op-relation-row-#{actual_relatable.id}-edit-button").click
end

wait_for_reload if using_cuprite?
end

def expect_relation(relatable)
find_row(relatable)
end
Expand Down

0 comments on commit 0bdb3b3

Please sign in to comment.