graphql_helper_generator 0.0.10 → 0.0.13

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '08b77eb8ae11b3083370981becb7c8925a15b81855736c99fc6439a31e6d9ce2'
4
- data.tar.gz: c9a4091e35190a412dc03ac32b3d3906312629ae32f1c01925cb862539362633
3
+ metadata.gz: c2821a4fc6bbb71f557c677374667dadc286f55926f840d5db2f52d68383b603
4
+ data.tar.gz: a2f7272a6010ada74dc043cf1c27f4adb436e36c32326b9e1f6d57db64d21121
5
5
  SHA512:
6
- metadata.gz: d9dad9208c66b831fa83663cb44d3c71e8b800a21ed817e85a6fc6b85119a6a789d518f336289c12da72578824bb8bd417df684a1ee749e137187870a332d308
7
- data.tar.gz: df31eddaf855371688b648377347a3ad141f2f7d8bfb7cb0a16ae49cb0f88c6605d12b70c16d141fa0bab233cf64dc566c8a7ecea06b5dc0e2de1b1ca9feae11
6
+ metadata.gz: b57be25c6c726da420599a29e9542a7b04351a962b42079673a89d306218e030c08c858218099ecb52a616a7152aed444095ff1df13ae6e9254842ca34cc9cf0
7
+ data.tar.gz: 620112903cdd5a035fa8fd4f5f9b4cfaac5c5116172c2a278e5c4888a820f028975de591a73a24d7e0d1822b03621a587c0074f3f0597862afa80587128e9df0
Binary file
Binary file
Binary file
Binary file
@@ -2,7 +2,7 @@ require 'rails/generators'
2
2
  require 'fileutils'
3
3
 
4
4
  class GraphqlModelGenerator < Rails::Generators::NamedBase
5
- source_root File.expand_path('../templates', __dir__)
5
+ source_root File.expand_path('templates', __dir__)
6
6
 
7
7
  argument :fields, type: :array, default: [], banner: "field_name:field_type"
8
8
  class_option :name, type: :string
@@ -20,6 +20,7 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
20
20
  generate_create_mutation
21
21
  generate_update_mutation
22
22
  generate_delete_mutation
23
+ generate_create_test_lines
23
24
 
24
25
  if options[:input_type].present? then generate_input_type end
25
26
 
@@ -34,7 +35,7 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
34
35
  migration_name = @snake_case_name + ".rb"
35
36
  migration_dir = "db/migrate/" + prefix_name + "_" + migration_name
36
37
 
37
- template "templates/migration_template.erb", migration_dir
38
+ template "migration_template.erb", migration_dir
38
39
  end
39
40
 
40
41
  def generate_model
@@ -84,6 +85,14 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
84
85
  template "mutations/delete_mutation_template.erb", dir
85
86
  end
86
87
 
88
+ def generate_create_test
89
+ generate_create_test_lines
90
+ filename = "create_" + @snake_case_name + "_spec.rb"
91
+ dir = "spec/requests/" + filename
92
+
93
+ template "tests/create_test.erb", dir
94
+ end
95
+
87
96
  def generate_input_type
88
97
  filename = @snake_case_name + "_input_type.rb"
89
98
  dir = "app/graphql/types/inputs/" + filename
@@ -160,6 +169,27 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
160
169
  # print_array(@create_mutation_lines, "CREATE mutation lines")
161
170
  end
162
171
 
172
+ def generate_create_test_lines
173
+ @create_test_define_line =
174
+ @parsed_fields.filter{|f| !f[:reference].present? }.map{|field|
175
+ name = field[:name].camelize
176
+ name[0] = name[0].downcase
177
+ str = "$" + name + ": " + cast_to_graphql(field)
178
+ if field[:required].present? then str += "!" end
179
+ str
180
+ }.join(', ')
181
+
182
+ @create_test_input_line =
183
+ @parsed_fields.filter{|f| !f[:reference].present? }.map{|field|
184
+ name = field[:name].camelize
185
+ name[0] = name[0].downcase
186
+ str = name + ": " + "$" + name
187
+ }.join(', ')
188
+
189
+ puts @create_test_define_line + " <<<< DEFINE"
190
+ puts @create_test_input_line + " <<<< INPUT"
191
+ end
192
+
163
193
  def generate_type_fields
164
194
  @type_fields =
165
195
  @parsed_fields.map{|field|
@@ -0,0 +1,30 @@
1
+ RSpec.describe 'Create<%= @camelize_name %>', type: :request do
2
+ include_context 'authenticated user'
3
+
4
+ def query()
5
+ <%= " <<~GQL" %>
6
+ mutation Create<%= @camelize_name %>(<%= @create_test_define_line %>) {
7
+ create<%= @camelize_name %>(input: {<%= @create_test_input_line %>}) {
8
+ id
9
+ <%=
10
+ @parsed_fields.map{|field|
11
+ var = field[:name].camelize
12
+ var[0] = var[0].downcase
13
+ var
14
+ }.join("\n ")
15
+ %>
16
+ }
17
+ }
18
+ GQL
19
+ end
20
+
21
+ it 'create_<%= @snake_case_name %> success' do
22
+ <%= @snake_case_name%> = build(:<%= @snake_case_name %>)
23
+ variables = as_json(<%= @snake_case_name%>)
24
+
25
+ json = graphql(query, variables: variables)
26
+ data = json['create<%= @camelize_name %>']
27
+
28
+ expect(data).to include('id' => be_present)
29
+ end
30
+ end
@@ -1,3 +1,3 @@
1
1
  module GraphqlHelperGenerator
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.13"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql_helper_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oleg Savinov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-15 00:00:00.000000000 Z
11
+ date: 2022-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -49,19 +49,25 @@ files:
49
49
  - Rakefile
50
50
  - bin/console
51
51
  - bin/setup
52
+ - graphql-generator-0.0.12.gem
52
53
  - graphql-generator-0.0.8.gem
53
54
  - graphql_generator.gemspec
55
+ - graphql_helper_generator-0.0.10.gem
56
+ - graphql_helper_generator-0.0.11.gem
57
+ - graphql_helper_generator-0.0.12.gem
54
58
  - graphql_helper_generator-0.0.9.gem
55
59
  - lib/graphql_helper_generator.rb
56
60
  - lib/graphql_helper_generator/graphql_model/USAGE
57
61
  - lib/graphql_helper_generator/graphql_model/graphql_model_generator.rb
58
62
  - lib/graphql_helper_generator/graphql_model/templates/graphql_types/input_type_template.erb
63
+ - lib/graphql_helper_generator/graphql_model/templates/graphql_types/test/create_test.erb
59
64
  - lib/graphql_helper_generator/graphql_model/templates/graphql_types/type_template.erb
60
65
  - lib/graphql_helper_generator/graphql_model/templates/migration_template.erb
61
66
  - lib/graphql_helper_generator/graphql_model/templates/model_template.erb
62
67
  - lib/graphql_helper_generator/graphql_model/templates/mutations/create_mutation_template.erb
63
68
  - lib/graphql_helper_generator/graphql_model/templates/mutations/delete_mutation_template.erb
64
69
  - lib/graphql_helper_generator/graphql_model/templates/mutations/update_mutation_template.erb
70
+ - lib/graphql_helper_generator/graphql_model/templates/tests/create_test.erb
65
71
  - lib/graphql_helper_generator/railtie.rb
66
72
  - lib/graphql_helper_generator/version.rb
67
73
  homepage: