trailblazer-endpoint 0.0.1 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +16 -0
  3. data/Appraisals +5 -0
  4. data/CHANGES.md +26 -0
  5. data/README.md +40 -5
  6. data/Rakefile +7 -1
  7. data/gemfiles/rails_app.gemfile +12 -0
  8. data/lib/trailblazer/endpoint.rb +29 -14
  9. data/lib/trailblazer/endpoint/adapter.rb +30 -121
  10. data/lib/trailblazer/endpoint/builder.rb +1 -1
  11. data/lib/trailblazer/endpoint/controller.rb +223 -0
  12. data/lib/trailblazer/endpoint/dsl.rb +29 -0
  13. data/lib/trailblazer/endpoint/options.rb +92 -0
  14. data/lib/trailblazer/endpoint/protocol.rb +5 -8
  15. data/lib/trailblazer/endpoint/version.rb +1 -1
  16. data/test/adapter/api_test.rb +6 -11
  17. data/test/adapter/web_test.rb +2 -5
  18. data/test/config_test.rb +128 -0
  19. data/test/docs/controller_test.rb +339 -58
  20. data/test/endpoint_test.rb +1 -1
  21. data/test/rails-app/.gitignore +8 -2
  22. data/test/rails-app/.ruby-version +1 -0
  23. data/test/rails-app/Gemfile +15 -9
  24. data/test/rails-app/Gemfile.lock +162 -121
  25. data/test/rails-app/app/concepts/app/api/v1/representer/errors.rb +16 -0
  26. data/test/rails-app/app/concepts/auth/jwt.rb +35 -0
  27. data/test/rails-app/app/concepts/auth/operation/authenticate.rb +32 -0
  28. data/test/rails-app/app/concepts/auth/operation/policy.rb +9 -0
  29. data/test/rails-app/app/concepts/song/cell/create.rb +4 -0
  30. data/test/rails-app/app/concepts/song/cell/new.rb +4 -0
  31. data/test/rails-app/app/concepts/song/operation/create.rb +17 -0
  32. data/test/rails-app/app/concepts/song/operation/show.rb +10 -0
  33. data/test/rails-app/app/concepts/song/representer.rb +5 -0
  34. data/test/rails-app/app/concepts/song/view/create.erb +1 -0
  35. data/test/rails-app/app/concepts/song/view/new.erb +1 -0
  36. data/test/rails-app/app/controllers/api/v1/songs_controller.rb +41 -0
  37. data/test/rails-app/app/controllers/application_controller.rb +8 -1
  38. data/test/rails-app/app/controllers/application_controller/api.rb +107 -0
  39. data/test/rails-app/app/controllers/application_controller/web.rb +44 -0
  40. data/test/rails-app/app/controllers/auth_controller.rb +44 -0
  41. data/test/rails-app/app/controllers/home_controller.rb +5 -0
  42. data/test/rails-app/app/controllers/songs_controller.rb +71 -13
  43. data/test/rails-app/app/models/song.rb +3 -0
  44. data/test/rails-app/app/models/user.rb +7 -0
  45. data/test/rails-app/bin/bundle +114 -0
  46. data/test/rails-app/bin/rails +4 -0
  47. data/test/rails-app/bin/rake +4 -0
  48. data/test/rails-app/bin/setup +33 -0
  49. data/test/rails-app/config/application.rb +26 -3
  50. data/test/rails-app/config/credentials.yml.enc +1 -0
  51. data/test/rails-app/config/database.yml +2 -2
  52. data/test/rails-app/config/environments/development.rb +7 -17
  53. data/test/rails-app/config/environments/production.rb +28 -23
  54. data/test/rails-app/config/environments/test.rb +8 -12
  55. data/test/rails-app/config/initializers/application_controller_renderer.rb +6 -4
  56. data/test/rails-app/config/initializers/cors.rb +16 -0
  57. data/test/rails-app/config/initializers/trailblazer.rb +2 -0
  58. data/test/rails-app/config/locales/en.yml +11 -1
  59. data/test/rails-app/config/master.key +1 -0
  60. data/test/rails-app/config/routes.rb +16 -4
  61. data/test/rails-app/db/schema.rb +15 -0
  62. data/test/rails-app/test/controllers/api_songs_controller_test.rb +87 -0
  63. data/test/rails-app/test/controllers/songs_controller_test.rb +80 -147
  64. data/test/rails-app/test/test_helper.rb +7 -1
  65. data/test/test_helper.rb +0 -2
  66. data/trailblazer-endpoint.gemspec +2 -1
  67. metadata +70 -22
  68. data/test/rails-app/config/initializers/cookies_serializer.rb +0 -5
  69. data/test/rails-app/config/initializers/new_framework_defaults.rb +0 -24
  70. data/test/rails-app/config/initializers/session_store.rb +0 -3
  71. data/test/rails-app/config/secrets.yml +0 -22
  72. data/test/rails-app/test/helpers/.keep +0 -0
  73. data/test/rails-app/test/integration/.keep +0 -0
  74. data/test/rails-app/test/mailers/.keep +0 -0
  75. data/test/rails-app/vendor/assets/javascripts/.keep +0 -0
  76. data/test/rails-app/vendor/assets/stylesheets/.keep +0 -0
