graphiti-rails 0.2.0 → 0.3.0
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/CHANGELOG.md +27 -1
- data/lib/generators/graphiti/api_test_generator.rb +6 -0
- data/lib/generators/graphiti/generator_mixin.rb +14 -0
- data/lib/generators/graphiti/resource_generator.rb +9 -4
- data/lib/generators/graphiti/templates/index_request_spec.rb.erb +1 -1
- data/lib/generators/graphiti/templates/resource_reads_spec.rb.erb +6 -6
- data/lib/generators/graphiti/templates/show_request_spec.rb.erb +1 -1
- data/lib/graphiti/rails/exception_handlers.rb +10 -1
- data/lib/graphiti/rails/railtie.rb +1 -1
- data/lib/graphiti/rails/version.rb +1 -1
- metadata +24 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bce137505cdca25b658def15e2bfde137b6cf16b7a80aaae9c21218c8ada8f59
|
4
|
+
data.tar.gz: f48bbbb85727bffa2367ca8f409574787fc2809c18115027c0c228208c8549a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28d90e3f09621739f7e743000114c478ee75520dc484baa36e28fe450f6a1f2ac85d084e2e25961d7347cc21c56f8a77019efb5146638591a6b760a218f42868
|
7
|
+
data.tar.gz: 9da0d55120df21ec87e99d5746c827f999d2c1efe92f568e03930f06edb5cf4b010ffb01a5b41ec19c15f6b86eb71dbd40837e7d6b9a58427b7a82f0d00c9a6f
|
data/CHANGELOG.md
CHANGED
@@ -7,4 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
---
|
9
9
|
|
10
|
-
|
10
|
+
## [0.3.0] - 2021-05-11
|
11
|
+
### Changed
|
12
|
+
- `rescue_registry` has been updated to 0.3.0. This causes some changes to error payloads.
|
13
|
+
[CHANGELOG](https://github.com/wagenet/rescue_registry/blob/master/CHANGELOG.md#030---2021-05-11)
|
14
|
+
|
15
|
+
## [0.2.4] - 2020-08-10
|
16
|
+
### Changed
|
17
|
+
- The `rails` dependency has been replaced with `railties`. - #60
|
18
|
+
|
19
|
+
## [0.2.3] - 2019-10-31
|
20
|
+
### Added
|
21
|
+
- Add option to use rawid in generated tests
|
22
|
+
|
23
|
+
## [0.2.2] - 2019-10-26
|
24
|
+
### Fixed
|
25
|
+
- Let user disable the logger
|
26
|
+
|
27
|
+
## [0.2.1] - 2019-06-13
|
28
|
+
### Added
|
29
|
+
- Include `__raw_errors__` in detailed error payloads for use by Vandal and Request Responses
|
30
|
+
|
31
|
+
### Fixed
|
32
|
+
- Do not depend on ActiveRecord for route generators
|
33
|
+
|
34
|
+
## [0.2.0] - 2019-05-27
|
35
|
+
|
36
|
+
Initial release
|
@@ -13,6 +13,12 @@ module Graphiti
|
|
13
13
|
aliases: ["--actions", "-a"],
|
14
14
|
desc: 'Array of controller actions, e.g. "index show destroy"'
|
15
15
|
|
16
|
+
class_option :'rawid',
|
17
|
+
type: :boolean,
|
18
|
+
default: false,
|
19
|
+
aliases: ["--rawid", "-r"],
|
20
|
+
desc: "Generate tests using rawid"
|
21
|
+
|
16
22
|
desc "Generates rspec request specs at spec/api"
|
17
23
|
def generate
|
18
24
|
generate_api_specs
|
@@ -41,5 +41,19 @@ module Graphiti
|
|
41
41
|
config = graphiti_config.merge(attrs)
|
42
42
|
File.open(".graphiticfg.yml", "w") { |f| f.write(config.to_yaml) }
|
43
43
|
end
|
44
|
+
|
45
|
+
def id_or_rawid
|
46
|
+
@options["rawid"] ? "rawid" : "id"
|
47
|
+
end
|
48
|
+
|
49
|
+
def sort_raw_ids
|
50
|
+
return unless @options["rawid"]
|
51
|
+
".sort"
|
52
|
+
end
|
53
|
+
|
54
|
+
def sort_raw_ids_descending
|
55
|
+
return unless @options["rawid"]
|
56
|
+
".sort.reverse"
|
57
|
+
end
|
44
58
|
end
|
45
59
|
end
|
@@ -14,6 +14,12 @@ module Graphiti
|
|
14
14
|
aliases: ["--omit-comments", "-c"],
|
15
15
|
desc: "Generate without documentation comments"
|
16
16
|
|
17
|
+
class_option :'rawid',
|
18
|
+
type: :boolean,
|
19
|
+
default: false,
|
20
|
+
aliases: ["--rawid", "-r"],
|
21
|
+
desc: "Generate tests using rawid"
|
22
|
+
|
17
23
|
class_option :actions,
|
18
24
|
type: :array,
|
19
25
|
default: nil,
|
@@ -132,10 +138,7 @@ module Graphiti
|
|
132
138
|
end
|
133
139
|
|
134
140
|
def generate_route
|
135
|
-
|
136
|
-
plural_name = try(:plural_route_name) || plural_table_name
|
137
|
-
|
138
|
-
code = "resources :#{plural_name}"
|
141
|
+
code = "resources :#{file_name.pluralize}"
|
139
142
|
code << %(, only: [#{actions.map { |a| ":#{a}" }.join(", ")}]) if actions.length < 5
|
140
143
|
code << "\n"
|
141
144
|
inject_into_file "config/routes.rb", after: /ApplicationResource.*$\n/ do
|
@@ -146,12 +149,14 @@ module Graphiti
|
|
146
149
|
def generate_resource_specs
|
147
150
|
opts = {}
|
148
151
|
opts[:actions] = @options[:actions] if @options[:actions]
|
152
|
+
opts[:rawid] = @options[:rawid] if @options[:rawid]
|
149
153
|
invoke "graphiti:resource_test", [resource_klass], opts
|
150
154
|
end
|
151
155
|
|
152
156
|
def generate_api_specs
|
153
157
|
opts = {}
|
154
158
|
opts[:actions] = @options[:actions] if @options[:actions]
|
159
|
+
opts[:rawid] = @options[:rawid] if @options[:rawid]
|
155
160
|
invoke "graphiti:api_test", [resource_klass], opts
|
156
161
|
end
|
157
162
|
|
@@ -16,7 +16,7 @@ RSpec.describe "<%= type %>#index", type: :request do
|
|
16
16
|
make_request
|
17
17
|
expect(response.status).to eq(200), response.body
|
18
18
|
expect(d.map(&:jsonapi_type).uniq).to match_array(['<%= type %>'])
|
19
|
-
expect(d.map(
|
19
|
+
expect(d.map(&:<%= id_or_rawid %>)).to match_array([<%= var %>1.id, <%= var %>2.id])
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
@@ -7,7 +7,7 @@ RSpec.describe <%= resource_class %>, type: :resource do
|
|
7
7
|
it 'works' do
|
8
8
|
render
|
9
9
|
data = jsonapi_data[0]
|
10
|
-
expect(data
|
10
|
+
expect(data.<%= id_or_rawid %>).to eq(<%= var %>.id)
|
11
11
|
expect(data.jsonapi_type).to eq('<%= type %>')
|
12
12
|
<%- attributes.each do |a| -%>
|
13
13
|
<%- if [:created_at, :updated_at].include?(a.name.to_sym) -%>
|
@@ -31,7 +31,7 @@ RSpec.describe <%= resource_class %>, type: :resource do
|
|
31
31
|
|
32
32
|
it 'works' do
|
33
33
|
render
|
34
|
-
expect(d.map(
|
34
|
+
expect(d.map(&:<%= id_or_rawid %>)).to eq([<%= var %>2.id])
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
@@ -48,10 +48,10 @@ RSpec.describe <%= resource_class %>, type: :resource do
|
|
48
48
|
|
49
49
|
it 'works' do
|
50
50
|
render
|
51
|
-
expect(d.map(
|
51
|
+
expect(d.map(&:<%= id_or_rawid %>)).to eq([
|
52
52
|
<%= var %>1.id,
|
53
53
|
<%= var %>2.id
|
54
|
-
])
|
54
|
+
]<%= sort_raw_ids %>)
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
@@ -62,10 +62,10 @@ RSpec.describe <%= resource_class %>, type: :resource do
|
|
62
62
|
|
63
63
|
it 'works' do
|
64
64
|
render
|
65
|
-
expect(d.map(
|
65
|
+
expect(d.map(&:<%= id_or_rawid %>)).to eq([
|
66
66
|
<%= var %>2.id,
|
67
67
|
<%= var %>1.id
|
68
|
-
])
|
68
|
+
]<%= sort_raw_ids_descending %>)
|
69
69
|
end
|
70
70
|
end
|
71
71
|
end
|
@@ -15,7 +15,7 @@ RSpec.describe "<%= type %>#show", type: :request do
|
|
15
15
|
make_request
|
16
16
|
expect(response.status).to eq(200)
|
17
17
|
expect(d.jsonapi_type).to eq('<%= type %>')
|
18
|
-
expect(d
|
18
|
+
expect(d.<%= id_or_rawid %>).to eq(<%= var %>.id)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -5,7 +5,16 @@ module Graphiti
|
|
5
5
|
def build_payload(show_details: false, traces: nil, style: :rails)
|
6
6
|
case style
|
7
7
|
when :standard
|
8
|
-
super(show_details: show_details, traces: traces)
|
8
|
+
super(show_details: show_details, traces: traces).tap do |payload|
|
9
|
+
if show_details
|
10
|
+
# For Vandal and Request Responses
|
11
|
+
payload[:__raw_error__] = {
|
12
|
+
message: exception.message,
|
13
|
+
debug: exception.instance_variable_get(:@__graphiti_debug),
|
14
|
+
backtrace: exception.backtrace
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
9
18
|
when :rails
|
10
19
|
# TODO: Find way to not duplicate RailsExceptionHandler
|
11
20
|
body = {
|
@@ -37,7 +37,7 @@ module Graphiti
|
|
37
37
|
|
38
38
|
initializer "graphti-rails.logger" do
|
39
39
|
config.after_initialize do
|
40
|
-
Graphiti.config.debug = ::Rails.logger.
|
40
|
+
Graphiti.config.debug = ::Rails.logger.debug? && Graphiti.config.debug
|
41
41
|
Graphiti.logger = ::Rails.logger
|
42
42
|
end
|
43
43
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphiti-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Wagenet
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: graphiti
|
@@ -30,16 +30,16 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.3.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.3.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: railties
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rails
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '5.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '5.0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rspec-rails
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -178,7 +192,7 @@ dependencies:
|
|
178
192
|
- - ">="
|
179
193
|
- !ruby/object:Gem::Version
|
180
194
|
version: '0'
|
181
|
-
description:
|
195
|
+
description:
|
182
196
|
email:
|
183
197
|
- peter.wagenet@gmail.com
|
184
198
|
executables: []
|
@@ -222,7 +236,7 @@ metadata:
|
|
222
236
|
bug_tracker_uri: https://github.com/graphiti-api/graphiti-rails/issues
|
223
237
|
changelog_uri: https://github.com/graphiti-api/graphiti-rails/CHANGELOG.md
|
224
238
|
source_code_uri: https://github.com/graphiti-api/graphiti-rails
|
225
|
-
post_install_message:
|
239
|
+
post_install_message:
|
226
240
|
rdoc_options: []
|
227
241
|
require_paths:
|
228
242
|
- lib
|
@@ -237,9 +251,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
237
251
|
- !ruby/object:Gem::Version
|
238
252
|
version: '0'
|
239
253
|
requirements: []
|
240
|
-
|
241
|
-
|
242
|
-
signing_key:
|
254
|
+
rubygems_version: 3.2.15
|
255
|
+
signing_key:
|
243
256
|
specification_version: 4
|
244
257
|
summary: Rails integration for Graphiti
|
245
258
|
test_files: []
|