diff options
Diffstat (limited to 'spec/controllers/graphql_controller_spec.rb')
-rw-r--r-- | spec/controllers/graphql_controller_spec.rb | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/spec/controllers/graphql_controller_spec.rb b/spec/controllers/graphql_controller_spec.rb index c5643f96b7a..405f1eae482 100644 --- a/spec/controllers/graphql_controller_spec.rb +++ b/spec/controllers/graphql_controller_spec.rb @@ -60,14 +60,28 @@ RSpec.describe GraphqlController do it 'updates the users last_activity_on field' do expect { post :execute }.to change { user.reload.last_activity_on } end + + it "sets context's sessionless value as false" do + post :execute + + expect(assigns(:context)[:is_sessionless_user]).to be false + end end context 'when user uses an API token' do let(:user) { create(:user, last_activity_on: Date.yesterday) } let(:token) { create(:personal_access_token, user: user, scopes: [:api]) } + subject { post :execute, params: { access_token: token.token } } + it 'updates the users last_activity_on field' do - expect { post :execute, params: { access_token: token.token } }.to change { user.reload.last_activity_on } + expect { subject }.to change { user.reload.last_activity_on } + end + + it "sets context's sessionless value as true" do + subject + + expect(assigns(:context)[:is_sessionless_user]).to be true end end @@ -77,6 +91,12 @@ RSpec.describe GraphqlController do expect(response).to have_gitlab_http_status(:ok) end + + it "sets context's sessionless value as false" do + post :execute + + expect(assigns(:context)[:is_sessionless_user]).to be false + end end end @@ -127,4 +147,22 @@ RSpec.describe GraphqlController do end end end + + describe '#append_info_to_payload' do + let(:graphql_query) { graphql_query_for('project', { 'fullPath' => 'foo' }, %w(id name)) } + let(:log_payload) { {} } + + before do + allow(controller).to receive(:append_info_to_payload).and_wrap_original do |method, *| + method.call(log_payload) + end + end + + it 'appends metadata for logging' do + post :execute, params: { query: graphql_query, operationName: 'Foo' } + + expect(controller).to have_received(:append_info_to_payload) + expect(log_payload.dig(:metadata, :graphql, :operation_name)).to eq('Foo') + end + end end |