From 1bd1ae219d754ea3fc9f996c255b3f9f658f68c6 Mon Sep 17 00:00:00 2001 From: Tobias Dillmann Date: Wed, 23 Oct 2024 14:44:37 +0200 Subject: [PATCH] set accountable spec --- .../work_packages/edit_work_package_spec.rb | 70 +++++++++++-------- 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/spec/features/work_packages/edit_work_package_spec.rb b/spec/features/work_packages/edit_work_package_spec.rb index d5eada94fe77..b65a43c705fb 100644 --- a/spec/features/work_packages/edit_work_package_spec.rb +++ b/spec/features/work_packages/edit_work_package_spec.rb @@ -265,25 +265,29 @@ def visit! end context "when using the user auto completer" do - let(:dev_role) do - create(:project_role, - permissions: %i[view_work_packages - edit_work_packages - work_package_assigned]) - end + RSpec.shared_examples "without permission" do |field_name| + it "does not show you the email of other users" do + wp_page.open_user_auto_completer(field_name) + options = wp_page.visible_user_auto_completer_options - let(:logged_in_user) { dev } + expected_options = [ + { name: manager.name, email: nil }, # Manager's email should not be visible + { name: dev.name, email: dev.mail } # Developer's email should be visible + ] - context "when assigning" do - it "does not show you the email of other users" do - # Click on assignee - wp_page.open_user_auto_completer + expect(options).to eq(expected_options) + end + end + + RSpec.shared_examples "with permission" do |field_name| + it "does show you the email of other users" do + wp_page.open_user_auto_completer(field_name) options = wp_page.visible_user_auto_completer_options expected_options = [ - # The current user lacks permission to see other users email address + # With the right permissions, you can see other users email address { name: manager.name, - email: nil }, + email: manager.mail }, # The current user can always see their own email { name: dev.name, email: dev.mail } @@ -293,6 +297,23 @@ def visit! end end + let(:dev_role) do + create(:project_role, + permissions: %i[view_work_packages + edit_work_packages + work_package_assigned]) + end + + let(:logged_in_user) { dev } + + context "when assigning people to a work package" do + include_examples "without permission", "assignee" + end + + context "when setting accountable person for a work package" do + include_examples "without permission", "responsible" + end + context "with permission to see emails" do let(:dev_role) do create(:project_role, @@ -302,23 +323,12 @@ def visit! work_package_assigned]) end - context "when assigning" do - it "does show you the email of other users" do - # Click on assignee - wp_page.open_user_auto_completer - options = wp_page.visible_user_auto_completer_options - - expected_options = [ - # With the right permissions, you can see other users email address - { name: manager.name, - email: manager.mail }, - # The current user can always see their own email - { name: dev.name, - email: dev.mail } - ] - - expect(options).to eq(expected_options) - end + context "when assigning people to a work package" do + include_examples "with permission", "assignee" + end + + context "when setting accountable person for a work package" do + include_examples "with permission", "responsible" end end end