Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[59771] Some relations type do not pre-populate the right WP when relation is edited #17297

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,12 @@ def initialize(work_package:, relation:, base_errors: nil)
end

def related_work_package
@related_work_package ||= @relation.to
@related_work_package ||= begin
related = @relation.to
# We cannot rely on the related WorkPackage being the "to",
# depending on the relation it can also be "from"
related.id == @work_package.id ? @relation.from : related
end
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
Loading