Commit 377b3d92 authored by Jason Goodman's avatar Jason Goodman Committed by Robert Speicher

Hide card in billing page for deprecated plans with override set

Allows to hide cards for certain deprecated plans
parent 8f35d011
......@@ -97,7 +97,13 @@ module BillingPlansHelper
def billing_available_plans(plans_data, current_plan)
return plans_data unless ::Feature.enabled?(:hide_deprecated_billing_plans)
plans_data.filter { |plan_data| !plan_data.deprecated? || plan_data.code == current_plan&.code }
plans_data.reject do |plan_data|
if plan_data.code == current_plan&.code
plan_data.deprecated? && plan_data.hide_deprecated_card?
else
plan_data.deprecated?
end
end
end
private
......
......@@ -271,11 +271,19 @@ RSpec.describe BillingPlansHelper do
end
describe '#billing_available_plans' do
let(:plan) { double('Plan', deprecated?: false, code: 'silver') }
let(:deprecated_plan) { double('Plan', deprecated?: true, code: 'bronze') }
let(:plan) { double('Plan', deprecated?: false, code: 'silver', hide_deprecated_card?: false) }
let(:deprecated_plan) { double('Plan', deprecated?: true, code: 'bronze', hide_deprecated_card?: false) }
let(:plans_data) { [plan, deprecated_plan] }
context 'when namespace is not on a plan' do
it 'returns plans without deprecated' do
expect(helper.billing_available_plans(plans_data, nil)).to eq([plan])
end
end
context 'when namespace is on an active plan' do
let(:current_plan) { Hashie::Mash.new(code: 'silver') }
it 'returns plans without deprecated' do
expect(helper.billing_available_plans(plans_data, nil)).to eq([plan])
end
......@@ -288,5 +296,23 @@ RSpec.describe BillingPlansHelper do
expect(helper.billing_available_plans(plans_data, current_plan)).to eq(plans_data)
end
end
context 'when namespace is on a deprecated plan that has hide_deprecated_card set to true' do
let(:current_plan) { Hashie::Mash.new(code: 'bronze') }
let(:deprecated_plan) { double('Plan', deprecated?: true, code: 'bronze', hide_deprecated_card?: true) }
it 'returns plans without the deprecated plan' do
expect(helper.billing_available_plans(plans_data, current_plan)).to eq([plan])
end
end
context 'when namespace is on a plan that has hide_deprecated_card set to true, but deprecated? is false' do
let(:current_plan) { Hashie::Mash.new(code: 'silver') }
let(:plan) { double('Plan', deprecated?: false, code: 'silver', hide_deprecated_card?: true) }
it 'returns plans with the deprecated plan' do
expect(helper.billing_available_plans(plans_data, current_plan)).to eq([plan])
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