diff --git a/app/helpers/onboarding_experiment_helper.rb b/app/helpers/onboarding_experiment_helper.rb new file mode 100644 index 00000000000..ad49d333d7a --- /dev/null +++ b/app/helpers/onboarding_experiment_helper.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +module OnboardingExperimentHelper + def allow_access_to_onboarding? + ::Gitlab.com? && Feature.enabled?(:user_onboarding) + end +end diff --git a/spec/helpers/onboarding_experiment_helper_spec.rb b/spec/helpers/onboarding_experiment_helper_spec.rb new file mode 100644 index 00000000000..5b7d9b1c2e6 --- /dev/null +++ b/spec/helpers/onboarding_experiment_helper_spec.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe OnboardingExperimentHelper, type: :helper do + describe '.allow_access_to_onboarding?' do + context "when we're not gitlab.com" do + it 'returns false' do + allow(::Gitlab).to receive(:com?).and_return(false) + + expect(helper.allow_access_to_onboarding?).to be(false) + end + end + + context "when we're gitlab.com" do + before do + allow(::Gitlab).to receive(:com?).and_return(true) + end + + context 'and the :user_onboarding feature is not enabled' do + it 'returns false' do + stub_feature_flags(user_onboarding: false) + + expect(helper.allow_access_to_onboarding?).to be(false) + end + end + + context 'and the :user_onboarding feature is enabled' do + it 'returns true' do + stub_feature_flags(user_onboarding: true) + allow(helper).to receive(:current_user).and_return(create(:user)) + + expect(helper.allow_access_to_onboarding?).to be(true) + end + end + end + end +end