@@ -1,156 +1,89 @@
1
1
  require "test_helper"
2
2
 
3
- module Reform
4
- Form = nil
5
- end # FIXME
6
-
7
-
8
- Song = Struct.new(:id, :title, :length) do
9
- def self.find_by(id:1); id=="0" ? nil : new(id, "A Song") end
10
- end
11
-
12
- require "trailblazer"
13
- require "trailblazer/operation/model"
14
- # require "reform/form/active_model/validations"
15
- require "trailblazer/operation/contract"
16
- require "trailblazer/operation/representer"
17
- require "trailblazer/operation/guard"
18
- require "trailblazer/endpoint"
19
-
20
-
21
- require "representable/json"
22
- class Serializer < Representable::Decorator
23
- include Representable::JSON
24
- property :id
25
- property :title
26
- property :length
27
-
28
- class Errors < Representable::Decorator
29
- include Representable::JSON
30
- property :messages
31
- end
32
- end
33
-
34
- class Deserializer < Representable::Decorator
35
- include Representable::JSON
36
- property :title
37
- end
38
-
39
-
40
- class Create < Trailblazer::Operation
41
- include Policy::Guard
42
- policy ->(*) { self["user.current"] == ::Module }
43
-
44
- extend Representer::DSL
45
- representer :serializer, Serializer
46
- representer :deserializer, Deserializer
47
- representer :errors, Serializer::Errors
48
- # self["representer.serializer.class"] = Representer
49
- # self["representer.deserializer.class"] = Deserializer
50
-
51
- include Model
52
- model Song, :create
53
-
54
- include Contract::Step
55
- include Representer::Deserializer::JSON
56
- # contract do
57
- # property :title
58
- # property :length
59
-
60
- # include Reform::Form::ActiveModel::Validations
61
- # validates :title, presence: true
62
- # end
63
-
64
- # FIXME: use trb-rails and reform
65
- class FakeContract
66
- def initialize(model,*); @model = model end
67
- def call(params)
68
- if params[:title]
69
- @title, @length = params[:title],params[:length]
70
- return Trailblazer::Operation::Result.new(true, {})
71
- end
72
-
73
- return Struct.new(:errors, :success?).new(Struct.new(:messages).new({"title": ["must be set"]}), false)
74
- end
75
- def sync; @model.title = @title; @model.length = @length; end
76
- end
77
-
78
- contract FakeContract
79
-
80
- def process(params)
81
- validate(params) do |f|
82
- self["contract"].sync
83
- self["model"].id = 9
84
- end
85
- end
86
- end
87
-
88
- class Update < Create
89
- action :find_by
90
- end
91
-
92
- # TODO: test present.
93
- class Show < Trailblazer::Operation
94
- include Policy::Guard
95
- policy ->(*) { self["user.current"] == ::Module }
96
-
97
- extend Representer::DSL
98
- representer :serializer, Serializer
99
-
100
- include Model
101
- model Song, :find_by
102
-
103
- self.> ->(input, options) { options["present"] = true }, before: "operation.result"
104
- end
105
-
106
- class SongsControllerTest < ActionController::TestCase
107
- # 404
108
- test "update 404" do
109
- post :update, params: { id: 0 }
110
- assert_equal 404, response.status
111
- end
112
-
3
+ class SongsControllerTest < ActionDispatch::IntegrationTest
4
+ test "all possible outcomes with {Create}" do
113
5
  # 401
