rails_twirp 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.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +21 -0
  3. data/.gitignore +1 -0
  4. data/.standard.yml +4 -0
  5. data/Gemfile +3 -3
  6. data/lib/rails_twirp.rb +1 -0
  7. data/lib/rails_twirp/base.rb +29 -10
  8. data/lib/rails_twirp/engine.rb +11 -6
  9. data/lib/rails_twirp/errors.rb +11 -0
  10. data/lib/rails_twirp/render_pb.rb +18 -0
  11. data/lib/rails_twirp/rescue.rb +14 -0
  12. data/lib/rails_twirp/route_set.rb +3 -0
  13. data/lib/rails_twirp/testing/integration_test.rb +6 -1
  14. data/lib/rails_twirp/version.rb +1 -1
  15. data/test/dummy/Rakefile +6 -0
  16. data/test/dummy/app/assets/config/manifest.js +2 -0
  17. data/test/dummy/app/assets/images/.keep +0 -0
  18. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  19. data/test/dummy/app/channels/application_cable/channel.rb +4 -0
  20. data/test/dummy/app/channels/application_cable/connection.rb +4 -0
  21. data/test/dummy/app/controllers/application_controller.rb +2 -0
  22. data/test/dummy/app/controllers/application_twirp_controller.rb +7 -0
  23. data/test/dummy/app/controllers/concerns/.keep +0 -0
  24. data/test/dummy/app/controllers/pings_controller.rb +39 -0
  25. data/test/dummy/app/helpers/application_helper.rb +2 -0
  26. data/test/dummy/app/javascript/packs/application.js +15 -0
  27. data/test/dummy/app/jobs/application_job.rb +7 -0
  28. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  29. data/test/dummy/app/models/application_record.rb +3 -0
  30. data/test/dummy/app/models/concerns/.keep +0 -0
  31. data/test/dummy/app/twirp/views/pings/ping_template.pb.pbbuilder +1 -0
  32. data/test/dummy/app/views/layouts/application.html.erb +15 -0
  33. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  34. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  35. data/test/dummy/bin/generate +3 -0
  36. data/test/dummy/bin/rails +4 -0
  37. data/test/dummy/bin/rake +4 -0
  38. data/test/dummy/bin/setup +33 -0
  39. data/test/dummy/config.ru +6 -0
  40. data/test/dummy/config/application.rb +23 -0
  41. data/test/dummy/config/boot.rb +5 -0
  42. data/test/dummy/config/cable.yml +10 -0
  43. data/test/dummy/config/database.yml +25 -0
  44. data/test/dummy/config/environment.rb +5 -0
  45. data/test/dummy/config/environments/development.rb +76 -0
  46. data/test/dummy/config/environments/production.rb +120 -0
  47. data/test/dummy/config/environments/test.rb +59 -0
  48. data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
  49. data/test/dummy/config/initializers/assets.rb +12 -0
  50. data/test/dummy/config/initializers/backtrace_silencers.rb +8 -0
  51. data/test/dummy/config/initializers/content_security_policy.rb +28 -0
  52. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  53. data/test/dummy/config/initializers/filter_parameter_logging.rb +6 -0
  54. data/test/dummy/config/initializers/inflections.rb +16 -0
  55. data/test/dummy/config/initializers/mime_types.rb +4 -0
  56. data/test/dummy/config/initializers/permissions_policy.rb +11 -0
  57. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  58. data/test/dummy/config/locales/en.yml +33 -0
  59. data/test/dummy/config/puma.rb +43 -0
  60. data/test/dummy/config/routes.rb +3 -0
  61. data/test/dummy/config/storage.yml +34 -0
  62. data/test/dummy/config/twirp/routes.rb +13 -0
  63. data/test/dummy/lib/assets/.keep +0 -0
  64. data/test/dummy/log/.keep +0 -0
  65. data/test/dummy/proto/api.proto +23 -0
  66. data/test/dummy/proto/api_pb.rb +22 -0
  67. data/test/dummy/proto/api_twirp.rb +23 -0
  68. data/test/dummy/public/404.html +67 -0
  69. data/test/dummy/public/422.html +67 -0
  70. data/test/dummy/public/500.html +66 -0
  71. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  72. data/test/dummy/public/apple-touch-icon.png +0 -0
  73. data/test/dummy/public/favicon.ico +0 -0
  74. data/test/ping_controller_test.rb +55 -0
  75. data/test/test_helper.rb +10 -1
  76. metadata +127 -2
