Commit 064cc8f6 authored by Jan Provaznik's avatar Jan Provaznik

Merge branch '3504_refactor_customers_dot_urls' into 'master'

[RUN-AS-IF-FOSS] Refactor CustomersDot url

See merge request gitlab-org/gitlab!71560
parents 650c58e3 cba7558a
...@@ -3,7 +3,7 @@ class Admin::InstanceReviewController < Admin::ApplicationController ...@@ -3,7 +3,7 @@ class Admin::InstanceReviewController < Admin::ApplicationController
feature_category :devops_reports feature_category :devops_reports
def index def index
redirect_to("#{::Gitlab::SubscriptionPortal::SUBSCRIPTIONS_URL}/instance_review?#{instance_review_params}") redirect_to("#{Gitlab::SubscriptionPortal.subscriptions_instance_review_url}?#{instance_review_params}")
end end
def instance_review_params def instance_review_params
......
...@@ -7,10 +7,8 @@ module CustomersDot ...@@ -7,10 +7,8 @@ module CustomersDot
feature_category :purchase feature_category :purchase
BASE_URL = Gitlab::SubscriptionPortal::SUBSCRIPTIONS_URL
def graphql def graphql
response = Gitlab::HTTP.post("#{BASE_URL}/graphql", response = Gitlab::HTTP.post(EE::SUBSCRIPTIONS_GRAPHQL_URL,
body: request.raw_post, body: request.raw_post,
headers: forward_headers headers: forward_headers
) )
......
...@@ -43,7 +43,7 @@ module BillingPlansHelper ...@@ -43,7 +43,7 @@ module BillingPlansHelper
add_seats_href: add_seats_url(namespace), add_seats_href: add_seats_url(namespace),
plan_upgrade_href: plan_upgrade_url(namespace, plan), plan_upgrade_href: plan_upgrade_url(namespace, plan),
plan_renew_href: plan_renew_url(namespace), plan_renew_href: plan_renew_url(namespace),
customer_portal_url: "#{EE::SUBSCRIPTIONS_URL}/subscriptions", customer_portal_url: EE::SUBSCRIPTIONS_MANAGE_URL,
billable_seats_href: billable_seats_href(namespace), billable_seats_href: billable_seats_href(namespace),
plan_name: plan&.name, plan_name: plan&.name,
free_personal_namespace: namespace.free_personal?.to_s free_personal_namespace: namespace.free_personal?.to_s
...@@ -147,19 +147,19 @@ module BillingPlansHelper ...@@ -147,19 +147,19 @@ module BillingPlansHelper
def add_seats_url(group) def add_seats_url(group)
return unless group return unless group
"#{EE::SUBSCRIPTIONS_URL}/gitlab/namespaces/#{group.id}/extra_seats" ::Gitlab::SubscriptionPortal.add_extra_seats_url(group.id)
end end
def plan_upgrade_url(group, plan) def plan_upgrade_url(group, plan)
return unless group && plan&.id return unless group && plan&.id
"#{EE::SUBSCRIPTIONS_URL}/gitlab/namespaces/#{group.id}/upgrade/#{plan.id}" ::Gitlab::SubscriptionPortal.upgrade_subscription_url(group.id, plan.id)
end end
def plan_renew_url(group) def plan_renew_url(group)
return unless group return unless group
"#{EE::SUBSCRIPTIONS_URL}/gitlab/namespaces/#{group.id}/renew" ::Gitlab::SubscriptionPortal.renew_subscription_url(group.id)
end end
def billable_seats_href(namespace) def billable_seats_href(namespace)
......
...@@ -24,11 +24,11 @@ module EE ...@@ -24,11 +24,11 @@ module EE
def renew_subscription_path def renew_subscription_path
return plan_renew_url(current_namespace) if decorated_subscription return plan_renew_url(current_namespace) if decorated_subscription
"#{EE::SUBSCRIPTIONS_URL}/subscriptions" SUBSCRIPTIONS_MANAGE_URL
end end
def upgrade_subscription_path def upgrade_subscription_path
"#{EE::SUBSCRIPTIONS_URL}/subscriptions" SUBSCRIPTIONS_MANAGE_URL
end end
def link_to_button_style(path:, track_property:) def link_to_button_style(path:, track_property:)
......
# frozen_string_literal: true # frozen_string_literal: true
module GitlabSubscriptions module GitlabSubscriptions
class FetchSubscriptionPlansService class FetchSubscriptionPlansService
URL = "#{EE::SUBSCRIPTIONS_URL}/gitlab_plans"
def initialize(plan:, namespace_id: nil) def initialize(plan:, namespace_id: nil)
@plan = plan @plan = plan
@namespace_id = namespace_id @namespace_id = namespace_id
...@@ -16,7 +14,7 @@ module GitlabSubscriptions ...@@ -16,7 +14,7 @@ module GitlabSubscriptions
def send_request def send_request
response = Gitlab::HTTP.get( response = Gitlab::HTTP.get(
URL, EE::SUBSCRIPTIONS_GITLAB_PLANS_URL,
allow_local_requests: true, allow_local_requests: true,
query: { plan: @plan, namespace_id: @namespace_id }, query: { plan: @plan, namespace_id: @namespace_id },
headers: { 'Accept' => 'application/json' } headers: { 'Accept' => 'application/json' }
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
= s_('Promotions|When you have a lot of issues, it can be hard to get an overview. By adding a weight to your issues, you can get a better idea of the effort, cost, required time, or value of each, and so better manage them.') = s_('Promotions|When you have a lot of issues, it can be hard to get an overview. By adding a weight to your issues, you can get a better idea of the effort, cost, required time, or value of each, and so better manage them.')
%p %p
- if Gitlab::CurrentSettings.should_check_namespace_plan? - if Gitlab::CurrentSettings.should_check_namespace_plan?
- subscription_link_url = "#{EE::SUBSCRIPTIONS_URL}/plans" - subscription_link_url = EE::SUBSCRIPTIONS_PLANS_URL
- subscription_link_start = '<a href="%{url}" target="_blank" class="btn-link tr-issue-weights-bronze-features-cta">'.html_safe % { url: subscription_link_url } - subscription_link_start = '<a href="%{url}" target="_blank" class="btn-link tr-issue-weights-bronze-features-cta">'.html_safe % { url: subscription_link_url }
= s_("Promotions|See the other features in the %{subscription_link_start}Premium plan%{subscription_link_end}").html_safe % { subscription_link_start: subscription_link_start, subscription_link_end: '</a>'.html_safe } = s_("Promotions|See the other features in the %{subscription_link_start}Premium plan%{subscription_link_end}").html_safe % { subscription_link_start: subscription_link_start, subscription_link_end: '</a>'.html_safe }
- else - else
......
...@@ -8,6 +8,7 @@ module EE ...@@ -8,6 +8,7 @@ module EE
SUBSCRIPTIONS_MORE_STORAGE_URL = ::Gitlab::SubscriptionPortal.subscriptions_more_storage_url.freeze SUBSCRIPTIONS_MORE_STORAGE_URL = ::Gitlab::SubscriptionPortal.subscriptions_more_storage_url.freeze
SUBSCRIPTIONS_MANAGE_URL = ::Gitlab::SubscriptionPortal.subscriptions_manage_url.freeze SUBSCRIPTIONS_MANAGE_URL = ::Gitlab::SubscriptionPortal.subscriptions_manage_url.freeze
SUBSCRIPTIONS_PLANS_URL = ::Gitlab::SubscriptionPortal.subscriptions_plans_url.freeze SUBSCRIPTIONS_PLANS_URL = ::Gitlab::SubscriptionPortal.subscriptions_plans_url.freeze
SUBSCRIPTIONS_GITLAB_PLANS_URL = ::Gitlab::SubscriptionPortal.subscriptions_gitlab_plans_url.freeze
SUBSCRIPTION_PORTAL_ADMIN_EMAIL = ::Gitlab::SubscriptionPortal.subscription_portal_admin_email.freeze SUBSCRIPTION_PORTAL_ADMIN_EMAIL = ::Gitlab::SubscriptionPortal.subscription_portal_admin_email.freeze
SUBSCRIPTION_PORTAL_ADMIN_TOKEN = ::Gitlab::SubscriptionPortal.subscription_portal_admin_token.freeze SUBSCRIPTION_PORTAL_ADMIN_TOKEN = ::Gitlab::SubscriptionPortal.subscription_portal_admin_token.freeze
CUSTOMER_SUPPORT_URL = ::Gitlab::Saas.customer_support_url.freeze CUSTOMER_SUPPORT_URL = ::Gitlab::Saas.customer_support_url.freeze
......
...@@ -24,7 +24,7 @@ RSpec.describe 'Billings > Extend / Reactivate Trial', :js do ...@@ -24,7 +24,7 @@ RSpec.describe 'Billings > Extend / Reactivate Trial', :js do
stub_ee_application_setting(should_check_namespace_plan: true) stub_ee_application_setting(should_check_namespace_plan: true)
stub_feature_flags(allow_extend_reactivate_trial: true) stub_feature_flags(allow_extend_reactivate_trial: true)
stub_billing_plans(nil) stub_billing_plans(nil)
stub_full_request("#{EE::SUBSCRIPTIONS_URL}/gitlab_plans?plan=#{plan.name}&namespace_id=#{group.id}") stub_full_request("#{EE::SUBSCRIPTIONS_GITLAB_PLANS_URL}?plan=#{plan.name}&namespace_id=#{group.id}")
.to_return(status: 200, body: plans_data.to_json) .to_return(status: 200, body: plans_data.to_json)
stub_full_request("#{EE::SUBSCRIPTIONS_URL}/trials/extend_reactivate_trial", method: :put) stub_full_request("#{EE::SUBSCRIPTIONS_URL}/trials/extend_reactivate_trial", method: :put)
.to_return(status: 200) .to_return(status: 200)
......
...@@ -20,7 +20,7 @@ RSpec.describe 'Billings > Qrtly Reconciliation Alert', :js do ...@@ -20,7 +20,7 @@ RSpec.describe 'Billings > Qrtly Reconciliation Alert', :js do
before do before do
stub_ee_application_setting(should_check_namespace_plan: true) stub_ee_application_setting(should_check_namespace_plan: true)
stub_full_request("#{EE::SUBSCRIPTIONS_URL}/gitlab_plans?plan=#{plan.name}&namespace_id=#{namespace.id}") stub_full_request("#{EE::SUBSCRIPTIONS_GITLAB_PLANS_URL}?plan=#{plan.name}&namespace_id=#{namespace.id}")
.to_return(status: 200, body: plans_data.to_json) .to_return(status: 200, body: plans_data.to_json)
sign_in(user) sign_in(user)
end end
......
...@@ -58,7 +58,7 @@ RSpec.describe 'Groups > Billing', :js do ...@@ -58,7 +58,7 @@ RSpec.describe 'Groups > Billing', :js do
expect(page).to have_content("#{group.name} is currently using the Free Plan") expect(page).to have_content("#{group.name} is currently using the Free Plan")
within subscription_table do within subscription_table do
expect(page).to have_content("start date #{formatted_date(subscription.start_date)}") expect(page).to have_content("start date #{formatted_date(subscription.start_date)}")
expect(page).to have_link("Upgrade", href: "#{EE::SUBSCRIPTIONS_URL}/subscriptions") expect(page).to have_link("Upgrade", href: EE::SUBSCRIPTIONS_MANAGE_URL)
expect(page).not_to have_link("Manage") expect(page).not_to have_link("Manage")
end end
end end
...@@ -85,7 +85,7 @@ RSpec.describe 'Groups > Billing', :js do ...@@ -85,7 +85,7 @@ RSpec.describe 'Groups > Billing', :js do
within subscription_table do within subscription_table do
expect(page).to have_content("start date #{formatted_date(subscription.start_date)}") expect(page).to have_content("start date #{formatted_date(subscription.start_date)}")
expect(page).to have_link("Upgrade", href: upgrade_url) expect(page).to have_link("Upgrade", href: upgrade_url)
expect(page).to have_link("Manage", href: "#{EE::SUBSCRIPTIONS_URL}/subscriptions") expect(page).to have_link("Manage", href: EE::SUBSCRIPTIONS_MANAGE_URL)
expect(page).to have_link("Add seats", href: extra_seats_url) expect(page).to have_link("Add seats", href: extra_seats_url)
expect(page).to have_link("Renew", href: renew_url) expect(page).to have_link("Renew", href: renew_url)
expect(page).to have_link("See usage", href: group_usage_quotas_path(group, anchor: 'seats-quota-tab')) expect(page).to have_link("See usage", href: group_usage_quotas_path(group, anchor: 'seats-quota-tab'))
...@@ -122,7 +122,7 @@ RSpec.describe 'Groups > Billing', :js do ...@@ -122,7 +122,7 @@ RSpec.describe 'Groups > Billing', :js do
expect(page).to have_content("#{group.name} is currently using the Bronze Plan") expect(page).to have_content("#{group.name} is currently using the Bronze Plan")
within subscription_table do within subscription_table do
expect(page).not_to have_link("Upgrade") expect(page).not_to have_link("Upgrade")
expect(page).to have_link("Manage", href: "#{EE::SUBSCRIPTIONS_URL}/subscriptions") expect(page).to have_link("Manage", href: EE::SUBSCRIPTIONS_MANAGE_URL)
end end
end end
end end
......
...@@ -12,7 +12,7 @@ RSpec.describe 'Welcome screen', :js do ...@@ -12,7 +12,7 @@ RSpec.describe 'Welcome screen', :js do
before do before do
group.add_owner(user) group.add_owner(user)
gitlab_sign_in(user) gitlab_sign_in(user)
stub_request(:get, "#{EE::SUBSCRIPTIONS_URL}/gitlab_plans?plan=free&namespace_id=") stub_request(:get, "#{EE::SUBSCRIPTIONS_GITLAB_PLANS_URL}?plan=free&namespace_id=")
.to_return(status: 200, body: '{}', headers: {}) .to_return(status: 200, body: '{}', headers: {})
visit edit_subscriptions_group_path(group.path, params) visit edit_subscriptions_group_path(group.path, params)
......
...@@ -7,7 +7,7 @@ RSpec.describe BillingPlansHelper do ...@@ -7,7 +7,7 @@ RSpec.describe BillingPlansHelper do
describe '#subscription_plan_data_attributes' do describe '#subscription_plan_data_attributes' do
let(:group) { build(:group) } let(:group) { build(:group) }
let(:customer_portal_url) { "#{EE::SUBSCRIPTIONS_URL}/subscriptions" } let(:customer_portal_url) { EE::SUBSCRIPTIONS_MANAGE_URL }
let(:add_seats_href) { "#{EE::SUBSCRIPTIONS_URL}/gitlab/namespaces/#{group.id}/extra_seats" } let(:add_seats_href) { "#{EE::SUBSCRIPTIONS_URL}/gitlab/namespaces/#{group.id}/extra_seats" }
let(:plan_renew_href) { "#{EE::SUBSCRIPTIONS_URL}/gitlab/namespaces/#{group.id}/renew" } let(:plan_renew_href) { "#{EE::SUBSCRIPTIONS_URL}/gitlab/namespaces/#{group.id}/renew" }
let(:billable_seats_href) { helper.group_usage_quotas_path(group, anchor: 'seats-quota-tab') } let(:billable_seats_href) { helper.group_usage_quotas_path(group, anchor: 'seats-quota-tab') }
......
...@@ -4,7 +4,7 @@ require 'spec_helper' ...@@ -4,7 +4,7 @@ require 'spec_helper'
RSpec.describe CustomersDot::ProxyController, type: :request do RSpec.describe CustomersDot::ProxyController, type: :request do
describe 'POST graphql' do describe 'POST graphql' do
let_it_be(:customers_dot) { "#{Gitlab::SubscriptionPortal::SUBSCRIPTIONS_URL}/graphql" } let_it_be(:customers_dot) { ::EE::SUBSCRIPTIONS_GRAPHQL_URL }
let_it_be(:default_headers) { { 'Content-Type' => 'application/json' } } let_it_be(:default_headers) { { 'Content-Type' => 'application/json' } }
shared_examples 'customersdot proxy' do shared_examples 'customersdot proxy' do
......
...@@ -6,7 +6,7 @@ RSpec.describe GitlabSubscriptions::FetchSubscriptionPlansService do ...@@ -6,7 +6,7 @@ RSpec.describe GitlabSubscriptions::FetchSubscriptionPlansService do
describe '#execute' do describe '#execute' do
subject(:execute_service) { described_class.new(plan: plan).execute } subject(:execute_service) { described_class.new(plan: plan).execute }
let(:endpoint_url) { "#{EE::SUBSCRIPTIONS_URL}/gitlab_plans" } let(:endpoint_url) { EE::SUBSCRIPTIONS_GITLAB_PLANS_URL }
let(:plan) { 'bronze' } let(:plan) { 'bronze' }
let(:response_mock) { double(body: [{ 'foo' => 'bar' }].to_json) } let(:response_mock) { double(body: [{ 'foo' => 'bar' }].to_json) }
......
...@@ -4,7 +4,7 @@ module SubscriptionPortalHelpers ...@@ -4,7 +4,7 @@ module SubscriptionPortalHelpers
include StubRequests include StubRequests
def stub_eoa_eligibility_request(namespace_id, eligible = false, free_upgrade_plan_id = nil, assisted_upgrade_plan_id = nil) def stub_eoa_eligibility_request(namespace_id, eligible = false, free_upgrade_plan_id = nil, assisted_upgrade_plan_id = nil)
stub_full_request("#{EE::SUBSCRIPTIONS_URL}/graphql", method: :post) stub_full_request(EE::SUBSCRIPTIONS_GRAPHQL_URL, method: :post)
.with( .with(
body: "{\"query\":\"{\\n subscription(namespaceId: \\\"#{namespace_id}\\\") {\\n eoaStarterBronzeEligible\\n assistedUpgradePlanId\\n freeUpgradePlanId\\n }\\n}\\n\"}", body: "{\"query\":\"{\\n subscription(namespaceId: \\\"#{namespace_id}\\\") {\\n eoaStarterBronzeEligible\\n assistedUpgradePlanId\\n freeUpgradePlanId\\n }\\n}\\n\"}",
headers: { headers: {
...@@ -28,7 +28,7 @@ module SubscriptionPortalHelpers ...@@ -28,7 +28,7 @@ module SubscriptionPortalHelpers
end end
def stub_billing_plans(namespace_id, plan = 'free', plans_data = nil, raise_error: nil) def stub_billing_plans(namespace_id, plan = 'free', plans_data = nil, raise_error: nil)
stub = stub_full_request("#{EE::SUBSCRIPTIONS_URL}/gitlab_plans?namespace_id=#{namespace_id}&plan=#{plan}") stub = stub_full_request("#{EE::SUBSCRIPTIONS_GITLAB_PLANS_URL}?namespace_id=#{namespace_id}&plan=#{plan}")
.with(headers: { 'Accept' => 'application/json' }) .with(headers: { 'Accept' => 'application/json' })
if raise_error if raise_error
stub.to_raise(raise_error) stub.to_raise(raise_error)
......
...@@ -38,6 +38,26 @@ module Gitlab ...@@ -38,6 +38,26 @@ module Gitlab
"#{self.subscriptions_url}/plans" "#{self.subscriptions_url}/plans"
end end
def self.subscriptions_gitlab_plans_url
"#{self.subscriptions_url}/gitlab_plans"
end
def self.subscriptions_instance_review_url
"#{self.subscriptions_url}/instance_review"
end
def self.add_extra_seats_url(group_id)
"#{self.subscriptions_url}/gitlab/namespaces/#{group_id}/extra_seats"
end
def self.upgrade_subscription_url(group_id, plan_id)
"#{self.subscriptions_url}/gitlab/namespaces/#{group_id}/upgrade/#{plan_id}"
end
def self.renew_subscription_url(group_id)
"#{self.subscriptions_url}/gitlab/namespaces/#{group_id}/renew"
end
def self.subscription_portal_admin_email def self.subscription_portal_admin_email
ENV.fetch('SUBSCRIPTION_PORTAL_ADMIN_EMAIL', 'gl_com_api@gitlab.com') ENV.fetch('SUBSCRIPTION_PORTAL_ADMIN_EMAIL', 'gl_com_api@gitlab.com')
end end
......
...@@ -6,7 +6,7 @@ RSpec.describe Admin::InstanceReviewController do ...@@ -6,7 +6,7 @@ RSpec.describe Admin::InstanceReviewController do
include UsageDataHelpers include UsageDataHelpers
let(:admin) { create(:admin) } let(:admin) { create(:admin) }
let(:subscriptions_url) { ::Gitlab::SubscriptionPortal::SUBSCRIPTIONS_URL } let(:subscriptions_instance_review_url) { Gitlab::SubscriptionPortal.subscriptions_instance_review_url }
before do before do
sign_in(admin) sign_in(admin)
...@@ -44,7 +44,7 @@ RSpec.describe Admin::InstanceReviewController do ...@@ -44,7 +44,7 @@ RSpec.describe Admin::InstanceReviewController do
notes_count: 0 notes_count: 0
} }.to_query } }.to_query
expect(response).to redirect_to("#{subscriptions_url}/instance_review?#{params}") expect(response).to redirect_to("#{subscriptions_instance_review_url}?#{params}")
end end
end end
...@@ -61,7 +61,7 @@ RSpec.describe Admin::InstanceReviewController do ...@@ -61,7 +61,7 @@ RSpec.describe Admin::InstanceReviewController do
version: ::Gitlab::VERSION version: ::Gitlab::VERSION
} }.to_query } }.to_query
expect(response).to redirect_to("#{subscriptions_url}/instance_review?#{params}") expect(response).to redirect_to("#{subscriptions_instance_review_url}?#{params}")
end end
end end
end end
......
...@@ -5,23 +5,88 @@ require 'spec_helper' ...@@ -5,23 +5,88 @@ require 'spec_helper'
RSpec.describe ::Gitlab::SubscriptionPortal do RSpec.describe ::Gitlab::SubscriptionPortal do
using RSpec::Parameterized::TableSyntax using RSpec::Parameterized::TableSyntax
where(:method_name, :test, :development, :result) do let(:env_value) { nil }
:default_subscriptions_url | false | false | 'https://customers.gitlab.com'
:default_subscriptions_url | false | true | 'https://customers.stg.gitlab.com' before do
:default_subscriptions_url | true | false | 'https://customers.stg.gitlab.com' stub_env('CUSTOMER_PORTAL_URL', env_value)
:payment_form_url | false | false | 'https://customers.gitlab.com/payment_forms/cc_validation'
:payment_form_url | false | true | 'https://customers.stg.gitlab.com/payment_forms/cc_validation'
:payment_form_url | true | false | 'https://customers.stg.gitlab.com/payment_forms/cc_validation'
end end
with_them do describe '.default_subscriptions_url' do
subject { described_class.method(method_name).call } where(:test, :development, :result) do
false | false | 'https://customers.gitlab.com'
false | true | 'https://customers.stg.gitlab.com'
true | false | 'https://customers.stg.gitlab.com'
end
before do before do
allow(Rails).to receive_message_chain(:env, :test?).and_return(test) allow(Rails).to receive_message_chain(:env, :test?).and_return(test)
allow(Rails).to receive_message_chain(:env, :development?).and_return(development) allow(Rails).to receive_message_chain(:env, :development?).and_return(development)
end end
it { is_expected.to eq(result) } with_them do
subject { described_class.default_subscriptions_url }
it { is_expected.to eq(result) }
end
end
describe '.subscriptions_url' do
subject { described_class.subscriptions_url }
context 'when CUSTOMER_PORTAL_URL ENV is unset' do
it { is_expected.to eq('https://customers.stg.gitlab.com') }
end
context 'when CUSTOMER_PORTAL_URL ENV is set' do
let(:env_value) { 'https://customers.example.com' }
it { is_expected.to eq(env_value) }
end
end
context 'url methods' do
where(:method_name, :result) do
:default_subscriptions_url | 'https://customers.stg.gitlab.com'
:payment_form_url | 'https://customers.stg.gitlab.com/payment_forms/cc_validation'
:subscriptions_graphql_url | 'https://customers.stg.gitlab.com/graphql'
:subscriptions_more_minutes_url | 'https://customers.stg.gitlab.com/buy_pipeline_minutes'
:subscriptions_more_storage_url | 'https://customers.stg.gitlab.com/buy_storage'
:subscriptions_manage_url | 'https://customers.stg.gitlab.com/subscriptions'
:subscriptions_plans_url | 'https://customers.stg.gitlab.com/plans'
:subscriptions_instance_review_url | 'https://customers.stg.gitlab.com/instance_review'
:subscriptions_gitlab_plans_url | 'https://customers.stg.gitlab.com/gitlab_plans'
:subscriptions_comparison_url | 'https://about.gitlab.com/pricing/gitlab-com/feature-comparison'
end
with_them do
subject { described_class.send(method_name) }
it { is_expected.to eq(result) }
end
end
describe '.add_extra_seats_url' do
subject { described_class.add_extra_seats_url(group_id) }
let(:group_id) { 153 }
it { is_expected.to eq("https://customers.stg.gitlab.com/gitlab/namespaces/#{group_id}/extra_seats") }
end
describe '.upgrade_subscription_url' do
subject { described_class.upgrade_subscription_url(group_id, plan_id) }
let(:group_id) { 153 }
let(:plan_id) { 5 }
it { is_expected.to eq("https://customers.stg.gitlab.com/gitlab/namespaces/#{group_id}/upgrade/#{plan_id}") }
end
describe '.renew_subscription_url' do
subject { described_class.renew_subscription_url(group_id) }
let(:group_id) { 153 }
it { is_expected.to eq("https://customers.stg.gitlab.com/gitlab/namespaces/#{group_id}/renew") }
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment