diff options
Diffstat (limited to 'spec/lib/sidebars')
14 files changed, 31 insertions, 122 deletions
diff --git a/spec/lib/sidebars/concerns/container_with_html_options_spec.rb b/spec/lib/sidebars/concerns/container_with_html_options_spec.rb index 588e89a80f7..6adbfce3087 100644 --- a/spec/lib/sidebars/concerns/container_with_html_options_spec.rb +++ b/spec/lib/sidebars/concerns/container_with_html_options_spec.rb @@ -18,10 +18,4 @@ RSpec.describe Sidebars::Concerns::ContainerWithHtmlOptions, feature_category: : expect(subject.container_html_options).to eq(aria: { label: 'Foo' }) end end - - describe '#collapsed_container_html_options' do - it 'includes by default aria-label attribute' do - expect(subject.collapsed_container_html_options).to eq(aria: { label: 'Foo' }) - end - end end diff --git a/spec/lib/sidebars/explore/menus/catalog_menu_spec.rb b/spec/lib/sidebars/explore/menus/catalog_menu_spec.rb index 2c4c4c48eae..543f9b26a66 100644 --- a/spec/lib/sidebars/explore/menus/catalog_menu_spec.rb +++ b/spec/lib/sidebars/explore/menus/catalog_menu_spec.rb @@ -10,31 +10,19 @@ RSpec.describe Sidebars::Explore::Menus::CatalogMenu, feature_category: :navigat subject { described_class.new(context) } - context 'when `global_ci_catalog` is enabled`' do - it 'renders' do - expect(subject.render?).to be(true) - end - - it 'renders the correct link' do - expect(subject.link).to match "explore/catalog" - end - - it 'renders the correct title' do - expect(subject.title).to eq "CI/CD Catalog" - end - - it 'renders the correct icon' do - expect(subject.sprite_icon).to eq "catalog-checkmark" - end + it 'renders' do + expect(subject.render?).to be(true) end - context 'when `global_ci_catalog` FF is disabled' do - before do - stub_feature_flags(global_ci_catalog: false) - end + it 'renders the correct link' do + expect(subject.link).to match "explore/catalog" + end + + it 'renders the correct title' do + expect(subject.title).to eq "CI/CD Catalog" + end - it 'does not render' do - expect(subject.render?).to be(false) - end + it 'renders the correct icon' do + expect(subject.sprite_icon).to eq "catalog-checkmark" end end diff --git a/spec/lib/sidebars/groups/menus/scope_menu_spec.rb b/spec/lib/sidebars/groups/menus/scope_menu_spec.rb index 2cce2d28e68..00083fcfbf1 100644 --- a/spec/lib/sidebars/groups/menus/scope_menu_spec.rb +++ b/spec/lib/sidebars/groups/menus/scope_menu_spec.rb @@ -8,12 +8,6 @@ RSpec.describe Sidebars::Groups::Menus::ScopeMenu, feature_category: :navigation let(:context) { Sidebars::Groups::Context.new(current_user: user, container: group) } let(:menu) { described_class.new(context) } - describe '#extra_nav_link_html_options' do - subject { menu.extra_nav_link_html_options } - - specify { is_expected.to match(hash_including(class: 'context-header has-tooltip', title: context.group.name)) } - end - it_behaves_like 'serializable as super_sidebar_menu_args' do let(:extra_attrs) do { diff --git a/spec/lib/sidebars/groups/super_sidebar_menus/analyze_menu_spec.rb b/spec/lib/sidebars/groups/super_sidebar_menus/analyze_menu_spec.rb index cc2809df85f..0ff9bbebdc3 100644 --- a/spec/lib/sidebars/groups/super_sidebar_menus/analyze_menu_spec.rb +++ b/spec/lib/sidebars/groups/super_sidebar_menus/analyze_menu_spec.rb @@ -16,7 +16,6 @@ RSpec.describe Sidebars::Groups::SuperSidebarMenus::AnalyzeMenu, feature_categor expect(items.map(&:class).uniq).to eq([Sidebars::NilMenuItem]) expect(items.map(&:item_id)).to eq([ :analytics_dashboards, - :dashboards_analytics, :cycle_analytics, :ci_cd_analytics, :contribution_analytics, diff --git a/spec/lib/sidebars/organizations/menus/manage_menu_spec.rb b/spec/lib/sidebars/organizations/menus/manage_menu_spec.rb index 87346176a4c..7f1dab6a8b4 100644 --- a/spec/lib/sidebars/organizations/menus/manage_menu_spec.rb +++ b/spec/lib/sidebars/organizations/menus/manage_menu_spec.rb @@ -7,17 +7,15 @@ RSpec.describe Sidebars::Organizations::Menus::ManageMenu, feature_category: :na let_it_be(:user) { build(:user) } let_it_be(:context) { Sidebars::Context.new(current_user: user, container: organization) } - let(:items) { subject.instance_variable_get(:@items) } - - subject { described_class.new(context) } + subject(:menu) { described_class.new(context) } it 'has title and sprite_icon' do - expect(subject.title).to eq(s_("Navigation|Manage")) - expect(subject.sprite_icon).to eq("users") + expect(menu.title).to eq(s_("Navigation|Manage")) + expect(menu.sprite_icon).to eq("users") end describe 'Menu items' do - subject { described_class.new(context).renderable_items.find { |e| e.item_id == item_id } } + subject(:item) { menu.renderable_items.find { |e| e.item_id == item_id } } describe 'Groups and projects' do let(:item_id) { :organization_groups_and_projects } @@ -28,7 +26,15 @@ RSpec.describe Sidebars::Organizations::Menus::ManageMenu, feature_category: :na describe 'Users' do let(:item_id) { :organization_users } - it { is_expected.not_to be_nil } + context 'when current user has permissions' do + let_it_be(:organization_user) { create(:organization_user, user: user, organization: organization) } # rubocop: disable RSpec/FactoryBot/AvoidCreate -- does not work with build_stubbed + + it { is_expected.not_to be_nil } + end + + context 'when current user does not have permissions' do + it { is_expected.to be_nil } + end end end end diff --git a/spec/lib/sidebars/projects/menus/repository_menu_spec.rb b/spec/lib/sidebars/projects/menus/repository_menu_spec.rb index 1aa0ea30d0a..b29427d68dd 100644 --- a/spec/lib/sidebars/projects/menus/repository_menu_spec.rb +++ b/spec/lib/sidebars/projects/menus/repository_menu_spec.rb @@ -112,7 +112,7 @@ RSpec.describe Sidebars::Projects::Menus::RepositoryMenu, feature_category: :sou end end - describe 'Contributor statistics' do + describe 'Contributor analytics' do let_it_be(:item_id) { :contributors } context 'when analytics is disabled' do diff --git a/spec/lib/sidebars/projects/menus/scope_menu_spec.rb b/spec/lib/sidebars/projects/menus/scope_menu_spec.rb index 108a98e28a4..fb1ec94dfe8 100644 --- a/spec/lib/sidebars/projects/menus/scope_menu_spec.rb +++ b/spec/lib/sidebars/projects/menus/scope_menu_spec.rb @@ -25,10 +25,4 @@ RSpec.describe Sidebars::Projects::Menus::ScopeMenu, feature_category: :navigati specify { is_expected.to match(hash_including(class: 'shortcuts-project')) } end - - describe '#extra_nav_link_html_options' do - subject { described_class.new(context).extra_nav_link_html_options } - - specify { is_expected.to match(hash_including(class: 'context-header has-tooltip', title: context.project.name)) } - end end diff --git a/spec/lib/sidebars/projects/menus/shimo_menu_spec.rb b/spec/lib/sidebars/projects/menus/shimo_menu_spec.rb deleted file mode 100644 index e74647894fa..00000000000 --- a/spec/lib/sidebars/projects/menus/shimo_menu_spec.rb +++ /dev/null @@ -1,44 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe Sidebars::Projects::Menus::ShimoMenu do - let_it_be_with_reload(:project) { create(:project) } - - let(:context) { Sidebars::Projects::Context.new(current_user: project.first_owner, container: project) } - - subject(:shimo_menu) { described_class.new(context) } - - describe '#render?' do - context 'without a valid Shimo integration' do - it "doesn't render the menu" do - expect(shimo_menu.render?).to be_falsey - end - end - - context 'with a valid Shimo integration' do - let_it_be_with_reload(:shimo_integration) { create(:shimo_integration, project: project) } - - context 'when integration is active' do - it 'renders the menu' do - expect(shimo_menu.render?).to eq true - end - - it 'renders menu link' do - expected_url = Rails.application.routes.url_helpers.project_integrations_shimo_path(project) - expect(shimo_menu.link).to eq expected_url - end - end - - context 'when integration is inactive' do - before do - shimo_integration.update!(active: false) - end - - it "doesn't render the menu" do - expect(shimo_menu.render?).to eq false - end - end - end - end -end diff --git a/spec/lib/sidebars/projects/panel_spec.rb b/spec/lib/sidebars/projects/panel_spec.rb index ec1df438cf1..b6ff1acc176 100644 --- a/spec/lib/sidebars/projects/panel_spec.rb +++ b/spec/lib/sidebars/projects/panel_spec.rb @@ -30,28 +30,6 @@ RSpec.describe Sidebars::Projects::Panel, feature_category: :navigation do expect(subject.index { |i| i.is_a?(Sidebars::Projects::Menus::WikiMenu) }).to be_nil end end - - context 'shimo only' do - let_it_be(:shimo) { create(:shimo_integration, active: true) } - - let(:project) { shimo.project } - - it 'contains Shimo menu item' do - expect(subject.index { |i| i.is_a?(Sidebars::Projects::Menus::ShimoMenu) }).not_to be_nil - end - end - - context 'confluence & shimo' do - let_it_be(:confluence) { create(:confluence_integration, active: true) } - let_it_be(:shimo) { create(:shimo_integration, active: true) } - - let(:project) { confluence.project } - - it 'contains Confluence menu item, not Shimo' do - expect(subject.index { |i| i.is_a?(Sidebars::Projects::Menus::ConfluenceMenu) }).not_to be_nil - expect(subject.index { |i| i.is_a?(Sidebars::Projects::Menus::ShimoMenu) }).to be_nil - end - end end context 'when integration is not present' do diff --git a/spec/lib/sidebars/user_settings/menus/access_tokens_menu_spec.rb b/spec/lib/sidebars/user_settings/menus/access_tokens_menu_spec.rb index fa33e7bedfb..eebd089ad3f 100644 --- a/spec/lib/sidebars/user_settings/menus/access_tokens_menu_spec.rb +++ b/spec/lib/sidebars/user_settings/menus/access_tokens_menu_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' RSpec.describe Sidebars::UserSettings::Menus::AccessTokensMenu, feature_category: :navigation do it_behaves_like 'User settings menu', - link: '/-/profile/personal_access_tokens', + link: '/-/user_settings/personal_access_tokens', title: _('Access Tokens'), icon: 'token', active_routes: { controller: :personal_access_tokens } diff --git a/spec/lib/sidebars/user_settings/menus/active_sessions_menu_spec.rb b/spec/lib/sidebars/user_settings/menus/active_sessions_menu_spec.rb index be5f826ee58..d4b9c359a98 100644 --- a/spec/lib/sidebars/user_settings/menus/active_sessions_menu_spec.rb +++ b/spec/lib/sidebars/user_settings/menus/active_sessions_menu_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' RSpec.describe Sidebars::UserSettings::Menus::ActiveSessionsMenu, feature_category: :navigation do it_behaves_like 'User settings menu', - link: '/-/profile/active_sessions', + link: '/-/user_settings/active_sessions', title: _('Active Sessions'), icon: 'monitor-lines', active_routes: { controller: :active_sessions } diff --git a/spec/lib/sidebars/user_settings/menus/applications_menu_spec.rb b/spec/lib/sidebars/user_settings/menus/applications_menu_spec.rb index eeda4fb844c..a0c175051df 100644 --- a/spec/lib/sidebars/user_settings/menus/applications_menu_spec.rb +++ b/spec/lib/sidebars/user_settings/menus/applications_menu_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' RSpec.describe Sidebars::UserSettings::Menus::ApplicationsMenu, feature_category: :navigation do it_behaves_like 'User settings menu', - link: '/-/profile/applications', + link: '/-/user_settings/applications', title: _('Applications'), icon: 'applications', active_routes: { controller: 'oauth/applications' } diff --git a/spec/lib/sidebars/user_settings/menus/authentication_log_menu_spec.rb b/spec/lib/sidebars/user_settings/menus/authentication_log_menu_spec.rb index 33be5050c37..5a154d7dafb 100644 --- a/spec/lib/sidebars/user_settings/menus/authentication_log_menu_spec.rb +++ b/spec/lib/sidebars/user_settings/menus/authentication_log_menu_spec.rb @@ -4,10 +4,10 @@ require 'spec_helper' RSpec.describe Sidebars::UserSettings::Menus::AuthenticationLogMenu, feature_category: :navigation do it_behaves_like 'User settings menu', - link: '/-/profile/audit_log', + link: '/-/user_settings/authentication_log', title: _('Authentication Log'), icon: 'log', - active_routes: { path: 'profiles#audit_log' } + active_routes: { path: 'user_settings#authentication_log' } it_behaves_like 'User settings menu #render? method' end diff --git a/spec/lib/sidebars/user_settings/menus/password_menu_spec.rb b/spec/lib/sidebars/user_settings/menus/password_menu_spec.rb index 168019fea5d..83e47fd120a 100644 --- a/spec/lib/sidebars/user_settings/menus/password_menu_spec.rb +++ b/spec/lib/sidebars/user_settings/menus/password_menu_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' RSpec.describe Sidebars::UserSettings::Menus::PasswordMenu, feature_category: :navigation do it_behaves_like 'User settings menu', - link: '/-/profile/password', + link: '/-/user_settings/password', title: _('Password'), icon: 'lock', active_routes: { controller: :passwords } |