From 83b1fd120a67b0e1f10e2870a8c2923f5c1a6b42 Mon Sep 17 00:00:00 2001 From: Ash McKenzie Date: Thu, 27 Jun 2019 13:48:04 +1000 Subject: Add new OnboardingExperimentHelper modules OnboardingExperimentHelpers take care of determining if the current_user should or should not see the new onboarding feature. --- app/helpers/onboarding_experiment_helper.rb | 7 +++++ spec/helpers/onboarding_experiment_helper_spec.rb | 38 +++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 app/helpers/onboarding_experiment_helper.rb create mode 100644 spec/helpers/onboarding_experiment_helper_spec.rb 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 -- cgit v1.2.1