graphql_devise 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -1
  3. data/.rspec +1 -0
  4. data/.travis.yml +36 -18
  5. data/CHANGELOG.md +56 -0
  6. data/README.md +274 -35
  7. data/app/controllers/graphql_devise/application_controller.rb +4 -1
  8. data/app/controllers/graphql_devise/concerns/set_user_by_token.rb +23 -0
  9. data/app/controllers/graphql_devise/graphql_controller.rb +2 -0
  10. data/app/helpers/graphql_devise/mailer_helper.rb +2 -2
  11. data/config/routes.rb +18 -0
  12. data/graphql_devise.gemspec +3 -3
  13. data/lib/generators/graphql_devise/install_generator.rb +63 -30
  14. data/lib/graphql_devise.rb +32 -0
  15. data/lib/graphql_devise/concerns/controller_methods.rb +23 -0
  16. data/lib/graphql_devise/mount_method/operation_preparer.rb +2 -2
  17. data/lib/graphql_devise/mount_method/operation_preparers/resource_name_setter.rb +1 -1
  18. data/lib/graphql_devise/mutations/login.rb +4 -1
  19. data/lib/graphql_devise/mutations/resend_confirmation.rb +4 -1
  20. data/lib/graphql_devise/mutations/send_password_reset.rb +3 -2
  21. data/lib/graphql_devise/mutations/sign_up.rb +1 -9
  22. data/lib/graphql_devise/rails/routes.rb +5 -76
  23. data/lib/graphql_devise/resource_loader.rb +87 -0
  24. data/{app/graphql → lib}/graphql_devise/schema.rb +0 -1
  25. data/lib/graphql_devise/schema_plugin.rb +87 -0
  26. data/lib/graphql_devise/version.rb +1 -1
  27. data/spec/dummy/app/controllers/api/v1/graphql_controller.rb +11 -2
  28. data/spec/dummy/app/controllers/application_controller.rb +1 -0
  29. data/spec/dummy/app/graphql/dummy_schema.rb +9 -0
  30. data/spec/dummy/app/graphql/interpreter_schema.rb +9 -0
  31. data/spec/dummy/app/graphql/types/mutation_type.rb +1 -1
  32. data/spec/dummy/app/graphql/types/query_type.rb +10 -0
  33. data/spec/dummy/config/environments/test.rb +1 -1
  34. data/spec/dummy/config/routes.rb +1 -0
  35. data/spec/generators/graphql_devise/install_generator_spec.rb +62 -30
  36. data/spec/rails_helper.rb +4 -1
  37. data/spec/requests/graphql_controller_spec.rb +80 -0
  38. data/spec/requests/mutations/login_spec.rb +14 -2
  39. data/spec/requests/mutations/resend_confirmation_spec.rb +24 -9
  40. data/spec/requests/mutations/send_password_reset_spec.rb +9 -1
  41. data/spec/requests/mutations/sign_up_spec.rb +10 -0
  42. data/spec/requests/user_controller_spec.rb +180 -24
  43. data/spec/services/mount_method/operation_preparer_spec.rb +2 -2
  44. data/spec/services/mount_method/operation_preparers/custom_operation_preparer_spec.rb +1 -1
  45. data/spec/services/mount_method/operation_preparers/default_operation_preparer_spec.rb +1 -1
  46. data/spec/services/mount_method/operation_preparers/resource_name_setter_spec.rb +1 -1
  47. data/spec/services/resource_loader_spec.rb +82 -0
  48. data/spec/services/schema_plugin_spec.rb +26 -0
  49. data/spec/spec_helper.rb +1 -1
  50. metadata +33 -8
  51. data/spec/support/generators/file_helpers.rb +0 -12
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe GraphqlDevise::SchemaPlugin do
4
+ describe '#call' do
5
+ subject(:plugin) { described_class.new(query: query, mutation: mutation, resource_loaders: loaders) }
6
+
7
+ let(:query) { instance_double(GraphQL::Schema::Object) }
8
+ let(:mutation) { instance_double(GraphQL::Schema::Object) }
9
+
10
+ context 'when loaders are not provided' do
11
+ let(:loaders) { [] }
12
+
13
+ it 'does not fail' do
14
+ expect { plugin }.not_to raise_error
15
+ end
16
+ end
17
+
18
+ context 'when a loaders is not an instance of loader' do
19
+ let(:loaders) { ['not a loader instance'] }
20
+
21
+ it 'raises an error' do
22
+ expect { plugin }.to raise_error(GraphqlDevise::Error, 'Invalid resource loader instance')
23
+ end
24
+ end
25
+ end
26
+ end
@@ -4,7 +4,7 @@ if ENV['CI'] && !ENV['SKIP_COVERALLS']
4
4
 
