graphql_devise 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
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