File without changes
File without changes
@@ -0,0 +1,55 @@
1
+ require "test_helper"
2
+
3
+ class PingControllerTest < RailsTwirp::IntegrationTest
4
+ test "you can ping it" do
5
+ req = RPC::DummyAPI::PingRequest.new(name: "Bouke")
6
+ rpc RPC::DummyAPI::DummyService, "Ping", req
7
+ assert_equal "BoukeBouke", response.double_name
8
+ end
9
+
10
+ test "you can ping render" do
11
+ req = RPC::DummyAPI::PingRequest.new(name: "Bouke")
12
+ rpc RPC::DummyAPI::DummyService, "PingRender", req
13
+ refute_instance_of Twirp::Error, response
14
+ assert_equal "BoukeBouke", response.double_name
15
+ end
16
+
17
+ test "you can ping template" do
18
+ req = RPC::DummyAPI::PingRequest.new(name: "Bouke")
19
+ rpc RPC::DummyAPI::DummyService, "PingTemplate", req
20
+ refute_instance_of Twirp::Error, response
21
+ assert_equal "BoukeBouke", response.double_name
22
+ end
23
+
24
+ test "error response" do
25
+ req = RPC::DummyAPI::PingRequest.new
26
+ rpc RPC::DummyAPI::DummyService, "ErrorResponse", req
27
+ assert_instance_of Twirp::Error, response
28
+ assert_equal "You are not authenticated!!", response.msg
29
+ assert_equal :unauthenticated, response.code
30
+ end
31
+
32
+ test "raise error" do
33
+ req = RPC::DummyAPI::PingRequest.new
34
+ rpc RPC::DummyAPI::DummyService, "RaiseError", req
35
+ assert_instance_of Twirp::Error, response
36
+ assert_equal "Not found", response.msg
37
+ assert_equal :not_found, response.code
38
+ end
39
+
40
+ test "uncaught error" do
41
+ req = RPC::DummyAPI::PingRequest.new
42
+ rpc RPC::DummyAPI::DummyService, "UncaughtError", req
43
+ assert_instance_of Twirp::Error, response
44
+ assert_equal "Uncaught", response.msg
45
+ assert_equal :internal, response.code
46
+ end
47
+
48
+ test "before error" do
49
+ req = RPC::DummyAPI::PingRequest.new
50
+ rpc RPC::DummyAPI::DummyService, "BeforeError", req
51
+ assert_instance_of Twirp::Error, response
52
+ assert_equal "yOuR ReQuEsT Is mAlFoRmEd", response.msg
53
+ assert_equal :malformed, response.code
54
+ end
55
+ end
data/test/test_helper.rb CHANGED
@@ -1,7 +1,16 @@
1
1
  # Configure Rails Environment
2
2
  ENV["RAILS_ENV"] = "test"
3
3
 
4
- require "rails"
4
+ require_relative "../test/dummy/config/environment"
5
+ ActiveRecord::Migrator.migrations_paths = [File.expand_path("../test/dummy/db/migrate", __dir__)]
5
6
  require "rails/test_help"
6
7
  require "rails/test_unit/reporter"
7
8
  Rails::TestUnitReporter.executable = "bin/test"
9
+
10
+ # Load fixtures from the engine
11
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
12
+ ActiveSupport::TestCase.fixture_path = File.expand_path("fixtures", __dir__)
13
+ ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
14
+ ActiveSupport::TestCase.file_fixture_path = ActiveSupport::TestCase.fixture_path + "/files"
15
+ ActiveSupport::TestCase.fixtures :all
16
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_twirp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bouke van der Bijl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-31 00:00:00.000000000 Z
11
+ date: 2021-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -45,7 +45,9 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
+ - ".github/workflows/test.yml"
48
49
  - ".gitignore"