5
5
  SimpleCov.formatter = Coveralls::SimpleCov::Formatter
6
6
  SimpleCov.start 'rails' do
7
- add_filter ['spec', 'lib/generators']
7
+ add_filter ['spec']
8
8
  end
9
9
  end
10
10
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql_devise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Celi
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-04-11 00:00:00.000000000 Z
12
+ date: 2020-06-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: devise_token_auth
@@ -18,6 +18,9 @@ dependencies:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: 0.1.43
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '2.0'
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
@@ -25,6 +28,9 @@ dependencies:
25
28
  - - ">="
26
29
  - !ruby/object:Gem::Version
27
30
  version: 0.1.43
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
28
34
  - !ruby/object:Gem::Dependency
29
35
  name: graphql
30
36
  requirement: !ruby/object:Gem::Requirement
@@ -32,6 +38,9 @@ dependencies:
32
38
  - - ">="
33
39
  - !ruby/object:Gem::Version
34
40
  version: '1.8'
41
+ - - "<"
42
+ - !ruby/object:Gem::Version
43
+ version: 1.11.0
35
44
  type: :runtime
36
45
  prerelease: false
37
46
  version_requirements: !ruby/object:Gem::Requirement
@@ -39,6 +48,9 @@ dependencies:
39
48
  - - ">="
40
49
  - !ruby/object:Gem::Version
41
50
  version: '1.8'
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: 1.11.0
42
54
  - !ruby/object:Gem::Dependency
43
55
  name: rails
44
56
  requirement: !ruby/object:Gem::Requirement
@@ -46,6 +58,9 @@ dependencies:
46
58
  - - ">="
47
59
  - !ruby/object:Gem::Version
48
60
  version: '4.2'
61
+ - - "<"
62
+ - !ruby/object:Gem::Version
63
+ version: '6.2'
49
64
  type: :runtime
50
65
  prerelease: false
51
66
  version_requirements: !ruby/object:Gem::Requirement
@@ -53,6 +68,9 @@ dependencies:
53
68
  - - ">="
54
69
  - !ruby/object:Gem::Version
55
70
  version: '4.2'
71
+ - - "<"
72
+ - !ruby/object:Gem::Version
73
+ version: '6.2'
56
74
  - !ruby/object:Gem::Dependency
57
75
  name: appraisal
58
76
  requirement: !ruby/object:Gem::Requirement
@@ -273,7 +291,6 @@ files:
273
291
  - app/controllers/graphql_devise/application_controller.rb
274
292
  - app/controllers/graphql_devise/concerns/set_user_by_token.rb
275
293
  - app/controllers/graphql_devise/graphql_controller.rb
276
- - app/graphql/graphql_devise/schema.rb
277
294
  - app/helpers/graphql_devise/application_helper.rb
278
295
  - app/helpers/graphql_devise/mailer_helper.rb
279
296
  - app/models/graphql_devise/concerns/model.rb
@@ -284,6 +301,7 @@ files:
284
301
  - bin/rails
285
302
  - bin/setup
286
303
  - config/locales/en.yml
304
+ - config/routes.rb
287
305
  - graphql_devise.gemspec
288
306
  - lib/generators/graphql_devise/install_generator.rb
289
307
  - lib/graphql_devise.rb
@@ -323,6 +341,9 @@ files:
323
341
  - lib/graphql_devise/resolvers/check_password_token.rb
324
342
  - lib/graphql_devise/resolvers/confirm_account.rb
325
343
  - lib/graphql_devise/resolvers/dummy.rb
344
+ - lib/graphql_devise/resource_loader.rb
345
+ - lib/graphql_devise/schema.rb
346
+ - lib/graphql_devise/schema_plugin.rb
326
347
  - lib/graphql_devise/types/authenticatable_type.rb
327
348
  - lib/graphql_devise/types/credential_type.rb
328
349
  - lib/graphql_devise/types/mutation_type.rb
@@ -335,6 +356,7 @@ files:
335
356
  - spec/dummy/app/controllers/api/v1/graphql_controller.rb
336
357
  - spec/dummy/app/controllers/application_controller.rb
337
358
  - spec/dummy/app/graphql/dummy_schema.rb
359
+ - spec/dummy/app/graphql/interpreter_schema.rb
338
360
  - spec/dummy/app/graphql/mutations/login.rb
339
361
  - spec/dummy/app/graphql/mutations/register_confirmed_user.rb
340
362
  - spec/dummy/app/graphql/mutations/sign_up.rb
@@ -395,7 +417,6 @@ files:
395
417
  - spec/dummy/log/development.log
396
418
  - spec/dummy/log/test.log
397
419
  - spec/dummy/public/robots.txt
