graphql_helper_generator 0.0.28 → 0.0.29

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: '0876cc158fd928020da6eb7c840aef257b0a768527cc0218a796a660e5c7f517'
4
+ data.tar.gz: 718825e0ebce8164350fc1c5144f9fb70344a8c65e2094a9c1fabb1110582974
5
5
  SHA512:
6
- metadata.gz: 9a856035155810e47769416342997bc3fe686606d210bd1f966cf23f925ab704e36b2e815d52ba250a5d223dfe9778f9398a6d670a5d82f4742ea021bbcaf595
7
- data.tar.gz: 01f19e8eeaaefcf2234e2a88d56cac7d501cfd4a3d7a0dabb27432ed68e84ded65e490629f5fc4d270598b022f4f9c36bc950f95d0fed64e160832cf8d632b88
6
+ metadata.gz: e3ac1e7ffc1c0513779420cdfd91204d9009445bbe2970e38e2a19e10b845ec3a59582926feb8a40f5b76d1356d13e2b80f587fbf01be17fb6439724b89c9817
7
+ data.tar.gz: 3df85456d159c9a133c268a305338d30c8b6cc4a79c9144a437a1d8f865f9fb657a5b8bc8a4766025e61d97c8f7c94d9c3b90fd5173d862fdcfeb986c0f48075
@@ -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
@@ -220,11 +219,7 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
220
219
  if field[:array].present? then type = "[" + type + "]" end
221
220
 
222
221
  str += type
223
- if field[:required].present?
224
- str += ', required: true'
225
- else
226
- str += ', required: false'
227
- end
222
+ str += add_required(field)
228
223
  str
229
224
  }
230
225
  end
@@ -238,13 +233,16 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
238
233
  if field[:reference].present? || field[:type] == 'references' then type = field[:name].camelize + "Type" end
239
234
  if field[:array].present? then type = "[" + type + "]" end
240
235
  str += type
241
- if field[:required].present? then
242
- str += ', null: false'
236
+ str += add_null(field)
237
+
238
+ if field[:type] == 'references'
239
+ ref_id = 'field :' + field[:name].underscore + '_id, ID'
240
+ ref_id += add_null(field)
241
+ [str, ref_id]
243
242
  else
244
- str += ', null: true'
243
+ str
245
244
  end
246
- str
247
- }
245
+ }.flatten
248
246
  end
249
247
 
250
248
  def generate_model_lines
@@ -273,6 +271,17 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
273
271
  }
274
272
  end
275
273
 
274
+ def generate_references_creation
275
+ references = @parsed_fields.filter{|x| x[:type] == 'references'}
276
+ @create_reference =
277
+ references.map{|field|
278
+ "#{field[:name]} = create(:#{field[:name]})\n"
279
+ }
280
+
281
+ @include_references =
282
+ references.map{|field| ", #{field[:name]}: #{field[:name]}"}
283
+ end
284
+
276
285
  #
277
286
  # Helpers
278
287
  #
@@ -316,6 +325,22 @@ class GraphqlModelGenerator < Rails::Generators::NamedBase
316
325
  type
317
326
  end
318
327
 
328
+ def add_required(field)
329
+ if field[:required].present?
330
+ ', required: true'
331
+ else
332
+ ', required: false'
333
+ end
334
+ end
335
+
336
+ def add_null(field)
337
+ if field[:required].present? then
338
+ ', null: false'
339
+ else
340
+ ', null: true'
341
+ end
342
+ end
343
+
319
344
  def handle_reference(options, type)
320
345
  if not type == 'references'
321
346
  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
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
42
  {hello: :updated_world, updated: 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.29"
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.29
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-19 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