Skip to content

Commit 9355e86

Browse files
Merge pull request #240 from graphql-devise/test-current-resource-set-public-fields
Test current_resource is set on public fields
2 parents b374247 + 5557da8 commit 9355e86

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

spec/dummy/app/graphql/types/query_type.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ class QueryType < BaseObject
1010
field :vip_field, String, null: false, authenticate: ->(user) { user.is_a?(User) && user.vip? }
1111

1212
def public_field
13-
'Field does not require authentication'
13+
if context[:current_resource]
14+
"Authenticated user on public field: #{context[:current_resource].email}"
15+
else
16+
'Field does not require authentication'
17+
end
1418
end
1519

1620
def private_field

spec/requests/user_controller_spec.rb

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,16 @@
3030
it 'does not require authentication' do
3131
expect(json_response[:data][:publicField]).to eq('Field does not require authentication')
3232
end
33+
34+
context 'when user sends authentication headers anyway' do
35+
let(:headers) { user.create_new_auth_token }
36+
37+
it 'sets current resource in the context' do
38+
expect(json_response[:data][:publicField]).to eq(
39+
"Authenticated user on public field: #{user.email}"
40+
)
41+
end
42+
end
3343
end
3444

3545
context 'when using an interpreter schema' do
@@ -38,6 +48,16 @@
3848
it 'does not require authentication' do
3949
expect(json_response[:data][:publicField]).to eq('Field does not require authentication')
4050
end
51+
52+
context 'when user sends authentication headers anyway' do
53+
let(:headers) { user.create_new_auth_token }
54+
55+
it 'sets current resource in the context' do
56+
expect(json_response[:data][:publicField]).to eq(
57+
"Authenticated user on public field: #{user.email}"
58+
)
59+
end
60+
end
4161
end
4262
end
4363

0 commit comments

Comments
 (0)