diff --git a/ee/app/helpers/ee/namespaces_helper.rb b/ee/app/helpers/ee/namespaces_helper.rb index cb14f54e2b2958d42b8e9824e2cc54d2e5509832..815222cf657052ab1d857a510ed48c063af76370 100644 --- a/ee/app/helpers/ee/namespaces_helper.rb +++ b/ee/app/helpers/ee/namespaces_helper.rb @@ -27,13 +27,13 @@ def buy_addon_target_attr(namespace) end def buy_storage_path(namespace) - return purchase_storage_url if use_customers_dot_for_addon_path?(namespace) + return purchase_storage_url(namespace) if use_customers_dot_for_addon_path?(namespace) buy_storage_subscriptions_path(selected_group: namespace.root_ancestor.id) end def buy_storage_url(namespace) - return purchase_storage_url if use_customers_dot_for_addon_path?(namespace) + return purchase_storage_url(namespace) if use_customers_dot_for_addon_path?(namespace) buy_storage_subscriptions_url(selected_group: namespace.root_ancestor.id) end @@ -96,8 +96,11 @@ def storage_usage_app_data(namespace) }) end - def purchase_storage_url - ::Gitlab::Routing.url_helpers.subscription_portal_more_storage_url + def purchase_storage_url(namespace) + ::Gitlab::Utils.add_url_parameters( + ::Gitlab::Routing.url_helpers.subscription_portal_more_storage_url, + gl_namespace_id: namespace.root_ancestor.id + ) end private diff --git a/ee/spec/helpers/ee/namespaces_helper_spec.rb b/ee/spec/helpers/ee/namespaces_helper_spec.rb index 7f77a4338e5c17226e7a18a7742d2903cdb14b37..91cc85717836c70d3d2e204083c9a6160491ca25 100644 --- a/ee/spec/helpers/ee/namespaces_helper_spec.rb +++ b/ee/spec/helpers/ee/namespaces_helper_spec.rb @@ -19,7 +19,6 @@ end let(:ci_minutes_used) { 100 } - let(:more_storage_url) { ::Gitlab::Routing.url_helpers.subscription_portal_more_storage_url } describe '#ci_minutes_report', feature_category: :hosted_runners do let(:usage) { Ci::Minutes::Usage.new(user_group) } @@ -180,6 +179,13 @@ let(:user) { create(:user) } let(:personal_namespace) { build_stubbed(:user_namespace) } + let(:more_storage_url) do + ::Gitlab::Utils.add_url_parameters( + ::Gitlab::Routing.url_helpers.subscription_portal_more_storage_url, + gl_namespace_id: personal_namespace.root_ancestor.id + ) + end + it 'returns the default purchase' do expect(helper.buy_storage_path(personal_namespace)).to eq more_storage_url end @@ -206,6 +212,13 @@ let(:user) { create(:user) } let(:personal_namespace) { build_stubbed(:user_namespace) } + let(:more_storage_url) do + ::Gitlab::Utils.add_url_parameters( + ::Gitlab::Routing.url_helpers.subscription_portal_more_storage_url, + gl_namespace_id: personal_namespace.root_ancestor.id + ) + end + it 'returns the default purchase' do expect(helper.buy_storage_url(personal_namespace)).to eq more_storage_url end @@ -290,7 +303,14 @@ end describe '#purchase_storage_url', feature_category: :consumables_cost_management do - subject { helper.purchase_storage_url } + subject { helper.purchase_storage_url(user_group) } + + let(:more_storage_url) do + ::Gitlab::Utils.add_url_parameters( + ::Gitlab::Routing.url_helpers.subscription_portal_more_storage_url, + gl_namespace_id: user_group.root_ancestor.id + ) + end it { is_expected.to eq(more_storage_url) } end @@ -304,6 +324,13 @@ let(:repository_size_limit) { 1000 } let(:storage_size_limit) { 1 } + let(:more_storage_url) do + ::Gitlab::Utils.add_url_parameters( + ::Gitlab::Routing.url_helpers.subscription_portal_more_storage_url, + gl_namespace_id: namespace.root_ancestor.id + ) + end + where(enforcement_type: [:project_repository_limit, :namespace_storage_limit]) with_them do