diff options
Diffstat (limited to 'spec/policies/group_policy_spec.rb')
-rw-r--r-- | spec/policies/group_policy_spec.rb | 65 |
1 files changed, 63 insertions, 2 deletions
diff --git a/spec/policies/group_policy_spec.rb b/spec/policies/group_policy_spec.rb index 6b17a8285a2..733cc9bd9cb 100644 --- a/spec/policies/group_policy_spec.rb +++ b/spec/policies/group_policy_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe GroupPolicy do +RSpec.describe GroupPolicy do include_context 'GroupPolicy context' context 'public group with no user' do @@ -154,7 +154,7 @@ describe GroupPolicy do context 'admin' do let(:current_user) { admin } - it do + specify do expect_allowed(*read_group_permissions) expect_allowed(*guest_permissions) expect_allowed(*reporter_permissions) @@ -162,6 +162,10 @@ describe GroupPolicy do expect_allowed(*maintainer_permissions) expect_allowed(*owner_permissions) end + + context 'with admin mode', :enable_admin_mode do + specify { expect_allowed(*admin_permissions) } + end end describe 'private nested group use the highest access level from the group and inherited permissions' do @@ -661,4 +665,61 @@ describe GroupPolicy do end end end + + describe 'design activity' do + let_it_be(:group) { create(:group, :public) } + let(:current_user) { nil } + + subject { described_class.new(current_user, group) } + + context 'when design management is not available' do + it { is_expected.not_to be_allowed(:read_design_activity) } + + context 'even when there are projects in the group' do + before do + create_list(:project_group_link, 2, group: group) + end + + it { is_expected.not_to be_allowed(:read_design_activity) } + end + end + + context 'when design management is available globally' do + include DesignManagementTestHelpers + + before do + enable_design_management + end + + context 'the group has no projects' do + it { is_expected.not_to be_allowed(:read_design_activity) } + end + + context 'the group has a project' do + let(:project) { create(:project, :public) } + + before do + create(:project_group_link, project: project, group: group) + end + + it { is_expected.to be_allowed(:read_design_activity) } + + context 'which does not have design management enabled' do + before do + project.update(lfs_enabled: false) + end + + it { is_expected.not_to be_allowed(:read_design_activity) } + + context 'but another project does' do + before do + create(:project_group_link, project: create(:project, :public), group: group) + end + + it { is_expected.to be_allowed(:read_design_activity) } + end + end + end + end + end end |