graphql_helper_generator 0.0.28 → 0.0.31

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: 34690fba5f9e8d33a0f45410616c3ff0ce2f251246e1254fa0316056a647d049
4
- data.tar.gz: 65cfc751c1c1de9ddf18c9924a8fe8885a0b1dc38a0114f8eb9fa92b04e3586d
3
+ metadata.gz: 79eb26879ede6b0db47ae7d5f90e615db3899251fb9967e70f7b3f219c997014
4
+ data.tar.gz: ddee13f7d9a8ce8fdcfbfc220c85444b76ef83d902631a6d2f8611efba14b64d
5
5
  SHA512:
6
- metadata.gz: 9a856035155810e47769416342997bc3fe686606d210bd1f966cf23f925ab704e36b2e815d52ba250a5d223dfe9778f9398a6d670a5d82f4742ea021bbcaf595
7
- data.tar.gz: 01f19e8eeaaefcf2234e2a88d56cac7d501cfd4a3d7a0dabb27432ed68e84ded65e490629f5fc4d270598b022f4f9c36bc950f95d0fed64e160832cf8d632b88
6
+ metadata.gz: edf6f2107a74de5049d964a4ea07078ed9ebb87484c74a20aa53658fcde9025dcb8771ce392fdf500ff108f9dfff725ccd1d32b0fa6aab90287629d7ef2293a3
7
+ data.tar.gz: 3b7d800f902fc9001caeaa70497ddbc6c3e9488e4b11ebe6a7310c8da605d1b9064907e57afe94a78d4ea4d32dbe8478390634cfbc193e2ae323838e3f99d1ad
@@ -101,6 +101,7 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
101
101
 
102
102
  def generate_create_test
103
103
  generate_create_test_lines
104
+ generate_references_creation
104
105
  filename = "create_" + @snake_case_name + "_spec.rb"
105
106
  dir = "spec/requests/" + filename
106
107
 
@@ -135,8 +136,6 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
135
136
 
136
137
  {name: name, type: type, required: required, array: array, reference: reference}
137
138
  }
138
-
139
- # print_array(@parsed_fields, "Parsed vars")
140
139
  end
141
140
 
142
141
  def generate_update_mutation_lines
@@ -144,7 +143,7 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
144
143
  @parsed_fields.map{|field|
145
144
  str = 'argument :'
146
145
  if field[:reference].present? || field[:type] == 'references'
147
- str = '# ' + str + field[:name].underscore + "s"
146
+ str = '# ' + str + field[:name].underscore + "_id"
148
147
  else
149
148
  str += field[:name].underscore
150
149
  end
@@ -153,7 +152,7 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
153
152
 
154
153
  type = cast_to_graphql(field)
155
154
 
156
- if field[:reference].present? then type = field[:name].camelize + "InputType" end
155
+ if field[:reference].present? then type = "ID" end
157
156
  if field[:array].present? then type = "[" + type + "]" end
158
157
  str += type + ', required: false'
159
158
  str
@@ -168,7 +167,6 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
168
167
  if field[:type] == 'references' then name += 'Id' end
169
168
  str = "$" + name + ": "
170
169
  type = cast_to_graphql_input(field)
171
- if field[:array].present? then type = '[' + type + ']' end
172
170
  str += type
173
171
  if field[:required].present? then str += "!" end
174
172
  str
@@ -220,11 +218,7 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
220
218
  if field[:array].present? then type = "[" + type + "]" end
221
219
 
222
220
  str += type
223
- if field[:required].present?
224
- str += ', required: true'
225
- else
226
- str += ', required: false'
227
- end
221
+ str += add_required(field)
228
222
  str
229
223
  }
230
224
  end
@@ -238,13 +232,16 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
238
232
  if field[:reference].present? || field[:type] == 'references' then type = field[:name].camelize + "Type" end
239
233
  if field[:array].present? then type = "[" + type + "]" end
240
234
  str += type
241
- if field[:required].present? then
242
- str += ', null: false'
235
+ str += add_null(field)
236
+
237
+ if field[:type] == 'references'
238
+ ref_id = 'field :' + field[:name].underscore + '_id, ID'
239
+ ref_id += add_null(field)
240
+ [str, ref_id]
243
241
  else
244
- str += ', null: true'
242
+ str
245
243
  end
246
- str
247
- }
244
+ }.flatten
248
245
  end
249
246
 
250
247
  def generate_model_lines
@@ -273,6 +270,17 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
273
270
  }
274
271
  end
275
272
 
