diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-18 03:08:58 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-18 03:08:58 +0300 |
commit | 099333e261623df9b960419e2761b2cbb0eb3882 (patch) | |
tree | 47d05cc18d6b20a16982b33e00bd1d144563f9e3 /spec | |
parent | a0b4a462b0c6f333651ae9e0c0ca1e5794e7b4e1 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
25 files changed, 160 insertions, 135 deletions
diff --git a/spec/controllers/admin/application_settings_controller_spec.rb b/spec/controllers/admin/application_settings_controller_spec.rb index 2b562e2dd64..6258dd30438 100644 --- a/spec/controllers/admin/application_settings_controller_spec.rb +++ b/spec/controllers/admin/application_settings_controller_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Admin::ApplicationSettingsController do +RSpec.describe Admin::ApplicationSettingsController, :do_not_mock_admin_mode_setting do include StubENV include UsageDataHelpers @@ -164,6 +164,13 @@ RSpec.describe Admin::ApplicationSettingsController do expect(ApplicationSetting.current.default_branch_name).to eq("example_branch_name") end + it "updates admin_mode setting" do + put :update, params: { application_setting: { admin_mode: true } } + + expect(response).to redirect_to(general_admin_application_settings_path) + expect(ApplicationSetting.current.admin_mode).to be(true) + end + context "personal access token prefix settings" do let(:application_settings) { ApplicationSetting.current } diff --git a/spec/controllers/concerns/enforces_admin_authentication_spec.rb b/spec/controllers/concerns/enforces_admin_authentication_spec.rb index c6ad1a00484..106b1d53fd2 100644 --- a/spec/controllers/concerns/enforces_admin_authentication_spec.rb +++ b/spec/controllers/concerns/enforces_admin_authentication_spec.rb @@ -19,7 +19,7 @@ RSpec.describe EnforcesAdminAuthentication do end end - context 'feature flag :user_mode_in_session is enabled' do + context 'application setting :admin_mode is enabled' do describe 'authenticate_admin!' do context 'as an admin' do let(:user) { create(:admin) } @@ -61,9 +61,9 @@ RSpec.describe EnforcesAdminAuthentication do end end - context 'feature flag :user_mode_in_session is disabled' do + context 'application setting :admin_mode is disabled' do before do - stub_feature_flags(user_mode_in_session: false) + stub_application_setting(admin_mode: false) end describe 'authenticate_admin!' do diff --git a/spec/controllers/concerns/redis_tracking_spec.rb b/spec/controllers/concerns/redis_tracking_spec.rb index 53b49dd30a6..4077f4f5cce 100644 --- a/spec/controllers/concerns/redis_tracking_spec.rb +++ b/spec/controllers/concerns/redis_tracking_spec.rb @@ -9,8 +9,8 @@ RSpec.describe RedisTracking do include RedisTracking skip_before_action :authenticate_user!, only: :show - track_redis_hll_event :index, :show, name: 'g_compliance_approval_rules', - if: [:custom_condition_one?, :custom_condition_two?] + track_redis_hll_event(:index, :show, name: 'g_compliance_approval_rules', + if: [:custom_condition_one?, :custom_condition_two?]) { |controller| controller.get_custom_id } def index render html: 'index' @@ -24,6 +24,10 @@ RSpec.describe RedisTracking do render html: 'show' end + def get_custom_id + 'some_custom_id' + end + private def custom_condition_one? @@ -92,19 +96,15 @@ RSpec.describe RedisTracking do end end - context 'when user is not logged in and there is a visitor_id' do + context 'when user is not logged in' do let(:visitor_id) { SecureRandom.uuid } - before do - routes.draw { get 'show' => 'anonymous#show' } - end - - it 'tracks the event' do + it 'tracks the event when there is a visitor id' do cookies[:visitor_id] = { value: visitor_id, expires: 24.months } expect_tracking - get :show + get :show, params: { id: 1 } end end @@ -114,5 +114,19 @@ RSpec.describe RedisTracking do get :index end + + it 'tracks the event when there is custom id' do + expect_tracking + + get :show, params: { id: 1 } + end + + it 'does not track the event when there is no custom id' do + expect(controller).to receive(:get_custom_id).and_return(nil) + + expect_no_tracking + + get :show, params: { id: 2 } + end end end diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb index 6b06e224189..474e3a3b009 100644 --- a/spec/controllers/projects/issues_controller_spec.rb +++ b/spec/controllers/projects/issues_controller_spec.rb @@ -1446,9 +1446,7 @@ RSpec.describe Projects::IssuesController do expect_next_instance_of(Spam::AkismetService) do |akismet_service| expect(akismet_service).to receive_messages(submit_spam: true) end - expect_next_instance_of(ApplicationSetting) do |setting| - expect(setting).to receive_messages(akismet_enabled: true) - end + stub_application_setting(akismet_enabled: true) end def post_spam diff --git a/spec/features/admin/admin_mode_spec.rb b/spec/features/admin/admin_mode_spec.rb index d2bcd6d71db..633de20c82d 100644 --- a/spec/features/admin/admin_mode_spec.rb +++ b/spec/features/admin/admin_mode_spec.rb @@ -14,7 +14,7 @@ RSpec.describe 'Admin mode' do stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false') end - context 'feature flag :user_mode_in_session is enabled', :request_store do + context 'application setting :admin_mode is enabled', :request_store do before do sign_in(admin) end @@ -157,9 +157,9 @@ RSpec.describe 'Admin mode' do end end - context 'feature flag :user_mode_in_session is disabled' do + context 'application setting :admin_mode is disabled' do before do - stub_feature_flags(user_mode_in_session: false) + stub_application_setting(admin_mode: false) sign_in(admin) end diff --git a/spec/features/admin/admin_settings_spec.rb b/spec/features/admin/admin_settings_spec.rb index 249621f5835..f47db1342e3 100644 --- a/spec/features/admin/admin_settings_spec.rb +++ b/spec/features/admin/admin_settings_spec.rb @@ -9,7 +9,7 @@ RSpec.describe 'Admin updates settings' do let(:admin) { create(:admin) } - context 'feature flag :user_mode_in_session is enabled', :request_store do + context 'application setting :admin_mode is enabled', :request_store do before do stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false') sign_in(admin) @@ -615,9 +615,9 @@ RSpec.describe 'Admin updates settings' do end end - context 'feature flag :user_mode_in_session is disabled' do + context 'application setting :admin_mode is disabled' do before do - stub_feature_flags(user_mode_in_session: false) + stub_application_setting(admin_mode: false) stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false') diff --git a/spec/features/ide/clientside_preview_csp_spec.rb b/spec/features/ide/clientside_preview_csp_spec.rb index eadcb9cd008..559edb8bf53 100644 --- a/spec/features/ide/clientside_preview_csp_spec.rb +++ b/spec/features/ide/clientside_preview_csp_spec.rb @@ -7,9 +7,7 @@ RSpec.describe 'IDE Clientside Preview CSP' do shared_context 'disable feature' do before do - allow_next_instance_of(ApplicationSetting) do |instance| - allow(instance).to receive(:web_ide_clientside_preview_enabled?).and_return(false) - end + stub_application_setting(web_ide_clientside_preview_enabled: false) end end @@ -24,10 +22,8 @@ RSpec.describe 'IDE Clientside Preview CSP' do end before do - allow_next_instance_of(ApplicationSetting) do |instance| - allow(instance).to receive(:web_ide_clientside_preview_enabled?).and_return(true) - allow(instance).to receive(:web_ide_clientside_preview_bundler_url).and_return(whitelisted_url) - end + stub_application_setting(web_ide_clientside_preview_enabled: true) + stub_application_setting(web_ide_clientside_preview_bundler_url: whitelisted_url) sign_in(user) end diff --git a/spec/frontend/vue_mr_widget/components/mr_widget_author_time_spec.js b/spec/frontend/vue_mr_widget/components/mr_widget_author_time_spec.js index 78efcb6e695..8fd93809e01 100644 --- a/spec/frontend/vue_mr_widget/components/mr_widget_author_time_spec.js +++ b/spec/frontend/vue_mr_widget/components/mr_widget_author_time_spec.js @@ -1,42 +1,43 @@ -import Vue from 'vue'; -import mountComponent from 'helpers/vue_mount_component_helper'; +import { shallowMount } from '@vue/test-utils'; +import MrWidgetAuthor from '~/vue_merge_request_widget/components/mr_widget_author.vue'; import MrWidgetAuthorTime from '~/vue_merge_request_widget/components/mr_widget_author_time.vue'; describe('MrWidgetAuthorTime', () => { - let vm; + let wrapper; + + const defaultProps = { + actionText: 'Merged by', + author: { + name: 'Administrator', + username: 'root', + webUrl: 'http://localhost:3000/root', + avatarUrl: 'http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon', + }, + dateTitle: '2017-03-23T23:02:00.807Z', + dateReadable: '12 hours ago', + }; beforeEach(() => { - const Component = Vue.extend(MrWidgetAuthorTime); - - vm = mountComponent(Component, { - actionText: 'Merged by', - author: { - name: 'Administrator', - username: 'root', - webUrl: 'http://localhost:3000/root', - avatarUrl: - 'http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon', - }, - dateTitle: '2017-03-23T23:02:00.807Z', - dateReadable: '12 hours ago', + wrapper = shallowMount(MrWidgetAuthorTime, { + propsData: defaultProps, }); }); afterEach(() => { - vm.$destroy(); + wrapper.destroy(); }); it('renders provided action text', () => { - expect(vm.$el.textContent).toContain('Merged by'); + expect(wrapper.text()).toContain('Merged by'); }); it('renders author', () => { - expect(vm.$el.textContent).toContain('Administrator'); + expect(wrapper.find(MrWidgetAuthor).props('author')).toStrictEqual(defaultProps.author); }); it('renders provided time', () => { - expect(vm.$el.querySelector('time').getAttribute('title')).toEqual('2017-03-23T23:02:00.807Z'); + expect(wrapper.find('time').attributes('title')).toBe('2017-03-23T23:02:00.807Z'); - expect(vm.$el.querySelector('time').textContent.trim()).toEqual('12 hours ago'); + expect(wrapper.find('time').text().trim()).toBe('12 hours ago'); }); }); diff --git a/spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb b/spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb index c50092d7f0e..e0d2eff8a21 100644 --- a/spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb +++ b/spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb @@ -44,7 +44,7 @@ RSpec.describe GitlabSchema.types['UsageTrendsMeasurement'] do let(:user) { create(:user, :admin) } before do - stub_feature_flags(user_mode_in_session: false) + stub_application_setting(admin_mode: false) end it 'returns data' do diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index c7470f31ad8..3ccf5ded9f5 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -316,9 +316,7 @@ RSpec.describe ApplicationHelper do let(:user) { create(:user, static_object_token: 'hunter1') } before do - allow_next_instance_of(ApplicationSetting) do |instance| - allow(instance).to receive(:static_objects_external_storage_url).and_return('https://cdn.gitlab.com') - end + stub_application_setting(static_objects_external_storage_url: 'https://cdn.gitlab.com') allow(helper).to receive(:current_user).and_return(user) end diff --git a/spec/helpers/nav_helper_spec.rb b/spec/helpers/nav_helper_spec.rb index c4795a814ba..2efff3402c5 100644 --- a/spec/helpers/nav_helper_spec.rb +++ b/spec/helpers/nav_helper_spec.rb @@ -35,7 +35,7 @@ RSpec.describe NavHelper do context 'as admin' do let(:user) { create(:user, :admin) } - context 'feature flag :user_mode_in_session is enabled' do + context 'application setting :admin_mode is enabled' do it 'does not contain the admin mode link by default' do expect(helper.header_links).not_to include(:admin_mode) end @@ -52,9 +52,9 @@ RSpec.describe NavHelper do end end - context 'feature flag :user_mode_in_session is disabled' do + context 'application setting :admin_mode is disabled' do before do - stub_feature_flags(user_mode_in_session: false) + stub_application_setting(admin_mode: false) end it 'does not contain the admin mode link' do diff --git a/spec/lib/constraints/admin_constrainer_spec.rb b/spec/lib/constraints/admin_constrainer_spec.rb index ac6ad31120e..6e8909ca129 100644 --- a/spec/lib/constraints/admin_constrainer_spec.rb +++ b/spec/lib/constraints/admin_constrainer_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Constraints::AdminConstrainer do end describe '#matches' do - context 'feature flag :user_mode_in_session is enabled' do + context 'application setting :admin_mode is enabled' do context 'when user is a regular user' do it 'forbids access' do expect(subject.matches?(request)).to be(false) @@ -46,9 +46,9 @@ RSpec.describe Constraints::AdminConstrainer do end end - context 'feature flag :user_mode_in_session is disabled' do + context 'application setting :admin_mode is disabled' do before do - stub_feature_flags(user_mode_in_session: false) + stub_application_setting(admin_mode: false) end context 'when user is a regular user' do diff --git a/spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb b/spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb index 39029322e25..e70b34d6557 100644 --- a/spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb +++ b/spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb @@ -38,7 +38,7 @@ RSpec.describe Gitlab::DatabaseImporters::InstanceAdministrators::CreateGroup do end end - context 'with application settings and admin users' do + context 'with application settings and admin users', :do_not_mock_admin_mode_setting do let(:group) { result[:group] } let(:application_setting) { Gitlab::CurrentSettings.current_application_settings } diff --git a/spec/lib/gitlab/diff/highlight_cache_spec.rb b/spec/lib/gitlab/diff/highlight_cache_spec.rb index d26bc5fc9a8..8d29b001f8d 100644 --- a/spec/lib/gitlab/diff/highlight_cache_spec.rb +++ b/spec/lib/gitlab/diff/highlight_cache_spec.rb @@ -238,7 +238,7 @@ RSpec.describe Gitlab::Diff::HighlightCache, :clean_gitlab_redis_cache do subject { cache.key } it 'returns cache key' do - is_expected.to eq("highlighted-diff-files:#{cache.diffable.cache_key}:2:#{cache.diff_options}:true") + is_expected.to eq("highlighted-diff-files:#{cache.diffable.cache_key}:2:#{cache.diff_options}:true:true") end context 'when feature flag is disabled' do @@ -247,7 +247,17 @@ RSpec.describe Gitlab::Diff::HighlightCache, :clean_gitlab_redis_cache do end it 'returns the original version of the cache' do - is_expected.to eq("highlighted-diff-files:#{cache.diffable.cache_key}:2:#{cache.diff_options}:false") + is_expected.to eq("highlighted-diff-files:#{cache.diffable.cache_key}:2:#{cache.diff_options}:false:true") + end + end + + context 'when use marker ranges feature flag is disabled' do + before do + stub_feature_flags(use_marker_ranges: false) + end + + it 'returns the original version of the cache' do + is_expected.to eq("highlighted-diff-files:#{cache.diffable.cache_key}:2:#{cache.diff_options}:true:false") end end end diff --git a/spec/lib/gitlab/diff/highlight_spec.rb b/spec/lib/gitlab/diff/highlight_spec.rb index e613674af3a..32ca6e4fde6 100644 --- a/spec/lib/gitlab/diff/highlight_spec.rb +++ b/spec/lib/gitlab/diff/highlight_spec.rb @@ -65,6 +65,14 @@ RSpec.describe Gitlab::Diff::Highlight do expect(subject[5].rich_text).to eq(code) end + + context 'when use_marker_ranges feature flag is false too' do + it 'does not affect the result' do + code = %Q{+<span id="LC9" class="line" lang="ruby"> <span class="k">raise</span> <span class="no"><span class="idiff left">RuntimeError</span></span><span class="p"><span class="idiff">,</span></span><span class="idiff right"> </span><span class="s2">"System commands must be given as an array of strings"</span></span>\n} + + expect(subject[5].rich_text).to eq(code) + end + end end context 'when no diff_refs' do @@ -132,6 +140,18 @@ RSpec.describe Gitlab::Diff::Highlight do end end + context 'when `use_marker_ranges` feature flag is disabled' do + it 'returns the same result' do + with_feature_flag = described_class.new(diff_file, repository: project.repository).highlight + + stub_feature_flags(use_marker_ranges: false) + + without_feature_flag = described_class.new(diff_file, repository: project.repository).highlight + + expect(with_feature_flag.map(&:rich_text)).to eq(without_feature_flag.map(&:rich_text)) + end + end + context 'when no inline diffs' do it_behaves_like 'without inline diffs' end diff --git a/spec/lib/gitlab/diff/inline_diff_spec.rb b/spec/lib/gitlab/diff/inline_diff_spec.rb index 714b5d813c4..d7b50eb73ee 100644 --- a/spec/lib/gitlab/diff/inline_diff_spec.rb +++ b/spec/lib/gitlab/diff/inline_diff_spec.rb @@ -3,68 +3,30 @@ require 'spec_helper' RSpec.describe Gitlab::Diff::InlineDiff do - describe '.for_lines' do - let(:diff) do - <<-EOF.strip_heredoc - class Test - - def initialize(test = true) - + def initialize(test = false) - @test = test - - if true - - @foo = "bar" - + unless false - + @foo = "baz" - end - end - end - EOF - end - - let(:subject) { described_class.for_lines(diff.lines) } + describe '#inline_diffs' do + subject { described_class.new(old_line, new_line, offset: offset).inline_diffs } - it 'finds all inline diffs' do - expect(subject[0]).to be_nil - expect(subject[1]).to eq([25..27]) - expect(subject[2]).to eq([25..28]) - expect(subject[3]).to be_nil - expect(subject[4]).to eq([5..10]) - expect(subject[5]).to eq([17..17]) - expect(subject[6]).to eq([5..15]) - expect(subject[7]).to eq([17..17]) - expect(subject[8]).to be_nil - end + let(:old_line) { 'XXX def initialize(test = true)' } + let(:new_line) { 'YYY def initialize(test = false)' } + let(:offset) { 3 } - it 'can handle unchanged empty lines' do - expect { described_class.for_lines(['- bar', '+ baz', '']) }.not_to raise_error + it 'finds the inline diff', :aggregate_failures do + expect(subject[0]).to eq([Gitlab::MarkerRange.new(26, 28, mode: :deletion)]) + expect(subject[1]).to eq([Gitlab::MarkerRange.new(26, 29, mode: :addition)]) end context 'when lines have multiple changes' do - let(:diff) do - <<~EOF - - Hello, how are you? - + Hi, how are you doing? - EOF - end - - let(:subject) { described_class.for_lines(diff.lines) } - - it 'finds all inline diffs' do - expect(subject[0]).to eq([3..6]) - expect(subject[1]).to eq([3..3, 17..22]) + let(:old_line) { '- Hello, how are you?' } + let(:new_line) { '+ Hi, how are you doing?' } + let(:offset) { 1 } + + it 'finds all inline diffs', :aggregate_failures do + expect(subject[0]).to eq([Gitlab::MarkerRange.new(3, 6, mode: :deletion)]) + expect(subject[1]).to eq([ + Gitlab::MarkerRange.new(3, 3, mode: :addition), + Gitlab::MarkerRange.new(17, 22, mode: :addition) + ]) end end end - - describe "#inline_diffs" do - let(:old_line) { "XXX def initialize(test = true)" } - let(:new_line) { "YYY def initialize(test = false)" } - let(:subject) { described_class.new(old_line, new_line, offset: 3).inline_diffs } - - it "finds the inline diff" do - old_diffs, new_diffs = subject - - expect(old_diffs).to eq([26..28]) - expect(new_diffs).to eq([26..29]) - end - end end diff --git a/spec/lib/gitlab/diff/line_spec.rb b/spec/lib/gitlab/diff/line_spec.rb index e10a50afde9..a40cd99f6f8 100644 --- a/spec/lib/gitlab/diff/line_spec.rb +++ b/spec/lib/gitlab/diff/line_spec.rb @@ -17,6 +17,8 @@ RSpec.describe Gitlab::Diff::Line do rich_text: rich_text) end + let(:rich_text) { nil } + describe '.init_from_hash' do let(:rich_text) { '<input>' } @@ -51,4 +53,14 @@ RSpec.describe Gitlab::Diff::Line do expect(line[:rich_text]).to eq("<input>") end end + + describe '#set_marker_ranges' do + let(:marker_ranges) { [Gitlab::MarkerRange.new(1, 10, mode: :deletion)] } + + it 'stores MarkerRanges in Diff::Line object' do + line.set_marker_ranges(marker_ranges) + + expect(line.marker_ranges).to eq(marker_ranges) + end + end end diff --git a/spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb b/spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb index 3ba08455d01..9d5d5f28eab 100644 --- a/spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb +++ b/spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb @@ -74,9 +74,9 @@ RSpec.describe Gitlab::SidekiqMiddleware::AdminMode::Client, :request_store do end end - context 'admin mode feature disabled' do + context 'admin mode setting disabled' do before do - stub_feature_flags(user_mode_in_session: false) + stub_application_setting(admin_mode: false) end it 'yields block' do diff --git a/spec/lib/gitlab/sidekiq_middleware/admin_mode/server_spec.rb b/spec/lib/gitlab/sidekiq_middleware/admin_mode/server_spec.rb index e8322b11875..3ab1a9cd2f4 100644 --- a/spec/lib/gitlab/sidekiq_middleware/admin_mode/server_spec.rb +++ b/spec/lib/gitlab/sidekiq_middleware/admin_mode/server_spec.rb @@ -52,9 +52,9 @@ RSpec.describe Gitlab::SidekiqMiddleware::AdminMode::Server, :request_store do end end - context 'admin mode feature disabled' do + context 'admin mode setting disabled' do before do - stub_feature_flags(user_mode_in_session: false) + stub_application_setting(admin_mode: false) end it 'yields block' do diff --git a/spec/models/concerns/cacheable_attributes_spec.rb b/spec/models/concerns/cacheable_attributes_spec.rb index f2877bed9cf..dc80e30216a 100644 --- a/spec/models/concerns/cacheable_attributes_spec.rb +++ b/spec/models/concerns/cacheable_attributes_spec.rb @@ -205,7 +205,7 @@ RSpec.describe CacheableAttributes do end end - it 'uses RequestStore in addition to process memory cache', :request_store do + it 'uses RequestStore in addition to process memory cache', :request_store, :do_not_mock_admin_mode_setting do # Warm up the cache create(:application_setting).cache! diff --git a/spec/presenters/clusters/cluster_presenter_spec.rb b/spec/presenters/clusters/cluster_presenter_spec.rb index 2d38c91499a..2e8364b2987 100644 --- a/spec/presenters/clusters/cluster_presenter_spec.rb +++ b/spec/presenters/clusters/cluster_presenter_spec.rb @@ -347,7 +347,7 @@ RSpec.describe Clusters::ClusterPresenter do before do project.add_maintainer(user) - stub_feature_flags(user_mode_in_session: false) + stub_application_setting(admin_mode: false) end context 'user can read logs' do @@ -363,7 +363,7 @@ RSpec.describe Clusters::ClusterPresenter do before do project.add_developer(user) - stub_feature_flags(user_mode_in_session: false) + stub_application_setting(admin_mode: false) end it 'returns nil' do diff --git a/spec/requests/api/internal/base_spec.rb b/spec/requests/api/internal/base_spec.rb index 86999c4adaa..d9d021ba758 100644 --- a/spec/requests/api/internal/base_spec.rb +++ b/spec/requests/api/internal/base_spec.rb @@ -1115,7 +1115,7 @@ RSpec.describe API::Internal::Base do end end - context 'feature flag :user_mode_in_session is enabled' do + context 'application setting :admin_mode is enabled' do context 'with an admin user' do let(:user) { create(:admin) } @@ -1147,9 +1147,9 @@ RSpec.describe API::Internal::Base do end end - context 'feature flag :user_mode_in_session is disabled' do + context 'application setting :admin_mode is disabled' do before do - stub_feature_flags(user_mode_in_session: false) + stub_application_setting(admin_mode: false) end context 'with an admin user' do diff --git a/spec/requests/api/settings_spec.rb b/spec/requests/api/settings_spec.rb index 3b84c812010..48f5bd114a1 100644 --- a/spec/requests/api/settings_spec.rb +++ b/spec/requests/api/settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe API::Settings, 'Settings' do +RSpec.describe API::Settings, 'Settings', :do_not_mock_admin_mode_setting do let(:user) { create(:user) } let_it_be(:admin) { create(:admin) } @@ -44,6 +44,7 @@ RSpec.describe API::Settings, 'Settings' do expect(json_response['wiki_page_max_content_bytes']).to be_a(Integer) expect(json_response['require_admin_approval_after_user_signup']).to eq(true) expect(json_response['personal_access_token_prefix']).to be_nil + expect(json_response['admin_mode']).to be(false) end end @@ -124,7 +125,8 @@ RSpec.describe API::Settings, 'Settings' do disabled_oauth_sign_in_sources: 'unknown', import_sources: 'github,bitbucket', wiki_page_max_content_bytes: 12345, - personal_access_token_prefix: "GL-" + personal_access_token_prefix: "GL-", + admin_mode: true } expect(response).to have_gitlab_http_status(:ok) @@ -169,6 +171,7 @@ RSpec.describe API::Settings, 'Settings' do expect(json_response['import_sources']).to match_array(%w(github bitbucket)) expect(json_response['wiki_page_max_content_bytes']).to eq(12345) expect(json_response['personal_access_token_prefix']).to eq("GL-") + expect(json_response['admin_mode']).to be(true) end end diff --git a/spec/requests/jwt_controller_spec.rb b/spec/requests/jwt_controller_spec.rb index e154e691d5f..8be26784a3d 100644 --- a/spec/requests/jwt_controller_spec.rb +++ b/spec/requests/jwt_controller_spec.rb @@ -180,10 +180,11 @@ RSpec.describe JwtController do end context 'when internal auth is disabled' do + before do + stub_application_setting(password_authentication_enabled_for_git: false) + end + it 'rejects the authorization attempt with personal access token message' do - allow_next_instance_of(ApplicationSetting) do |instance| - allow(instance).to receive(:password_authentication_enabled_for_git?) { false } - end get '/jwt/auth', params: parameters, headers: headers expect(response).to have_gitlab_http_status(:unauthorized) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 5ffc9d778d1..d12b960d4fc 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -297,7 +297,7 @@ RSpec.configure do |config| Sidekiq::Worker.clear_all # Administrators have to re-authenticate in order to access administrative - # functionality when feature flag :user_mode_in_session is active. Any spec + # functionality when application setting admin_mode is active. Any spec # that requires administrative access can use the tag :enable_admin_mode # to avoid the second auth step (provided the user is already an admin): # @@ -314,6 +314,9 @@ RSpec.configure do |config| end end + # Make sure specs test by default admin mode setting on, unless forced to the opposite + stub_application_setting(admin_mode: true) unless example.metadata[:do_not_mock_admin_mode_setting] + allow(Gitlab::CurrentSettings).to receive(:current_application_settings?).and_return(false) end |