summaryrefslogtreecommitdiff
path: root/spec/controllers/graphql_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/graphql_controller_spec.rb')
-rw-r--r--spec/controllers/graphql_controller_spec.rb40
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