diff options
Diffstat (limited to 'spec/requests/sessions_spec.rb')
-rw-r--r-- | spec/requests/sessions_spec.rb | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/spec/requests/sessions_spec.rb b/spec/requests/sessions_spec.rb index 7b3fd23980a..3bff9555834 100644 --- a/spec/requests/sessions_spec.rb +++ b/spec/requests/sessions_spec.rb @@ -2,7 +2,9 @@ require 'spec_helper' -RSpec.describe 'Sessions', feature_category: :authentication_and_authorization do +RSpec.describe 'Sessions', feature_category: :system_access do + include SessionHelpers + context 'authentication', :allow_forgery_protection do let(:user) { create(:user) } @@ -14,4 +16,48 @@ RSpec.describe 'Sessions', feature_category: :authentication_and_authorization d expect(response).to redirect_to(new_user_session_path) end end + + describe 'about_gitlab_active_user' do + before do + allow(::Gitlab).to receive(:com?).and_return(true) + end + + let(:user) { create(:user) } + + context 'when user signs in' do + it 'sets marketing cookie' do + post user_session_path(user: { login: user.username, password: user.password }) + expect(response.cookies['about_gitlab_active_user']).to be_present + end + end + + context 'when user uses remember_me' do + it 'sets marketing cookie' do + post user_session_path(user: { login: user.username, password: user.password, remember_me: true }) + expect(response.cookies['about_gitlab_active_user']).to be_present + end + end + + context 'when user signs out' do + before do + post user_session_path(user: { login: user.username, password: user.password }) + end + + it 'deletes marketing cookie' do + post(destroy_user_session_path) + expect(response.cookies['about_gitlab_active_user']).to be_nil + end + end + + context 'when user is not using GitLab SaaS' do + before do + allow(::Gitlab).to receive(:com?).and_return(false) + end + + it 'does not set marketing cookie' do + post user_session_path(user: { login: user.username, password: user.password }) + expect(response.cookies['about_gitlab_active_user']).to be_nil + end + end + end end |