Commit 7a9c83cd authored by Mark Chao's avatar Mark Chao

Merge branch...

Merge branch '240917-ensure-user-submits-trial-form-during-new-user-onboarding-signup-process' into 'master'

Skip onboarding issues exp. when in trial flow

See merge request gitlab-org/gitlab!40304
parents 71d74443 bcbc7388
...@@ -216,7 +216,10 @@ class RegistrationsController < Devise::RegistrationsController ...@@ -216,7 +216,10 @@ class RegistrationsController < Devise::RegistrationsController
end end
def show_onboarding_issues_experiment? def show_onboarding_issues_experiment?
!helpers.in_subscription_flow? && !helpers.in_invitation_flow? && !helpers.in_oauth_flow? !helpers.in_subscription_flow? &&
!helpers.in_invitation_flow? &&
!helpers.in_oauth_flow? &&
!helpers.in_trial_flow?
end end
end end
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
.row.flex-grow-1.bg-gray-light .row.flex-grow-1.bg-gray-light
.d-flex.flex-column.align-items-center.w-100.gl-p-5 .d-flex.flex-column.align-items-center.w-100.gl-p-5
.edit-profile.login-page.d-flex.flex-column.align-items-center.pt-lg-3 .edit-profile.login-page.d-flex.flex-column.align-items-center.pt-lg-3
- if in_subscription_flow? || (onboarding_issues_experiment_enabled && !in_invitation_flow? && !in_oauth_flow?) - if in_subscription_flow? || (onboarding_issues_experiment_enabled && !in_invitation_flow? && !in_oauth_flow? && !in_trial_flow?)
#progress-bar{ data: { is_in_subscription_flow: in_subscription_flow?.to_s, is_onboarding_issues_experiment_enabled: onboarding_issues_experiment_enabled.to_s } } #progress-bar{ data: { is_in_subscription_flow: in_subscription_flow?.to_s, is_onboarding_issues_experiment_enabled: onboarding_issues_experiment_enabled.to_s } }
%h2.center= html_escape(_('Welcome to GitLab.com%{br_tag}@%{name}!')) % { name: html_escape(current_user.first_name), br_tag: '<br/>'.html_safe } %h2.center= html_escape(_('Welcome to GitLab.com%{br_tag}@%{name}!')) % { name: html_escape(current_user.first_name), br_tag: '<br/>'.html_safe }
%p %p
......
...@@ -87,29 +87,38 @@ RSpec.describe RegistrationsController do ...@@ -87,29 +87,38 @@ RSpec.describe RegistrationsController do
it { is_expected.not_to redirect_to new_users_sign_up_group_path } it { is_expected.not_to redirect_to new_users_sign_up_group_path }
end end
context 'when in trial flow' do
before do
allow(controller.helpers).to receive(:in_trial_flow?).and_return(true)
end
it { is_expected.not_to redirect_to new_users_sign_up_group_path }
end
end end
describe 'recording experiment user and track for the onboarding issues experiment' do describe 'recording experiment user and track for the onboarding issues experiment' do
using RSpec::Parameterized::TableSyntax using RSpec::Parameterized::TableSyntax
where(:on_gitlab_com, :experiment_enabled, :in_subscription_flow, :in_invitation_flow, :experiment_enabled_for_user, :experiment_group) do where(:on_gitlab_com, :experiment_enabled, :in_subscription_flow, :in_invitation_flow, :in_trial_flow, :experiment_enabled_for_user, :experiment_group) do
false | false | false | false | true | nil false | false | false | false | false | true | nil
false | false | false | true | true | nil false | false | false | true | false | true | nil
false | false | true | false | true | nil false | false | true | false | false | true | nil
false | false | true | true | true | nil false | false | true | true | false | true | nil
false | true | false | false | true | nil false | true | false | false | false | true | nil
false | true | false | true | true | nil false | true | false | true | false | true | nil
false | true | true | false | true | nil false | true | true | false | false | true | nil
false | true | true | true | true | nil false | true | true | true | false | true | nil
true | false | false | false | true | nil true | false | false | false | false | true | nil
true | false | false | true | true | nil true | false | false | true | false | true | nil
true | false | true | false | true | nil true | false | true | false | false | true | nil
true | false | true | true | true | nil true | false | true | true | false | true | nil
true | true | false | false | true | :experimental true | true | false | false | false | true | :experimental
true | true | false | false | false | :control true | true | false | false | false | false | :control
true | true | false | true | true | nil true | true | true | false | false | true | nil
true | true | true | false | true | nil true | true | false | true | false | true | nil
true | true | true | true | true | nil true | true | false | false | true | true | nil
true | true | true | true | true | true | nil
end end
with_them do with_them do
...@@ -118,6 +127,7 @@ RSpec.describe RegistrationsController do ...@@ -118,6 +127,7 @@ RSpec.describe RegistrationsController do
stub_experiment(onboarding_issues: experiment_enabled) stub_experiment(onboarding_issues: experiment_enabled)
allow(controller.helpers).to receive(:in_subscription_flow?).and_return(in_subscription_flow) allow(controller.helpers).to receive(:in_subscription_flow?).and_return(in_subscription_flow)
allow(controller.helpers).to receive(:in_invitation_flow?).and_return(in_invitation_flow) allow(controller.helpers).to receive(:in_invitation_flow?).and_return(in_invitation_flow)
allow(controller.helpers).to receive(:in_trial_flow?).and_return(in_trial_flow)
stub_experiment_for_user(onboarding_issues: experiment_enabled_for_user) stub_experiment_for_user(onboarding_issues: experiment_enabled_for_user)
end end
......
...@@ -7,6 +7,7 @@ RSpec.describe 'Welcome screen', :js do ...@@ -7,6 +7,7 @@ RSpec.describe 'Welcome screen', :js do
let(:in_invitation_flow) { false } let(:in_invitation_flow) { false }
let(:in_subscription_flow) { false } let(:in_subscription_flow) { false }
let(:in_trial_flow) { false }
let(:part_of_onboarding_issues_experiment) { false } let(:part_of_onboarding_issues_experiment) { false }
describe 'on GitLab.com' do describe 'on GitLab.com' do
...@@ -15,6 +16,7 @@ RSpec.describe 'Welcome screen', :js do ...@@ -15,6 +16,7 @@ RSpec.describe 'Welcome screen', :js do
gitlab_sign_in(user) gitlab_sign_in(user)
allow_any_instance_of(EE::RegistrationsHelper).to receive(:in_invitation_flow?).and_return(in_invitation_flow) allow_any_instance_of(EE::RegistrationsHelper).to receive(:in_invitation_flow?).and_return(in_invitation_flow)
allow_any_instance_of(EE::RegistrationsHelper).to receive(:in_subscription_flow?).and_return(in_subscription_flow) allow_any_instance_of(EE::RegistrationsHelper).to receive(:in_subscription_flow?).and_return(in_subscription_flow)
allow_any_instance_of(EE::RegistrationsHelper).to receive(:in_trial_flow?).and_return(in_trial_flow)
stub_experiment_for_user(onboarding_issues: part_of_onboarding_issues_experiment) stub_experiment_for_user(onboarding_issues: part_of_onboarding_issues_experiment)
visit users_sign_up_welcome_path visit users_sign_up_welcome_path
...@@ -47,6 +49,14 @@ RSpec.describe 'Welcome screen', :js do ...@@ -47,6 +49,14 @@ RSpec.describe 'Welcome screen', :js do
expect(page).not_to have_content('Your profile') expect(page).not_to have_content('Your profile')
end end
end end
context 'when in the trial flow' do
let(:in_trial_flow) { true }
it 'does not show the progress bar' do
expect(page).not_to have_content('Your profile')
end
end
end end
context 'when in the subscription flow and part of the onboarding issues experiment' do context 'when in the subscription flow and part of the onboarding issues experiment' do
......
...@@ -20,29 +20,27 @@ RSpec.describe 'registrations/welcome' do ...@@ -20,29 +20,27 @@ RSpec.describe 'registrations/welcome' do
subject { rendered } subject { rendered }
where(:in_subscription_flow, :in_trial_flow, :in_invitation_flow, :in_oauth_flow, :onboarding_issues_experiment_enabled, :flow) do where(:in_subscription_flow, :in_trial_flow, :in_invitation_flow, :in_oauth_flow, :onboarding_issues_experiment_enabled, :shows_progress_bar, :label_key, :is_continue_btn) do
false | false | false | false | false | :regular false | false | false | false | false | false | nil | false # regular
true | false | false | false | false | :subscription true | false | false | false | false | true | :subscription | true # subscription
false | true | false | false | false | :trial false | true | false | false | false | false | :trial | true # trial
false | false | true | false | false | :invitation false | false | true | false | false | false | nil | false # invitation
false | false | false | true | false | :oauth false | false | false | true | false | false | nil | false # oauth
false | false | false | false | true | :onboarding false | false | false | false | true | true | nil | true # onboarding
false | false | true | false | true | :onboarding_invitation true | false | false | false | true | true | :subscription | true # onboarding + subscription
false | false | false | true | true | :onboarding_oauth false | true | false | false | true | false | :trial | true # onboarding + trial
false | false | true | false | true | false | nil | false # onboarding + invitation
false | false | false | true | true | false | nil | false # onboarding + oauth
end end
def button_text def button_text
if %i(subscription trial onboarding).include?(flow) is_continue_btn ? 'Continue' : 'Get started!'
'Continue'
else
'Get started!'
end
end end
def label_text def label_text
if flow == :subscription if label_key == :subscription
'Who will be using this GitLab subscription?' 'Who will be using this GitLab subscription?'
elsif flow == :trial elsif label_key == :trial
'Who will be using this GitLab trial?' 'Who will be using this GitLab trial?'
else else
'Who will be using GitLab?' 'Who will be using GitLab?'
...@@ -53,7 +51,7 @@ RSpec.describe 'registrations/welcome' do ...@@ -53,7 +51,7 @@ RSpec.describe 'registrations/welcome' do
it { is_expected.to have_button(button_text) } it { is_expected.to have_button(button_text) }
it { is_expected.to have_selector('label[for="user_setup_for_company"]', text: label_text) } it { is_expected.to have_selector('label[for="user_setup_for_company"]', text: label_text) }
it do it do
if %i(subscription onboarding).include?(flow) if shows_progress_bar
is_expected.to have_selector('#progress-bar') is_expected.to have_selector('#progress-bar')
else else
is_expected.not_to have_selector('#progress-bar') is_expected.not_to have_selector('#progress-bar')
......
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