114
- test "update 401" do
115
- post :update, params: { id: 1 }
116
- assert_equal 401, response.status
117
- end
118
-
119
- # 422
120
- # TODO: test when no error repr set.
121
- test "update 422" do
122
- post :create, params: { id: 1 }
123
- assert_equal 422, response.status
124
- assert_equal %{{\"messages\":{\"title\":[\"must be set\"]}}}, response.body
125
- end
126
-
127
- # 201
128
- test "create 201" do
129
- post :create, params: { id: 1, title: "AVH" }
130
- assert_equal 201, response.status
131
- assert_equal %{}, response.body
132
- assert_equal "/songs/9", response.header["Location"]
133
- end
134
-
135
- # 200 present
136
- test "show 200" do
137
- get :show, params: { id: 1 }
138
- assert_equal 200, response.status
139
- assert_equal %{{"id":"1","title":"A Song"}}, response.body
6
+ post "/songs", params: {}
7
+ assert_response 401
8
+ assert_equal "", response.body
9
+
10
+ # sign in
11
+ post "/auth/sign_in", params: {username: "yogi@trb.to", password: "secret"}
12
+ assert_equal 1, session[:user_id]
13
+ # follow_redirect!
14
+ assert_equal 1, session[:user_id]
15
+
16
+ post "/songs", params: {id: 1}
17
+ # default {success} block doesn't do anything
18
+ assert_response 200
19
+ assert_equal "", response.body
20
+
21
+ post "/songs", params: {}
22
+ # default {failure} block doesn't do anything
23
+ assert_response 422
24
+ assert_equal "", response.body
25
+
26
+ # 403
27
+ post "/songs", params: {policy: false}
28
+ assert_response 403
29
+ assert_equal "", response.body
30
+
31
+ post "/songs/create_with_options", params: {id: 1}
32
+ # {success} block renders model
33
+ assert_response 200
34
+ assert_equal "<div>#<struct Song id=\"1\">#<struct User id=2, email=\"seuros@trb.to\"></div>\n", response.body
35
+
36
+ post "/songs/create_with_options", params: {}
37
+ # default {failure} block doesn't do anything
38
+ assert_response 422
39
+ assert_equal "", response.body
40
+
41
+ post "/songs/create_with_or", params: {id: 1}
42
+ # {success} block renders model
43
+ assert_response 200
44
+ assert_equal "<div>#<struct Song id=\"1\">#<struct User id=1, email=\"yogi@trb.to\"></div>\n", response.body
45
+
46
+ post "/songs/create_with_or", params: {}
47
+ assert_response 200
48
+ assert_equal %{<div>#<struct errors=nil></div>\n}, response.body
49
+
50
+ # Or { render status: 422 }
51
+ post "/songs/create_or", params: {}
52
+ assert_response 422
53
+ assert_equal %{null}, response.body
54
+
55
+ # {:endpoint_ctx} is available in blocks
56
+ post "/songs/endpoint_ctx", params: {id: 1}
57
+ assert_response 200
58
+ assert_equal "Created", response.body
59
+ # assert_equal "[\"domain_ctx\",\"session\",\"controller\",\"config_source\",\"current_user\",\"domain_activity_return_signal\"]", response.body
60
+
61
+ # {:options_for_domain_ctx} overrides domain_ctx
62
+ post "/songs/create_with_options_for_domain_ctx", params: {id: 1} # params get overridden
63
+ assert_response 200
64
+ assert_equal "<div>#<struct Song id=999></div>\n", response.body
140
65
  end
141
66
 
142
- # 201 update
143
- test "update 200" do
144
- post :update_with_user, params: { id: 1, title: "AVH" }
145
- assert_equal 200, response.status
146
- assert_equal %{}, response.body
147
- assert_equal "/songs/9", response.header["Location"]
67
+ test "override protocol_failure" do
68
+ post "/songs/create_with_protocol_failure", params: {}
69
+ assert_response 500
70
+ assert_equal "wrong login, app crashed", response.body
148
71
  end
149
72
 
150
- # custom 999
151
- test "custom 999" do
152
- post :create_with_custom_handlers, params: { id: 1, title: "AVH" }
153
- assert_equal 999, response.status
154
- assert_equal %{{"id":9,"title":"AVH"}}, response.body
73
+ test "sign_in" do
74
+ # wrong credentials
75
+ post "/auth/sign_in", params: {}
76
+ assert_response 401
77
+ assert_equal "", response.body
78
+ assert_nil session[:user_id]
79
+
80
+ # valid signin
81
+ post "/auth/sign_in", params: {username: "yogi@trb.to", password: "secret"}
82
+ assert_response 302
83
+ # assert_equal "", response.body
84
+ assert_equal 1, session[:user_id]
85
+ assert_redirected_to "/"
155
86
  end
156
87
  end
88
+
89
+ # TODO: test 404 with NotFound config
@@ -1,10 +1,16 @@
1
1
  ENV['RAILS_ENV'] ||= 'test'
2
- require File.expand_path('../../config/environment', __FILE__)
2
+ require_relative '../config/environment'
3
3
  require 'rails/test_help'
4
4
 
5
5
  class ActiveSupport::TestCase
6
+ # Run tests in parallel with specified workers
7
+ parallelize(workers: :number_of_processors)
8
+
6
9
  # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
7
10
  fixtures :all
8
11
 
9
12
  # Add more helper methods to be used by all tests here...
10
13
  end
14
+
15
+ class Show < Trailblazer::Activity::Railway
16
+ end
@@ -7,8 +7,6 @@ require "trailblazer/endpoint"
7
7
  require "trailblazer/endpoint/protocol"
8
8
  require "trailblazer/endpoint/adapter"
9
9
 
10
- require "test_helper"
11
-
12
10
  Minitest::Spec.class_eval do
13
11
  T = Trailblazer::Activity::Testing
14
12
 
@@ -17,10 +17,11 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_dependency "trailblazer-activity-dsl-linear", ">= 0.2.9", "< 0.4.0"
20
+ spec.add_dependency "trailblazer-activity-dsl-linear", ">= 0.3.0", "< 0.4.0"
21
21
 
22
22
  spec.add_development_dependency "bundler"
23
23
  spec.add_development_dependency "rake"
24
24
  spec.add_development_dependency "minitest"
25
25
  spec.add_development_dependency "trailblazer-developer"
26
+ # spec.add_development_dependency "appraisal"
26
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trailblazer-endpoint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sutterer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-09 00:00:00.000000000 Z
11
+ date: 2020-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: trailblazer-activity-dsl-linear
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.2.9
19
+ version: 0.3.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 0.4.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.2.9
29
+ version: 0.3.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.4.0
@@ -94,14 +94,20 @@ executables: []
94
94
  extensions: []
95
95
  extra_rdoc_files: []
96
96
  files:
97
+ - ".gitignore"
98
+ - Appraisals
97
99
  - CHANGES.md
98
100
  - Gemfile
99
101
  - README.md
100
102
  - Rakefile
103
+ - gemfiles/rails_app.gemfile
101
104
  - lib/trailblazer-endpoint.rb
102
105
  - lib/trailblazer/endpoint.rb
103
106
  - lib/trailblazer/endpoint/adapter.rb
104
107
  - lib/trailblazer/endpoint/builder.rb
108
+ - lib/trailblazer/endpoint/controller.rb
109
+ - lib/trailblazer/endpoint/dsl.rb
110
+ - lib/trailblazer/endpoint/options.rb
105
111
  - lib/trailblazer/endpoint/protocol.rb
106
112
  - lib/trailblazer/endpoint/rails.rb
107
113
  - lib/trailblazer/endpoint/version.rb
@@ -109,21 +115,46 @@ files:
109
115
  - test/adapter/representable_test.rb
110
116
  - test/adapter/web_test.rb
111
117
  - test/benchmark/skill_resolver_benchmark.rb
118
+ - test/config_test.rb
112
119
  - test/docs/controller_test.rb
113
120
  - test/docs/endpoint_test.rb
114
121
  - test/endpoint_test.rb
115
122
  - test/rails-app/.gitignore
123
+ - test/rails-app/.ruby-version
116
124
  - test/rails-app/Gemfile
117
125
  - test/rails-app/Gemfile.lock
118
126
  - test/rails-app/README.md
119
127
  - test/rails-app/Rakefile
128
+ - test/rails-app/app/concepts/app/api/v1/representer/errors.rb
129
+ - test/rails-app/app/concepts/auth/jwt.rb
130
+ - test/rails-app/app/concepts/auth/operation/authenticate.rb
131
+ - test/rails-app/app/concepts/auth/operation/policy.rb
132
+ - test/rails-app/app/concepts/song/cell/create.rb
133
+ - test/rails-app/app/concepts/song/cell/new.rb
134
+ - test/rails-app/app/concepts/song/operation/create.rb
135
+ - test/rails-app/app/concepts/song/operation/show.rb
136
+ - test/rails-app/app/concepts/song/representer.rb
137
+ - test/rails-app/app/concepts/song/view/create.erb
138
+ - test/rails-app/app/concepts/song/view/new.erb
139
+ - test/rails-app/app/controllers/api/v1/songs_controller.rb
120
140
  - test/rails-app/app/controllers/application_controller.rb
141
+ - test/rails-app/app/controllers/application_controller/api.rb
142
+ - test/rails-app/app/controllers/application_controller/web.rb
143
+ - test/rails-app/app/controllers/auth_controller.rb
144
+ - test/rails-app/app/controllers/home_controller.rb
121
145
  - test/rails-app/app/controllers/songs_controller.rb
122
146
  - test/rails-app/app/models/application_record.rb
123
147
  - test/rails-app/app/models/concerns/.keep
148
+ - test/rails-app/app/models/song.rb
149
+ - test/rails-app/app/models/user.rb
150
+ - test/rails-app/bin/bundle
151
+ - test/rails-app/bin/rails
152
+ - test/rails-app/bin/rake
153
+ - test/rails-app/bin/setup
124
154
  - test/rails-app/config.ru
125
155
  - test/rails-app/config/application.rb
126
156
  - test/rails-app/config/boot.rb
157
+ - test/rails-app/config/credentials.yml.enc
127
158
  - test/rails-app/config/database.yml
128
159
  - test/rails-app/config/environment.rb
129
160
  - test/rails-app/config/environments/development.rb
@@ -131,30 +162,26 @@ files:
131
162
  - test/rails-app/config/environments/test.rb
132
163
  - test/rails-app/config/initializers/application_controller_renderer.rb
133
164
  - test/rails-app/config/initializers/backtrace_silencers.rb
134
- - test/rails-app/config/initializers/cookies_serializer.rb
165
+ - test/rails-app/config/initializers/cors.rb
135
166
  - test/rails-app/config/initializers/filter_parameter_logging.rb
136
167
  - test/rails-app/config/initializers/inflections.rb
137
168
  - test/rails-app/config/initializers/mime_types.rb
138
- - test/rails-app/config/initializers/new_framework_defaults.rb
139
- - test/rails-app/config/initializers/session_store.rb
169
+ - test/rails-app/config/initializers/trailblazer.rb
140
170
  - test/rails-app/config/initializers/wrap_parameters.rb
141
171
  - test/rails-app/config/locales/en.yml
172
+ - test/rails-app/config/master.key
142
173
  - test/rails-app/config/routes.rb
143
- - test/rails-app/config/secrets.yml
174
+ - test/rails-app/db/schema.rb
144
175
  - test/rails-app/db/seeds.rb
145
176
  - test/rails-app/log/.keep
146
177
  - test/rails-app/test/controllers/.keep
178
+ - test/rails-app/test/controllers/api_songs_controller_test.rb
147
179
  - test/rails-app/test/controllers/songs_controller_test.rb
148
180
  - test/rails-app/test/fixtures/.keep
149
181
  - test/rails-app/test/fixtures/files/.keep
150
- - test/rails-app/test/helpers/.keep
151
- - test/rails-app/test/integration/.keep
152
- - test/rails-app/test/mailers/.keep
153
182
  - test/rails-app/test/models/.keep
154
183
  - test/rails-app/test/test_helper.rb
155
184
  - test/rails-app/tmp/.keep
156
- - test/rails-app/vendor/assets/javascripts/.keep
157
- - test/rails-app/vendor/assets/stylesheets/.keep
158
185
  - test/test_helper.rb
159
186
  - trailblazer-endpoint.gemspec
160
187
  homepage: http://trailblazer.to/gems/operation/endpoint.html
@@ -187,21 +214,46 @@ test_files:
187
214
  - test/adapter/representable_test.rb
188
215
  - test/adapter/web_test.rb
189
216
  - test/benchmark/skill_resolver_benchmark.rb
217
+ - test/config_test.rb
190
218
  - test/docs/controller_test.rb
191
219
  - test/docs/endpoint_test.rb
192
220
  - test/endpoint_test.rb
193
221
  - test/rails-app/.gitignore
222
+ - test/rails-app/.ruby-version
194
223
  - test/rails-app/Gemfile
195
224
  - test/rails-app/Gemfile.lock
196
225
  - test/rails-app/README.md
197
226
  - test/rails-app/Rakefile
227
+ - test/rails-app/app/concepts/app/api/v1/representer/errors.rb
228
+ - test/rails-app/app/concepts/auth/jwt.rb
229
+ - test/rails-app/app/concepts/auth/operation/authenticate.rb
230
+ - test/rails-app/app/concepts/auth/operation/policy.rb
231
+ - test/rails-app/app/concepts/song/cell/create.rb
232
+ - test/rails-app/app/concepts/song/cell/new.rb
233
+ - test/rails-app/app/concepts/song/operation/create.rb
234
+ - test/rails-app/app/concepts/song/operation/show.rb
235
+ - test/rails-app/app/concepts/song/representer.rb
236
+ - test/rails-app/app/concepts/song/view/create.erb
237
+ - test/rails-app/app/concepts/song/view/new.erb
238
+ - test/rails-app/app/controllers/api/v1/songs_controller.rb
198
239
  - test/rails-app/app/controllers/application_controller.rb
240
+ - test/rails-app/app/controllers/application_controller/api.rb
241
+ - test/rails-app/app/controllers/application_controller/web.rb
242
+ - test/rails-app/app/controllers/auth_controller.rb
243
+ - test/rails-app/app/controllers/home_controller.rb
199
244
  - test/rails-app/app/controllers/songs_controller.rb
200
245
  - test/rails-app/app/models/application_record.rb
201
246
  - test/rails-app/app/models/concerns/.keep
247
+ - test/rails-app/app/models/song.rb
248
+ - test/rails-app/app/models/user.rb
249
+ - test/rails-app/bin/bundle
250
+ - test/rails-app/bin/rails
251
+ - test/rails-app/bin/rake
252
+ - test/rails-app/bin/setup
202
253
  - test/rails-app/config.ru
203
254
  - test/rails-app/config/application.rb
204
255
  - test/rails-app/config/boot.rb
256
+ - test/rails-app/config/credentials.yml.enc
205
257
  - test/rails-app/config/database.yml
206
258
  - test/rails-app/config/environment.rb
207
259
  - test/rails-app/config/environments/development.rb
@@ -209,28 +261,24 @@ test_files:
209
261
  - test/rails-app/config/environments/test.rb
210
262
  - test/rails-app/config/initializers/application_controller_renderer.rb
211
263
  - test/rails-app/config/initializers/backtrace_silencers.rb
212
- - test/rails-app/config/initializers/cookies_serializer.rb
264
+ - test/rails-app/config/initializers/cors.rb
213
265
  - test/rails-app/config/initializers/filter_parameter_logging.rb
214
266
  - test/rails-app/config/initializers/inflections.rb
215
267
  - test/rails-app/config/initializers/mime_types.rb
216
- - test/rails-app/config/initializers/new_framework_defaults.rb
217
- - test/rails-app/config/initializers/session_store.rb
268
+ - test/rails-app/config/initializers/trailblazer.rb
218
269
  - test/rails-app/config/initializers/wrap_parameters.rb
219
270
  - test/rails-app/config/locales/en.yml
271
+ - test/rails-app/config/master.key
220
272
  - test/rails-app/config/routes.rb
221
- - test/rails-app/config/secrets.yml
273
+ - test/rails-app/db/schema.rb
222
274
  - test/rails-app/db/seeds.rb
223
275
  - test/rails-app/log/.keep
224
276
  - test/rails-app/test/controllers/.keep
277
+ - test/rails-app/test/controllers/api_songs_controller_test.rb
225
278
  - test/rails-app/test/controllers/songs_controller_test.rb
226
279
  - test/rails-app/test/fixtures/.keep
227
280
  - test/rails-app/test/fixtures/files/.keep
228
- - test/rails-app/test/helpers/.keep
229
- - test/rails-app/test/integration/.keep
230
- - test/rails-app/test/mailers/.keep
231
281
  - test/rails-app/test/models/.keep
232
282
  - test/rails-app/test/test_helper.rb
233
283
  - test/rails-app/tmp/.keep
234
- - test/rails-app/vendor/assets/javascripts/.keep
235
- - test/rails-app/vendor/assets/stylesheets/.keep
236
284
  - test/test_helper.rb