diff options
Diffstat (limited to 'spec/requests/sessions_spec.rb')
-rw-r--r-- | spec/requests/sessions_spec.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/spec/requests/sessions_spec.rb b/spec/requests/sessions_spec.rb index bc4ac3b7335..3bff9555834 100644 --- a/spec/requests/sessions_spec.rb +++ b/spec/requests/sessions_spec.rb @@ -3,6 +3,8 @@ require 'spec_helper' 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: :system_access do 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 |