diff --git a/app/models/work_package.rb b/app/models/work_package.rb index b80a5ef94274..bb8057560ed9 100644 --- a/app/models/work_package.rb +++ b/app/models/work_package.rb @@ -281,7 +281,7 @@ def to_s def infoline(show_standard_type: true) type_name = show_standard_type || !type.is_standard ? type.name : "" - "#{type_name}: #{subject} (##{id})" + "#{type_name}: #{subject} (#{formatted_id})" end # Return true if the work_package is closed, otherwise false diff --git a/spec/models/work_package_spec.rb b/spec/models/work_package_spec.rb index 9d5262b9a35d..e797d5075e05 100644 --- a/spec/models/work_package_spec.rb +++ b/spec/models/work_package_spec.rb @@ -915,4 +915,32 @@ def stub_shared_versions(version = nil) end end end + + describe "#infoline" do + let(:infoline_type) { create(:type, name: "Task") } + let(:infoline_work_package) do + create(:work_package, subject: "Hello world", project: infoline_project, type: infoline_type) + end + + context "when semantic mode is active", + with_flag: { semantic_work_package_ids: true }, + with_settings: { work_packages_identifier: "semantic" } do + let(:infoline_project) { create(:project, identifier: "MYPROJ") } + + before { infoline_work_package } + + it "renders the semantic identifier without a hash prefix" do + expect(infoline_work_package.reload.infoline).to eq("Task: Hello world (MYPROJ-1)") + end + end + + context "when semantic mode is not active", + with_flag: { semantic_work_package_ids: false } do + let(:infoline_project) { create(:project) } + + it "renders the hash-prefixed numeric id" do + expect(infoline_work_package.infoline).to eq("Task: Hello world (##{infoline_work_package.id})") + end + end + end end