diff --git a/app/helpers/namespaces_helper.rb b/app/helpers/namespaces_helper.rb index 81e0352e628d41dc4275fb74695e927ac420e249..64b58d28fc97426fb49ec99592470905b7ceb17f 100644 --- a/app/helpers/namespaces_helper.rb +++ b/app/helpers/namespaces_helper.rb @@ -88,12 +88,6 @@ def namespaces_as_json(selected = :current_user) }.to_json end - def show_minute_limit_banner?(namespace) - return false unless Gitlab.com? && ::Feature.enabled?(:show_minute_limit_banner) - - namespace.root_ancestor.free_plan? && !minute_limit_banner_dismissed? ? true : false - end - private # Many importers create a temporary Group, so use the real diff --git a/ee/app/helpers/ee/namespaces_helper.rb b/ee/app/helpers/ee/namespaces_helper.rb index 857cad817f16084eaa4bc214bd9affea476faf7b..08fc73901d94ed72207d83b46a70c545d37ac7f8 100644 --- a/ee/app/helpers/ee/namespaces_helper.rb +++ b/ee/app/helpers/ee/namespaces_helper.rb @@ -61,6 +61,12 @@ def buy_storage_url(namespace) buy_storage_subscriptions_url(selected_group: namespace.id) end + def show_minute_limit_banner?(namespace) + return false unless ::Gitlab.com? && ::Feature.enabled?(:show_minute_limit_banner) + + namespace.root_ancestor.free_plan? && !minute_limit_banner_dismissed? ? true : false + end + private def use_customers_dot_for_addon_path?(namespace) diff --git a/ee/spec/helpers/ee/namespaces_helper_spec.rb b/ee/spec/helpers/ee/namespaces_helper_spec.rb index f02d9dcf6f784e218ec5bf822054a96787e6bac4..fb7365fd19b2460748c85d0ba8f7d987a0e045e4 100644 --- a/ee/spec/helpers/ee/namespaces_helper_spec.rb +++ b/ee/spec/helpers/ee/namespaces_helper_spec.rb @@ -222,4 +222,46 @@ end end end + + describe '#show_minute_limit_banner?' do + let(:project) { create(:project) } + + context 'on dot com' do + using RSpec::Parameterized::TableSyntax + + where(:feature_flag_enabled, :free_project, :user_dismissed_banner, :should_show_banner) do + true | true | false | true + true | true | true | false + true | false | false | false + false | true | false | false + end + + with_them do + before do + allow(Gitlab).to receive(:com?).and_return(true) + stub_feature_flags(show_minute_limit_banner: feature_flag_enabled) + allow(project.root_ancestor).to receive(:free_plan?).and_return(free_project) + allow(helper).to receive(:user_dismissed?).with('minute_limit_banner').and_return(user_dismissed_banner) + end + + it 'shows the banner if required' do + expect(helper.show_minute_limit_banner?(project)).to eq(should_show_banner) + end + end + end + + context 'not dot com' do + context 'when feature flag is enabled for a free project and user has not dismissed callout' do + before do + stub_feature_flags(show_minute_limit_banner: true) + allow(project.root_ancestor).to receive(:free_plan?).and_return(true) + allow(helper).to receive(:user_dismissed?).with('minute_limit_banner').and_return(false) + end + + it 'does not show banner' do + expect(helper.show_minute_limit_banner?(project)).to eq(false) + end + end + end + end end diff --git a/spec/helpers/namespaces_helper_spec.rb b/spec/helpers/namespaces_helper_spec.rb index 8c1766f6515d83951cabefe56aae7d44e3ab3292..00aa0fd1cbaef3d714d0c371d29d83ef97caba66 100644 --- a/spec/helpers/namespaces_helper_spec.rb +++ b/spec/helpers/namespaces_helper_spec.rb @@ -268,46 +268,4 @@ end end end - - describe '#show_minute_limit_banner?' do - let(:project) { create(:project) } - - context 'on dot com' do - using RSpec::Parameterized::TableSyntax - - where(:feature_flag_enabled, :free_project, :user_dismissed_banner, :should_show_banner) do - true | true | false | true - true | true | true | false - true | false | false | false - false | true | false | false - end - - with_them do - before do - allow(Gitlab).to receive(:com?).and_return(true) - stub_feature_flags(show_minute_limit_banner: feature_flag_enabled) - allow(project.root_ancestor).to receive(:free_plan?).and_return(free_project) - allow(helper).to receive(:user_dismissed?).with(Users::CalloutsHelper::MINUTE_LIMIT_BANNER).and_return(user_dismissed_banner) - end - - it 'shows the banner if required' do - expect(helper.show_minute_limit_banner?(project)).to eq(should_show_banner) - end - end - end - - context 'not dot com' do - context 'when feature flag is enabled for a free project and user has not dismissed callout' do - before do - stub_feature_flags(show_minute_limit_banner: true) - allow(project.root_ancestor).to receive(:free_plan?).and_return(true) - allow(helper).to receive(:user_dismissed?).with(Users::CalloutsHelper::MINUTE_LIMIT_BANNER).and_return(false) - end - - it 'does not show banner' do - expect(helper.show_minute_limit_banner?(project)).to eq(false) - end - end - end - end end