graphql_helper_generator 0.0.27 → 0.0.30
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 +39 -14
- data/lib/graphql_helper_generator/graphql_model/templates/tests/create_test_template.erb +2 -1
- data/lib/graphql_helper_generator/graphql_model/templates/tests/delete_test_template.erb +1 -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: bca943f26c61af0614bacdd31a2b776da3a6f92c88124e18ec68257ec1b4930e
|
4
|
+
data.tar.gz: 208b19070a3ffdcf35b0cd897957ded5ef57d3cb361299cfab804b5a1c142d97
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a1c23d2cc09e601a5b9867a36c1fa36c9e37f23e8aa1ea66c540d0ed356aea372aabf269d0fcdea58709f7f48aae456e7bb65aaa01fb68ddfe29b8f37e29b59
|
7
|
+
data.tar.gz: c976e04a571870e6c5fdca9e551fbbfe38f452c2b5082480ca55b3907b41d5cd41beb1e30762ff1aad6b3ef9fd4a13d165cc9e1b4096ddefc5f3a55ca5288dc5
|
@@ -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
|
@@ -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
|
-
|
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
|
-
|
242
|
-
|
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
|
243
|
+
str
|
245
244
|
end
|
246
|
-
|
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
|
-
|
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)
|
@@ -31,7 +31,7 @@ RSpec.describe 'Delete<%= @camelize_name %>', type: :request, current: true do
|
|
31
31
|
@parsed_fields.filter{|f| !f[:reference].present? }.map{|field|
|
32
32
|
var = field[:name].camelize
|
33
33
|
var[0] = var[0].downcase
|
34
|
-
"expect(data).to include('#{var}' =>
|
34
|
+
"# expect(data).to include('#{var}' => #{@snake_case_name}.#{field[:name]})"
|
35
35
|
}.join("\n ")
|
36
36
|
%>
|
37
37
|
|
@@ -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.30
|
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
|