Project

General

Profile

« Previous | Next » 

Revision f04d8d48

Added by Timo Goebel about 5 years ago

fixes #26488 - graphql: add currentUser query

View differences:

app/graphql/resolvers/user/current.rb
module Resolvers
module User
class Current < ::Resolvers::BaseResolver
type ::Types::User, null: true
def resolve
context[:current_user]
end
end
end
end
app/graphql/types/query.rb
field :node, field: GraphQL::Relay::Node.field
field :nodes, field: GraphQL::Relay::Node.plural_field
field :currentUser, Types::User, null: true, resolver: Resolvers::User::Current
record_field :model, Types::Model
collection_field :models, Types::Model
test/graphql/queries/current_user_query_test.rb
require 'test_helper'
class Queries::CurrentUserQueryTest < GraphQLQueryTestCase
let(:query) do
<<-GRAPHQL
query {
currentUser {
id
login
usergroups {
totalCount
edges {
node {
id
}
}
}
}
}
GRAPHQL
end
let(:user) { FactoryBot.create(:user, :with_usergroup) }
let(:global_id) { Foreman::GlobalId.for(user) }
let(:variables) {{}}
let(:data) { result['data']['currentUser'] }
context 'with logged in user' do
let(:context) {{ current_user: user }}
test 'fetching current user attributes' do
assert_empty result['errors']
assert_equal global_id, data['id']
assert_equal user.login, data['login']
assert_collection user.usergroups, data['usergroups']
end
end
context 'without logged in user' do
let(:context) {{ current_user: nil }}
test 'currentUser returns nil' do
assert_empty result['errors']
assert_nil data
end
end
end

Also available in: Unified diff