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 +4 -4
- data/lib/graphql_helper_generator/graphql_model/graphql_model_generator.rb +42 -15
- data/lib/graphql_helper_generator/graphql_model/templates/tests/create_test_template.erb +2 -1
- data/lib/graphql_helper_generator/graphql_model/templates/tests/factory_template.erb +10 -2
- data/lib/graphql_helper_generator/graphql_model/templates/tests/update_test_template.erb +1 -1
- data/lib/graphql_helper_generator/version.rb +1 -1
- metadata +2 -3
- data/lib/graphql_helper_generator/graphql_model/templates/graphql_types/test/create_test.erb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79eb26879ede6b0db47ae7d5f90e615db3899251fb9967e70f7b3f219c997014
|
4
|
+
data.tar.gz: ddee13f7d9a8ce8fdcfbfc220c85444b76ef83d902631a6d2f8611efba14b64d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 + "
|
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 =
|
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
|
-
|
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
|
-
|
242
|
-
|
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
|
242
|
+
str
|
245
243
|
end
|
246
|
-
|
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
|
-
|
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:
|
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:
|
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
|
26
|
+
variables = as_json(updated_<%= @snake_case_name%>)
|
27
27
|
|
28
28
|
json = graphql(query, variables: variables)
|
29
29
|
data = json['update<%= @camelize_name %>']
|
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.
|
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-
|
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
|
data/lib/graphql_helper_generator/graphql_model/templates/graphql_types/test/create_test.erb
DELETED
File without changes
|