Commit b6f56547 authored by Vitaly Slobodin's avatar Vitaly Slobodin

Add helper method for displaying the extend/reactivate trial button

parent e7a075f7
......@@ -52,6 +52,28 @@ module EE
namespace&.errors&.full_messages&.to_sentence&.presence || service_result&.dig(:errors)&.presence
end
def show_extend_reactivate_trial_button?(namespace)
return false unless ::Feature.enabled?(:allow_extend_reactivate_trial, namespace, default_enabled: :yaml)
namespace.can_extend_trial? || namespace.can_reactivate_trial?
end
def extend_reactivate_trial_button_data(namespace)
action = if namespace.can_extend_trial?
'extend'
elsif namespace.can_reactivate_trial?
'reactivate'
else
nil
end
{
namespace_id: namespace.id,
plan_name: namespace.actual_plan_name.titleize,
action: action
}
end
private
def trial_group_namespaces
......
......@@ -180,4 +180,67 @@ RSpec.describe EE::TrialHelper do
end
end
end
describe '#show_extend_reactivate_trial_button?' do
let(:namespace) { build(:namespace) }
subject(:show_extend_reactivate_trial_button) { helper.show_extend_reactivate_trial_button?(namespace) }
context 'when feature flag is disabled' do
before do
allow(namespace).to receive(:can_extend_trial?).and_return(true)
allow(namespace).to receive(:can_reactivate_trial?).and_return(true)
stub_feature_flags(allow_extend_reactivate_trial: false)
end
it { is_expected.to be_falsey }
end
context 'when feature flag is enabled' do
where(:can_extend_trial, :can_reactivate_trial, :result) do
false | false | false
true | false | true
false | true | true
true | true | true
end
with_them do
before do
stub_feature_flags(allow_extend_reactivate_trial: true)
allow(namespace).to receive(:can_extend_trial?).and_return(can_extend_trial)
allow(namespace).to receive(:can_reactivate_trial?).and_return(can_reactivate_trial)
end
it { is_expected.to eq(result) }
end
end
end
describe '#extend_reactivate_trial_button_data' do
let(:namespace) { build(:namespace, id: 1) }
subject(:extend_reactivate_trial_button_data) { helper.extend_reactivate_trial_button_data(namespace) }
before do
allow(namespace).to receive(:actual_plan_name).and_return('ultimate')
end
context 'when trial can be extended' do
before do
allow(namespace).to receive(:can_extend_trial?).and_return(true)
end
it { is_expected.to eq({ namespace_id: 1, plan_name: 'Ultimate', action: 'extend' }) }
end
context 'when trial can be reactivated' do
before do
allow(namespace).to receive(:can_reactivate_trial?).and_return(true)
end
it { is_expected.to eq({ namespace_id: 1, plan_name: 'Ultimate', action: 'reactivate' }) }
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