50
+ - ".standard.yml"
49
51
  - Gemfile
50
52
  - MIT-LICENSE
51
53
  - README.md
@@ -56,10 +58,73 @@ files:
56
58
  - lib/rails_twirp/application.rb
57
59
  - lib/rails_twirp/base.rb
58
60
  - lib/rails_twirp/engine.rb
61
+ - lib/rails_twirp/errors.rb
62
+ - lib/rails_twirp/render_pb.rb
63
+ - lib/rails_twirp/rescue.rb
59
64
  - lib/rails_twirp/route_set.rb
60
65
  - lib/rails_twirp/testing/integration_test.rb
61
66
  - lib/rails_twirp/version.rb
62
67
  - rails_twirp.gemspec
68
+ - test/dummy/Rakefile
69
+ - test/dummy/app/assets/config/manifest.js
70
+ - test/dummy/app/assets/images/.keep
71
+ - test/dummy/app/assets/stylesheets/application.css
72
+ - test/dummy/app/channels/application_cable/channel.rb
73
+ - test/dummy/app/channels/application_cable/connection.rb
74
+ - test/dummy/app/controllers/application_controller.rb
75
+ - test/dummy/app/controllers/application_twirp_controller.rb
76
+ - test/dummy/app/controllers/concerns/.keep
77
+ - test/dummy/app/controllers/pings_controller.rb
78
+ - test/dummy/app/helpers/application_helper.rb
79
+ - test/dummy/app/javascript/packs/application.js
80
+ - test/dummy/app/jobs/application_job.rb
81
+ - test/dummy/app/mailers/application_mailer.rb
82
+ - test/dummy/app/models/application_record.rb
83
+ - test/dummy/app/models/concerns/.keep
84
+ - test/dummy/app/twirp/views/pings/ping_template.pb.pbbuilder
85
+ - test/dummy/app/views/layouts/application.html.erb
86
+ - test/dummy/app/views/layouts/mailer.html.erb
87
+ - test/dummy/app/views/layouts/mailer.text.erb
88
+ - test/dummy/bin/generate
89
+ - test/dummy/bin/rails
90
+ - test/dummy/bin/rake
91
+ - test/dummy/bin/setup
92
+ - test/dummy/config.ru
93
+ - test/dummy/config/application.rb
94
+ - test/dummy/config/boot.rb
95
+ - test/dummy/config/cable.yml
96
+ - test/dummy/config/database.yml
97
+ - test/dummy/config/environment.rb
98
+ - test/dummy/config/environments/development.rb
99
+ - test/dummy/config/environments/production.rb
100
+ - test/dummy/config/environments/test.rb
101
+ - test/dummy/config/initializers/application_controller_renderer.rb
102
+ - test/dummy/config/initializers/assets.rb
103
+ - test/dummy/config/initializers/backtrace_silencers.rb
104
+ - test/dummy/config/initializers/content_security_policy.rb
105
+ - test/dummy/config/initializers/cookies_serializer.rb
106
+ - test/dummy/config/initializers/filter_parameter_logging.rb
107
+ - test/dummy/config/initializers/inflections.rb
108
+ - test/dummy/config/initializers/mime_types.rb
109
+ - test/dummy/config/initializers/permissions_policy.rb
110
+ - test/dummy/config/initializers/wrap_parameters.rb
111
+ - test/dummy/config/locales/en.yml
112
+ - test/dummy/config/puma.rb
113
+ - test/dummy/config/routes.rb
114
+ - test/dummy/config/storage.yml
115
+ - test/dummy/config/twirp/routes.rb
116
+ - test/dummy/lib/assets/.keep
117
+ - test/dummy/log/.keep
118
+ - test/dummy/proto/api.proto
119
+ - test/dummy/proto/api_pb.rb
120
+ - test/dummy/proto/api_twirp.rb
121
+ - test/dummy/public/404.html
122
+ - test/dummy/public/422.html
123
+ - test/dummy/public/500.html
124
+ - test/dummy/public/apple-touch-icon-precomposed.png
125
+ - test/dummy/public/apple-touch-icon.png
126
+ - test/dummy/public/favicon.ico
127
+ - test/ping_controller_test.rb
63
128
  - test/rails_twirp_test.rb
