Commit 3afd7062 authored by Vitaly Slobodin's avatar Vitaly Slobodin

Methods can_{extend,reactivate}_trial? must rely on FF value

parent 555ab4f9
...@@ -303,10 +303,14 @@ module EE ...@@ -303,10 +303,14 @@ module EE
end end
def can_extend_trial? def can_extend_trial?
return false unless ::Feature.enabled?(:allow_extend_reactivate_trial, default_enabled: :yaml)
trial_active? && !trial_extended_or_reactivated? trial_active? && !trial_extended_or_reactivated?
end end
def can_reactivate_trial? def can_reactivate_trial?
return false unless ::Feature.enabled?(:allow_extend_reactivate_trial, default_enabled: :yaml)
!trial_active? && !never_had_trial? && !trial_extended_or_reactivated? && free_plan? !trial_active? && !never_had_trial? && !trial_extended_or_reactivated? && free_plan?
end end
......
...@@ -228,14 +228,32 @@ RSpec.describe EE::TrialHelper do ...@@ -228,14 +228,32 @@ RSpec.describe EE::TrialHelper do
end end
context 'when feature flag is disabled' do context 'when feature flag is disabled' do
it { is_expected.to eq({ namespace_id: 1, plan_name: 'Ultimate', action: nil })}
end
context 'when feature flag is enabled' do
before do before do
stub_feature_flags(allow_extend_reactivate_trial: true) stub_feature_flags(allow_extend_reactivate_trial: false)
end
context 'when trial can be extended' do
before do
allow(namespace).to receive(:trial_active?).and_return(true)
allow(namespace).to receive(:trial_extended_or_reactivated?).and_return(false)
end
it { is_expected.to eq({ namespace_id: 1, plan_name: 'Ultimate', action: nil })}
end end
context 'when trial can be reactivated' do
before do
allow(namespace).to receive(:trial_active?).and_return(false)
allow(namespace).to receive(:never_had_trial?).and_return(false)
allow(namespace).to receive(:trial_extended_or_reactivated?).and_return(false)
allow(namespace).to receive(:free_plan?).and_return(true)
end
it { is_expected.to eq({ namespace_id: 1, plan_name: 'Ultimate', action: nil }) }
end
end
context 'when feature flag is enabled' do
context 'when trial can be extended' do context 'when trial can be extended' do
before do before do
allow(namespace).to receive(:can_extend_trial?).and_return(true) allow(namespace).to receive(:can_extend_trial?).and_return(true)
......
...@@ -1232,54 +1232,82 @@ RSpec.describe Namespace do ...@@ -1232,54 +1232,82 @@ RSpec.describe Namespace do
describe '#can_extend_trial?' do describe '#can_extend_trial?' do
subject { namespace.can_extend_trial? } subject { namespace.can_extend_trial? }
where(:trial_active, :trial_extended_or_reactivated, :can_extend_trial) do context 'feature flag is disabled' do
false | false | false before do
false | true | false allow(namespace).to receive(:trial_active?).and_return(true)
true | false | true allow(namespace).to receive(:trial_extended_or_reactivated?).and_return(false)
true | true | false
stub_feature_flags(allow_extend_reactivate_trial: false)
end
it { is_expected.to be_falsey }
end end
with_them do context 'when feature flag is enabled' do
before do where(:trial_active, :trial_extended_or_reactivated, :can_extend_trial) do
allow(namespace).to receive(:trial_active?).and_return(trial_active) false | false | false
allow(namespace).to receive(:trial_extended_or_reactivated?).and_return(trial_extended_or_reactivated) false | true | false
true | false | true
true | true | false
end end
it { is_expected.to be can_extend_trial } with_them do
before do
allow(namespace).to receive(:trial_active?).and_return(trial_active)
allow(namespace).to receive(:trial_extended_or_reactivated?).and_return(trial_extended_or_reactivated)
end
it { is_expected.to be can_extend_trial }
end
end end
end end
describe '#can_reactivate_trial?' do describe '#can_reactivate_trial?' do
subject { namespace.can_reactivate_trial? } subject { namespace.can_reactivate_trial? }
where(:trial_active, :never_had_trial, :trial_extended_or_reactivated, :free_plan, :can_reactivate_trial) do context 'when feature flag is disabled' do
false | false | false | false | false before do
false | false | false | true | true allow(namespace).to receive(:trial_active?).and_return(false)
false | false | true | false | false allow(namespace).to receive(:never_had_trial?).and_return(false)
false | false | true | true | false allow(namespace).to receive(:trial_extended_or_reactivated?).and_return(false)
false | true | false | false | false allow(namespace).to receive(:free_plan?).and_return(true)
false | true | false | true | false
false | true | true | false | false stub_feature_flags(allow_extend_reactivate_trial: false)
false | true | true | true | false end
true | false | false | false | false
true | false | false | true | false it { is_expected.to be_falsey }
true | false | true | false | false
true | false | true | true | false
true | true | false | false | false
true | true | false | true | false
true | true | true | false | false
true | true | true | true | false
end end
with_them do context 'when feature flag is enabled' do
before do where(:trial_active, :never_had_trial, :trial_extended_or_reactivated, :free_plan, :can_reactivate_trial) do
allow(namespace).to receive(:trial_active?).and_return(trial_active) false | false | false | false | false
allow(namespace).to receive(:never_had_trial?).and_return(never_had_trial) false | false | false | true | true
allow(namespace).to receive(:trial_extended_or_reactivated?).and_return(trial_extended_or_reactivated) false | false | true | false | false
allow(namespace).to receive(:free_plan?).and_return(free_plan) false | false | true | true | false
false | true | false | false | false
false | true | false | true | false
false | true | true | false | false
false | true | true | true | false
true | false | false | false | false
true | false | false | true | false
true | false | true | false | false
true | false | true | true | false
true | true | false | false | false
true | true | false | true | false
true | true | true | false | false
true | true | true | true | false
end end
it { is_expected.to be can_reactivate_trial } with_them do
before do
allow(namespace).to receive(:trial_active?).and_return(trial_active)
allow(namespace).to receive(:never_had_trial?).and_return(never_had_trial)
allow(namespace).to receive(:trial_extended_or_reactivated?).and_return(trial_extended_or_reactivated)
allow(namespace).to receive(:free_plan?).and_return(free_plan)
end
it { is_expected.to be can_reactivate_trial }
end
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