398
- - spec/dummy/tmp/development_secret.txt
399
420
  - spec/factories/admins.rb
400
421
  - spec/factories/guests.rb
401
422
  - spec/factories/users.rb
@@ -404,6 +425,7 @@ files:
404
425
  - spec/graphql_devise_spec.rb
405
426
  - spec/models/user_spec.rb
406
427
  - spec/rails_helper.rb
428
+ - spec/requests/graphql_controller_spec.rb
407
429
  - spec/requests/mutations/additional_mutations_spec.rb
408
430
  - spec/requests/mutations/additional_queries_spec.rb
409
431
  - spec/requests/mutations/login_spec.rb
@@ -432,10 +454,11 @@ files:
432
454
  - spec/services/mount_method/option_validators/skip_only_validator_spec.rb
433
455
  - spec/services/mount_method/option_validators/supported_operations_validator_spec.rb
434
456
  - spec/services/mount_method/options_validator_spec.rb
457
+ - spec/services/resource_loader_spec.rb
458
+ - spec/services/schema_plugin_spec.rb
435
459
  - spec/spec_helper.rb
436
460
  - spec/support/contexts/graphql_request.rb
437
461
  - spec/support/factory_bot.rb
438
- - spec/support/generators/file_helpers.rb
439
462
  - spec/support/matchers/auth_headers_matcher.rb
440
463
  - spec/support/matchers/not_change_matcher.rb
441
464
  - spec/support/requests/auth_helpers.rb
@@ -461,7 +484,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
461
484
  - !ruby/object:Gem::Version
462
485
  version: '0'
463
486
  requirements: []
464
- rubygems_version: 3.0.6
487
+ rubygems_version: 3.1.4
465
488
  signing_key:
466
489
  specification_version: 4
467
490
  summary: GraphQL queries and mutations on top of devise_token_auth
@@ -474,6 +497,7 @@ test_files:
474
497
  - spec/dummy/app/models/users.rb
475
498
  - spec/dummy/app/models/application_record.rb
476
499
  - spec/dummy/app/models/user.rb
500
+ - spec/dummy/app/graphql/interpreter_schema.rb
477
501
  - spec/dummy/app/graphql/types/custom_admin_type.rb
478
502
  - spec/dummy/app/graphql/types/mutation_type.rb
479
503
  - spec/dummy/app/graphql/types/query_type.rb
@@ -533,9 +557,9 @@ test_files:
533
557
  - spec/dummy/db/development.sqlite3
534
558
  - spec/dummy/log/test.log
535
559
  - spec/dummy/log/development.log
536
- - spec/dummy/tmp/development_secret.txt
537
560
  - spec/graphql_devise_spec.rb
538
561
  - spec/models/user_spec.rb
562
+ - spec/requests/graphql_controller_spec.rb
539
563
  - spec/requests/user_controller_spec.rb
540
564
  - spec/requests/mutations/login_spec.rb
541
565
  - spec/requests/mutations/logout_spec.rb
@@ -551,7 +575,6 @@ test_files:
551
575
  - spec/support/contexts/graphql_request.rb
552
576
  - spec/support/requests/auth_helpers.rb
553
577
  - spec/support/requests/json_helpers.rb
554
- - spec/support/generators/file_helpers.rb
555
578
  - spec/support/matchers/not_change_matcher.rb
556
579
  - spec/support/matchers/auth_headers_matcher.rb
557
580
  - spec/factories/admins.rb
@@ -560,6 +583,7 @@ test_files:
560
583
  - spec/factories/users_customers.rb
561
584
  - spec/generators/graphql_devise/install_generator_spec.rb
562
585
  - spec/rails_helper.rb
586
+ - spec/services/schema_plugin_spec.rb
563
587
  - spec/services/mount_method/option_sanitizers/class_checker_spec.rb
564
588
  - spec/services/mount_method/option_sanitizers/array_checker_spec.rb
565
589
  - spec/services/mount_method/option_sanitizers/hash_checker_spec.rb
@@ -577,3 +601,4 @@ test_files:
577
601
  - spec/services/mount_method/option_validators/provided_operations_validator_spec.rb
578
602
  - spec/services/mount_method/option_validators/skip_only_validator_spec.rb
579
603
  - spec/services/mount_method/operation_sanitizer_spec.rb
604
+ - spec/services/resource_loader_spec.rb
@@ -1,12 +0,0 @@
1
- require 'fileutils'
2
-
3
- module Generators
4
- module FileHelpers
5
- def create_file_with_content(path, content)
6
- FileUtils.mkdir(File.dirname(path))
7
- File.open(path, 'w') do |f|
8
- f.write(content)
9
- end
10
- end
11
- end
12
- end