diff options
Diffstat (limited to 'spec/lib/sidebars/projects/menus/project_information_menu_spec.rb')
-rw-r--r-- | spec/lib/sidebars/projects/menus/project_information_menu_spec.rb | 59 |
1 files changed, 17 insertions, 42 deletions
diff --git a/spec/lib/sidebars/projects/menus/project_information_menu_spec.rb b/spec/lib/sidebars/projects/menus/project_information_menu_spec.rb index 748796bc7ee..7e8d0ab0518 100644 --- a/spec/lib/sidebars/projects/menus/project_information_menu_spec.rb +++ b/spec/lib/sidebars/projects/menus/project_information_menu_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe Sidebars::Projects::Menus::ProjectInformationMenu do - let_it_be(:project) { create(:project, :repository) } + let_it_be_with_reload(:project) { create(:project, :repository) } let(:user) { project.owner } let(:context) { Sidebars::Projects::Context.new(current_user: user, container: project) } @@ -12,59 +12,36 @@ RSpec.describe Sidebars::Projects::Menus::ProjectInformationMenu do subject { described_class.new(context).container_html_options } specify { is_expected.to match(hash_including(class: 'shortcuts-project-information has-sub-items')) } - - context 'when feature flag :sidebar_refactor is disabled' do - before do - stub_feature_flags(sidebar_refactor: false) - end - - specify { is_expected.to match(hash_including(class: 'shortcuts-project rspec-project-link has-sub-items')) } - end end describe 'Menu Items' do subject { described_class.new(context).renderable_items.index { |e| e.item_id == item_id } } - describe 'Releases' do - let(:item_id) { :releases } + describe 'Labels' do + let(:item_id) { :labels } - specify { is_expected.to be_nil } + specify { is_expected.not_to be_nil } - context 'when feature flag :sidebar_refactor is disabled' do + context 'when merge requests are disabled' do before do - stub_feature_flags(sidebar_refactor: false) + project.project_feature.update_attribute(:merge_requests_access_level, Featurable::DISABLED) end - context 'when project repository is empty' do - it 'does not include releases menu item' do - allow(project).to receive(:empty_repo?).and_return(true) + specify { is_expected.not_to be_nil } + end - is_expected.to be_nil - end + context 'when issues are disabled' do + before do + project.project_feature.update_attribute(:issues_access_level, Featurable::DISABLED) end - context 'when project repository is not empty' do - context 'when user can download code' do - specify { is_expected.not_to be_nil } - end - - context 'when user cannot download code' do - let(:user) { nil } - - specify { is_expected.to be_nil } - end - end + specify { is_expected.not_to be_nil } end - end - - describe 'Labels' do - let(:item_id) { :labels } - - specify { is_expected.not_to be_nil } - context 'when feature flag :sidebar_refactor is disabled' do + context 'when merge requests and issues are disabled' do before do - stub_feature_flags(sidebar_refactor: false) + project.project_feature.update_attribute(:merge_requests_access_level, Featurable::DISABLED) + project.project_feature.update_attribute(:issues_access_level, Featurable::DISABLED) end specify { is_expected.to be_nil } @@ -76,10 +53,8 @@ RSpec.describe Sidebars::Projects::Menus::ProjectInformationMenu do specify { is_expected.not_to be_nil } - context 'when feature flag :sidebar_refactor is disabled' do - before do - stub_feature_flags(sidebar_refactor: false) - end + describe 'when the user does not have access' do + let(:user) { nil } specify { is_expected.to be_nil } end |