64
129
  - test/test_helper.rb
65
130
  homepage: https://github.com/cheddar-me/rails-twirp
@@ -86,5 +151,65 @@ signing_key:
86
151
  specification_version: 4
87
152
  summary: Integrate Twirp into Rails
88
153
  test_files:
154
+ - test/dummy/Rakefile
155
+ - test/dummy/app/assets/config/manifest.js
156
+ - test/dummy/app/assets/images/.keep
157
+ - test/dummy/app/assets/stylesheets/application.css
158
+ - test/dummy/app/channels/application_cable/channel.rb
159
+ - test/dummy/app/channels/application_cable/connection.rb
160
+ - test/dummy/app/controllers/application_controller.rb
161
+ - test/dummy/app/controllers/application_twirp_controller.rb
162
+ - test/dummy/app/controllers/concerns/.keep
163
+ - test/dummy/app/controllers/pings_controller.rb
164
+ - test/dummy/app/helpers/application_helper.rb
165
+ - test/dummy/app/javascript/packs/application.js
166
+ - test/dummy/app/jobs/application_job.rb
167
+ - test/dummy/app/mailers/application_mailer.rb
168
+ - test/dummy/app/models/application_record.rb
169
+ - test/dummy/app/models/concerns/.keep
170
+ - test/dummy/app/twirp/views/pings/ping_template.pb.pbbuilder
171
+ - test/dummy/app/views/layouts/application.html.erb
172
+ - test/dummy/app/views/layouts/mailer.html.erb
173
+ - test/dummy/app/views/layouts/mailer.text.erb
174
+ - test/dummy/bin/generate
175
+ - test/dummy/bin/rails
176
+ - test/dummy/bin/rake
177
+ - test/dummy/bin/setup
178
+ - test/dummy/config.ru
179
+ - test/dummy/config/application.rb
180
+ - test/dummy/config/boot.rb
181
+ - test/dummy/config/cable.yml
182
+ - test/dummy/config/database.yml
183
+ - test/dummy/config/environment.rb
184
+ - test/dummy/config/environments/development.rb
185
+ - test/dummy/config/environments/production.rb
186
+ - test/dummy/config/environments/test.rb
187
+ - test/dummy/config/initializers/application_controller_renderer.rb
188
+ - test/dummy/config/initializers/assets.rb
189
+ - test/dummy/config/initializers/backtrace_silencers.rb
190
+ - test/dummy/config/initializers/content_security_policy.rb
191
+ - test/dummy/config/initializers/cookies_serializer.rb
192
+ - test/dummy/config/initializers/filter_parameter_logging.rb
193
+ - test/dummy/config/initializers/inflections.rb
194
+ - test/dummy/config/initializers/mime_types.rb
195
+ - test/dummy/config/initializers/permissions_policy.rb
196
+ - test/dummy/config/initializers/wrap_parameters.rb
197
+ - test/dummy/config/locales/en.yml
198
+ - test/dummy/config/puma.rb
199
+ - test/dummy/config/routes.rb
200
+ - test/dummy/config/storage.yml
201
+ - test/dummy/config/twirp/routes.rb
202
+ - test/dummy/lib/assets/.keep
203
+ - test/dummy/log/.keep
204
+ - test/dummy/proto/api.proto
205
+ - test/dummy/proto/api_pb.rb
206
+ - test/dummy/proto/api_twirp.rb
207
+ - test/dummy/public/404.html
208
+ - test/dummy/public/422.html
209
+ - test/dummy/public/500.html
210
+ - test/dummy/public/apple-touch-icon-precomposed.png
211
+ - test/dummy/public/apple-touch-icon.png
212
+ - test/dummy/public/favicon.ico
213
+ - test/ping_controller_test.rb
89
214
  - test/rails_twirp_test.rb
90
215
  - test/test_helper.rb