diff options
Diffstat (limited to 'spec/lib/gitlab/experimentation/controller_concern_spec.rb')
-rw-r--r-- | spec/lib/gitlab/experimentation/controller_concern_spec.rb | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/spec/lib/gitlab/experimentation/controller_concern_spec.rb b/spec/lib/gitlab/experimentation/controller_concern_spec.rb index 3678aeb18b0..5419a01ea3e 100644 --- a/spec/lib/gitlab/experimentation/controller_concern_spec.rb +++ b/spec/lib/gitlab/experimentation/controller_concern_spec.rb @@ -19,12 +19,15 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do } ) + allow(Gitlab).to receive(:dev_env_or_com?).and_return(is_gitlab_com) + Feature.enable_percentage_of_time(:backwards_compatible_test_experiment_experiment_percentage, enabled_percentage) Feature.enable_percentage_of_time(:test_experiment_experiment_percentage, enabled_percentage) end let(:enabled_percentage) { 10 } let(:rollout_strategy) { nil } + let(:is_gitlab_com) { true } controller(ApplicationController) do include Gitlab::Experimentation::ControllerConcern @@ -37,17 +40,17 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do describe '#set_experimentation_subject_id_cookie' do let(:do_not_track) { nil } let(:cookie) { cookies.permanent.signed[:experimentation_subject_id] } + let(:cookie_value) { nil } before do request.headers['DNT'] = do_not_track if do_not_track.present? + request.cookies[:experimentation_subject_id] = cookie_value if cookie_value get :index end context 'cookie is present' do - before do - cookies[:experimentation_subject_id] = 'test' - end + let(:cookie_value) { 'test' } it 'does not change the cookie' do expect(cookies[:experimentation_subject_id]).to eq 'test' @@ -75,6 +78,24 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do end end end + + context 'when not on gitlab.com' do + let(:is_gitlab_com) { false } + + context 'when cookie was set' do + let(:cookie_value) { 'test' } + + it 'cookie gets deleted' do + expect(cookie).not_to be_present + end + end + + context 'when no cookie was set before' do + it 'does nothing' do + expect(cookie).not_to be_present + end + end + end end describe '#push_frontend_experiment' do |