diff options
Diffstat (limited to 'spec/policies/work_item_policy_spec.rb')
-rw-r--r-- | spec/policies/work_item_policy_spec.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/policies/work_item_policy_spec.rb b/spec/policies/work_item_policy_spec.rb index 9cfc4455979..f8ec7d9f9bc 100644 --- a/spec/policies/work_item_policy_spec.rb +++ b/spec/policies/work_item_policy_spec.rb @@ -131,4 +131,33 @@ RSpec.describe WorkItemPolicy do end end end + + describe 'admin_parent_link' do + context 'when user is reporter' do + let(:current_user) { reporter } + + it { is_expected.to be_allowed(:admin_parent_link) } + end + + context 'when user is guest' do + let(:current_user) { guest } + + it { is_expected.to be_disallowed(:admin_parent_link) } + + context 'when guest authored the work item' do + let(:work_item_subject) { authored_work_item } + let(:current_user) { guest_author } + + it { is_expected.to be_disallowed(:admin_parent_link) } + end + + context 'when guest is assigned to the work item' do + before do + work_item.assignees = [guest] + end + + it { is_expected.to be_disallowed(:admin_parent_link) } + end + end + end end |