273
+ def generate_references_creation
274
+ references = @parsed_fields.filter{|x| x[:type] == 'references'}
275
+ @create_reference =
276
+ references.map{|field|
277
+ "#{field[:name]} = create(:#{field[:name]})\n"
278
+ }
279
+
280
+ @include_references =
281
+ references.map{|field| ", #{field[:name]}: #{field[:name]}"}
282
+ end
283
+
276
284
  #
277
285
  # Helpers
278
286
  #
@@ -313,9 +321,28 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
313
321
  elsif type == 'Integer' then type = 'Int'
314
322
  elsif type == 'References' then type = 'ID'
315
323
  end
324
+
325
+ if field[:array].present? then type = '['+type+']' end
326
+
316
327
  type
317
328
  end
318
329
 
330
+ def add_required(field)
331
+ if field[:required].present?
332
+ ', required: true'
333
+ else
334
+ ', required: false'
335
+ end
336
+ end
337
+
338
+ def add_null(field)
339
+ if field[:required].present? then
340
+ ', null: false'
341
+ else
342
+ ', null: true'
343
+ end
344
+ end
345
+
319
346
  def handle_reference(options, type)
320
347
  if not type == 'references'
321
348
  return false
@@ -20,7 +20,8 @@ RSpec.describe 'Create<%= @camelize_name %>', type: :request, current: true do
20
20
  end
21
21
 
22
22
  it 'create_<%= @snake_case_name %> success' do
23
- <%= @snake_case_name%> = build(:<%= @snake_case_name %>)
23
+ <% for field in @create_reference %><%=field%><% end %>
24
+ <%= @snake_case_name%> = build(:<%= @snake_case_name %><%= @include_references.map{|x| x}.join%>)
24
25
  variables = as_json(<%= @snake_case_name%>)
25
26
 
26
27
  json = graphql(query, variables: variables)
@@ -10,8 +10,12 @@ FactoryBot.define do
10
10
  "rand(1..10000)"
11
11
  when "boolean"
12
12
  "false"
13
+ when "datetime"
14
+ "(Time.now + #{rand(1..5)}.hours).to_s"
13
15
  when "json"
14
- {hello: :world, new: 1}
16
+ {"hello": "world", "new": "1"}
17
+ when "references"
18
+ "create(:#{field[:name]})"
15
19
  else
16
20
  'nil'
17
21
  end
@@ -32,8 +36,12 @@ FactoryBot.define do
32
36
  "rand(1..10000)"
33
37
  when "boolean"
34
38
  "false"
39
+ when "datetime"
40
+ "(Time.now + #{rand(1..5)}.hours).to_s"
35
41
  when "json"
36
- {hello: :updated_world, updated: 100}
42
+ {"hello": "updated_world", "new_field": "100"}
43
+ when "references"
44
+ "create(:#{field[:name]})"
37
45
  else
38
46
  'nil'
39
47
  end
@@ -23,7 +23,7 @@ RSpec.describe 'Update<%= @camelize_name %>', type: :request, current: true do
23
23
  <%= @snake_case_name%> = create(:<%= @snake_case_name %>)
24
24
  updated_<%= @snake_case_name%> = build(:updated_<%= @snake_case_name %>)
25
25
  updated_<%= @snake_case_name%>.id = <%= @snake_case_name %>.id
26
- variables = updated_<%= @snake_case_name%>.to_json
26
+ variables = as_json(updated_<%= @snake_case_name%>)
27
27
 
28
28
  json = graphql(query, variables: variables)
29
29
  data = json['update<%= @camelize_name %>']
@@ -1,3 +1,3 @@
1
1
  module GraphqlHelperGenerator
2
- VERSION = "0.0.28"
2
+ VERSION = "0.0.31"
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.28
4
+ version: 0.0.31
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-18 00:00:00.000000000 Z
11
+ date: 2022-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -55,7 +55,6 @@ files:
55
55
  - lib/graphql_helper_generator/graphql_model/USAGE
56
56
  - lib/graphql_helper_generator/graphql_model/graphql_model_generator.rb
57
57
  - lib/graphql_helper_generator/graphql_model/templates/graphql_types/input_type_template.erb
58
- - lib/graphql_helper_generator/graphql_model/templates/graphql_types/test/create_test.erb
59
58
  - lib/graphql_helper_generator/graphql_model/templates/graphql_types/type_template.erb
60
59
  - lib/graphql_helper_generator/graphql_model/templates/migration_template.erb
61
60
  - lib/graphql_helper_generator/graphql_model/templates/model_template.erb