lurker 0.6.12 → 1.0.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 +5 -5
- data/.rspec +1 -2
- data/.travis.yml +30 -20
- data/Gemfile +0 -32
- data/README.md +14 -52
- data/Rakefile +3 -3
- data/cucumber.yml +1 -2
- data/features/atom_persistent_within_the_same_type.feature +4 -4
- data/features/controller_nested_schema_scaffolding.feature +7 -10
- data/features/controller_schema_scaffolding.feature +1 -3
- data/features/dereferencing_through_inlining.feature +1 -3
- data/features/html_generation.feature +3 -4
- data/features/minitest.feature +3 -5
- data/features/multidomain_support.feature +5 -6
- data/features/multitype_request_support.feature +1 -3
- data/features/partials.feature +3 -5
- data/features/request_nested_schema_scaffolding.feature +0 -2
- data/features/request_schema_scaffolding.feature +0 -2
- data/features/schema_suffixes.feature +2 -6
- data/features/schema_updating_within_test_suite.feature +2 -6
- data/features/step_definitions/additional_cli_steps.rb +8 -11
- data/features/support/env.rb +50 -10
- data/features/test_endpoint.feature +2 -6
- data/gemfiles/rails_4.gemfile +14 -0
- data/gemfiles/rails_5.gemfile +10 -0
- data/gemfiles/rails_6.gemfile +10 -0
- data/lib/lurker.rb +0 -1
- data/lib/lurker/cli.rb +5 -7
- data/lib/lurker/endpoint.rb +4 -4
- data/lib/lurker/json/concerns/validatable.rb +5 -1
- data/lib/lurker/json/parser.rb +1 -1
- data/lib/lurker/presenters/service_presenter.rb +2 -1
- data/lib/lurker/spec_helper/rspec.rb +0 -4
- data/lib/lurker/spy.rb +3 -1
- data/lib/lurker/templates/public/application.css +3 -3
- data/lib/lurker/templates/public/application.js +13 -2896
- data/lib/lurker/version.rb +1 -1
- data/lurker.gemspec +31 -33
- data/spec/spec_helper.rb +0 -1
- data/tasks/build.rake +5 -3
- data/tasks/generate.rake +25 -15
- data/templates/Dockerfile +26 -0
- data/templates/generate_stuff.rb +59 -26
- data/templates/lurker_app.rb +27 -47
- data/templates/rails4_ruby26_thread_error_fix.rb +20 -0
- metadata +136 -98
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -3
- data/Appraisals +0 -36
- data/gemfiles/rails_32.gemfile +0 -31
- data/gemfiles/rails_40.gemfile +0 -31
- data/gemfiles/rails_41.gemfile +0 -31
- data/gemfiles/rails_42.gemfile +0 -31
- data/lib/lurker/validation_error.rb +0 -4
- data/templates/rails32_http_patch_support.rb +0 -125
- metadata.gz.sig +0 -0
data/lib/lurker/version.rb
CHANGED
data/lurker.gemspec
CHANGED
@@ -12,52 +12,50 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.description = %q{The new de-facto for API testing your Rails application}
|
13
13
|
spec.homepage = "http://github.com/razum2um/lurker"
|
14
14
|
spec.license = "MIT"
|
15
|
-
spec.cert_chain = ['certs/razum2um.pem']
|
16
|
-
spec.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $0 =~ /gem\z/
|
17
15
|
|
18
16
|
spec.files = `git ls-files`.split($/)
|
19
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
19
|
spec.require_paths = ["lib"]
|
22
20
|
|
23
|
-
spec.add_dependency("json", "
|
24
|
-
spec.add_dependency("json-schema", "
|
25
|
-
spec.add_dependency("thor", "
|
26
|
-
spec.add_dependency("sinatra", "
|
21
|
+
spec.add_dependency("json", ">= 1.7")
|
22
|
+
spec.add_dependency("json-schema", ">= 2.2")
|
23
|
+
spec.add_dependency("thor", ">= 0.19")
|
24
|
+
spec.add_dependency("sinatra", ">= 1.4")
|
27
25
|
spec.add_dependency("hashie", ">= 3.0")
|
28
|
-
spec.add_dependency("activesupport", ">=
|
26
|
+
spec.add_dependency("activesupport", ">= 4.2")
|
29
27
|
|
30
28
|
# testing
|
31
|
-
spec.add_development_dependency("psych", "
|
29
|
+
spec.add_development_dependency("psych", ">= 2.0")
|
32
30
|
spec.add_development_dependency("bundler", ">= 1.7.11")
|
33
|
-
spec.add_development_dependency("rack-cors", "
|
31
|
+
spec.add_development_dependency("rack-cors", ">= 0.2")
|
34
32
|
spec.add_development_dependency("rails", ">= 3.2", "< 4.3")
|
35
|
-
spec.add_development_dependency("rake", "
|
36
|
-
spec.add_development_dependency("rspec", "
|
37
|
-
spec.add_development_dependency("cucumber", "
|
38
|
-
spec.add_development_dependency("aruba", "
|
39
|
-
spec.add_development_dependency("capybara", "
|
40
|
-
spec.add_development_dependency("nokogiri", "
|
41
|
-
spec.add_development_dependency("
|
42
|
-
spec.add_development_dependency("database_cleaner", "
|
43
|
-
|
44
|
-
spec.add_development_dependency("simplecov", "
|
45
|
-
spec.add_development_dependency("
|
46
|
-
spec.add_development_dependency("rubocop", "
|
33
|
+
spec.add_development_dependency("rake", ">= 10.2")
|
34
|
+
spec.add_development_dependency("rspec", ">= 2.14.0")
|
35
|
+
spec.add_development_dependency("cucumber", ">= 1.3")
|
36
|
+
spec.add_development_dependency("aruba", ">= 0.6.2")
|
37
|
+
spec.add_development_dependency("capybara", ">= 2.2")
|
38
|
+
spec.add_development_dependency("nokogiri", ">= 1.5")
|
39
|
+
spec.add_development_dependency("webdrivers", ">= 1.5")
|
40
|
+
spec.add_development_dependency("database_cleaner", ">= 1.2")
|
41
|
+
|
42
|
+
spec.add_development_dependency("simplecov", ">= 0.7")
|
43
|
+
spec.add_development_dependency("coveralls_reborn", "> 0")
|
44
|
+
spec.add_development_dependency("rubocop", ">= 0.21")
|
47
45
|
|
48
46
|
# FIXME: these gems are needed while cucumber runs
|
49
47
|
# inner Gemfile isn"t getting used, but lib"s one
|
50
|
-
spec.add_development_dependency("
|
51
|
-
spec.add_development_dependency("
|
52
|
-
spec.add_development_dependency("
|
53
|
-
spec.add_development_dependency("
|
54
|
-
spec.add_development_dependency("
|
55
|
-
spec.add_development_dependency("
|
56
|
-
spec.add_development_dependency("
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
48
|
+
spec.add_development_dependency("puma", "> 0")
|
49
|
+
spec.add_development_dependency("bootsnap", "> 0")
|
50
|
+
spec.add_development_dependency("listen", "> 0")
|
51
|
+
spec.add_development_dependency("sass-rails", "> 0")
|
52
|
+
spec.add_development_dependency("rspec-rails", ">= 2.14.0")
|
53
|
+
spec.add_development_dependency("pg", ">= 0.16")
|
54
|
+
spec.add_development_dependency("kramdown", ">= 1.3")
|
55
|
+
spec.add_development_dependency("diffy", ">= 3.0")
|
56
|
+
spec.add_development_dependency("execjs", ">= 2.0")
|
57
|
+
spec.add_development_dependency("pdfkit", ">= 0.6")
|
58
|
+
spec.add_development_dependency("wkhtmltopdf-binary", ">= 0.9")
|
59
|
+
spec.add_development_dependency("test-unit", ">= 3.0")
|
62
60
|
end
|
63
61
|
|
data/spec/spec_helper.rb
CHANGED
@@ -15,7 +15,6 @@ end
|
|
15
15
|
Dir[File.expand_path '../support/**/*.rb', __FILE__].each { |file| require file }
|
16
16
|
|
17
17
|
RSpec.configure do |config|
|
18
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
19
18
|
config.run_all_when_everything_filtered = true
|
20
19
|
config.filter_run :focus
|
21
20
|
config.order = 'random'
|
data/tasks/build.rake
CHANGED
@@ -38,7 +38,9 @@ namespace :assets do
|
|
38
38
|
sprockets.append_path(SOURCE_DIR.join('stylesheets').to_s)
|
39
39
|
|
40
40
|
%w[jquery-rails bootstrap-sass remotipart lurker].each do |gem|
|
41
|
-
|
41
|
+
bundler_gem = Bundler.rubygems.find_name(gem).first
|
42
|
+
raise "Gem #{gem.inspect} is required in #{ENV.fetch('BUNDLE_GEMFILE', 'Gemfile')}" unless bundler_gem
|
43
|
+
gem_path = Pathname.new(bundler_gem.full_gem_path)
|
42
44
|
%w[javascripts stylesheets fonts].each do |prefix|
|
43
45
|
%w[assets vendor/assets lib/lurker/templates].each do |interfix|
|
44
46
|
path = gem_path.join(interfix, prefix).to_s
|
@@ -47,14 +49,14 @@ namespace :assets do
|
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
50
|
-
unless ENV['
|
52
|
+
unless ENV['CI']
|
51
53
|
sprockets.js_compressor = :uglify
|
52
54
|
sprockets.css_compressor = :scss
|
53
55
|
end
|
54
56
|
|
55
57
|
BUNDLES.each do |bundle|
|
56
58
|
assets = sprockets.find_asset(bundle)
|
57
|
-
realname = (assets.
|
59
|
+
realname = (Pathname.new(assets.filename).basename.to_s.split(".").take_while { |s| !s.match /^(js|css|scss)$/ } + [$~.to_s]).join(".").gsub(/\.scss$/, '.css')
|
58
60
|
assets.write_to(BUILD_DIR.join(realname))
|
59
61
|
end
|
60
62
|
end
|
data/tasks/generate.rake
CHANGED
@@ -1,7 +1,15 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
def rails_version
|
2
|
+
if (version = ENV['BUNDLE_GEMFILE'].to_s.match(/rails_([\d\.]+).gemfile/)&.to_a&.last)
|
3
|
+
Gem::Version.new(version)
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
7
|
+
if rails_version
|
8
|
+
EXAMPLE_APP = "tmp/lurker_app_rails_#{rails_version}"
|
9
|
+
TEMPLATE_TASK = rails_version >= Gem::Version.new('5.0') ? 'app:template' : 'rails:template'
|
10
|
+
TASK_RUNNER = rails_version >= Gem::Version.new('5.0') ? 'bin/rails' : 'bin/rake'
|
3
11
|
else
|
4
|
-
raise "
|
12
|
+
raise "Export BUNDLE_GEMFILE=gemfiles/rails_... explicitly"
|
5
13
|
end
|
6
14
|
|
7
15
|
EXAMPLE_PATH = File.expand_path("../../#{EXAMPLE_APP}", __FILE__)
|
@@ -30,30 +38,33 @@ namespace :generate do
|
|
30
38
|
task :app do |t|
|
31
39
|
if needs_generation?
|
32
40
|
sh "bundle exec rails new #{EXAMPLE_APP} -d postgresql -m #{File.expand_path '../../templates/lurker_app.rb', __FILE__} --skip-javascript --skip-git --skip-test-unit --skip-keeps --skip-bundle --quiet"
|
33
|
-
in_lurker_app "bundle config --local local.lurker $PWD/../.." unless ENV['
|
34
|
-
in_lurker_app "bundle
|
35
|
-
|
36
|
-
|
41
|
+
in_lurker_app "bundle config --local local.lurker $PWD/../.." unless ENV['CI']
|
42
|
+
in_lurker_app "bundle config --local set without 'development'"
|
43
|
+
in_lurker_app "bundle install"
|
44
|
+
%w[rake rspec-core spring bundler].each do |gem|
|
45
|
+
in_lurker_app "bundle binstubs #{gem} --force"
|
37
46
|
end
|
38
47
|
end
|
39
48
|
end
|
40
49
|
|
41
50
|
desc "generate a bunch of stuff with generators"
|
42
51
|
task :stuff do
|
43
|
-
in_lurker_app "LOCATION='../../templates/generate_stuff.rb'
|
52
|
+
in_lurker_app "LOCATION='../../templates/generate_stuff.rb' #{TASK_RUNNER} #{TEMPLATE_TASK}"
|
44
53
|
|
45
|
-
|
46
|
-
in_lurker_app
|
47
|
-
|
54
|
+
if ENV['CI']
|
55
|
+
in_lurker_app "#{TASK_RUNNER} RAILS_ENV=test db:setup "
|
56
|
+
else
|
57
|
+
in_lurker_app "#{TASK_RUNNER} db:setup"
|
58
|
+
in_lurker_app "#{TASK_RUNNER} db:import"
|
48
59
|
end
|
49
|
-
in_lurker_app 'bin/rake RAILS_ENV=test db:setup'
|
50
60
|
end
|
51
61
|
end
|
52
62
|
|
53
63
|
def in_lurker_app(command)
|
54
64
|
FileUtils.mkdir_p(EXAMPLE_PATH)
|
55
65
|
Dir.chdir(EXAMPLE_PATH) do
|
56
|
-
Bundler.with_clean_env
|
66
|
+
bundler_method = Bundler.respond_to?(:with_unbundled_env) ? :with_unbundled_env : :with_clean_env
|
67
|
+
Bundler.send(bundler_method) do
|
57
68
|
sh command
|
58
69
|
end
|
59
70
|
end
|
@@ -95,8 +106,7 @@ task :convert_example_docs do
|
|
95
106
|
end
|
96
107
|
|
97
108
|
place_github_badge 'public/lurker/index.html'
|
98
|
-
in_lurker_app "bin/lurker convert -f pdf"
|
109
|
+
# in_lurker_app "bin/lurker convert -f pdf"
|
99
110
|
end
|
100
111
|
|
101
112
|
task :build_example_docs => [:features, :convert_example_docs]
|
102
|
-
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# cd tmp/lurker_app_*, run with
|
2
|
+
# docker run -e DATABASE_URL=postgres://user@host.docker.internal/lurker_app_rails_6 -p 3000:3000 lurker"
|
3
|
+
FROM ruby:2.7-alpine as build
|
4
|
+
|
5
|
+
WORKDIR /app
|
6
|
+
|
7
|
+
RUN apk add git postgresql-dev libpq
|
8
|
+
|
9
|
+
COPY Gemfile* ./
|
10
|
+
|
11
|
+
RUN apk add --no-cache --update alpine-sdk make && \
|
12
|
+
bundler config set without 'development test' && \
|
13
|
+
bundler config set path 'vendor/bundle' && \
|
14
|
+
bundler install
|
15
|
+
|
16
|
+
COPY . ./
|
17
|
+
|
18
|
+
EXPOSE 3000
|
19
|
+
|
20
|
+
ENV PATH "$PATH:/app/vendor/bundle/ruby/2.7.0/bin"
|
21
|
+
ENV GEM_HOME "/app/vendor/bundle/ruby/2.7.0"
|
22
|
+
ENV RAILS_ENV "production"
|
23
|
+
ENV RAILS_SERVE_STATIC_FILES "1"
|
24
|
+
ENV RAILS_LOG_TO_STDOUT "1"
|
25
|
+
|
26
|
+
CMD ["bin/rails", "s", "-b", "0.0.0.0"]
|
data/templates/generate_stuff.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
# This is secondary testing/demo rails app template (passed to `rake rails:template`)
|
2
|
-
|
3
|
-
if rails_version = ENV['BUNDLE_GEMFILE'].to_s.match(/rails_\d\d/)
|
2
|
+
if rails_version = ENV['BUNDLE_GEMFILE'].to_s.match(/rails_\d+/)
|
4
3
|
base_db_name = "lurker_app_#{rails_version}"
|
5
4
|
else
|
6
5
|
base_db_name = 'lurker_app'
|
7
6
|
end
|
8
7
|
|
9
8
|
file 'config/database.yml', force: true do
|
10
|
-
|
9
|
+
<<~CODE
|
11
10
|
default: &default
|
12
11
|
adapter: postgresql
|
13
12
|
encoding: unicode
|
@@ -25,7 +24,7 @@ end
|
|
25
24
|
|
26
25
|
copy_file "#{File.expand_path '../../bin/lurker', __FILE__}", "bin/lurker"
|
27
26
|
inject_into_file "bin/lurker", before: /require .lurker.$/ do
|
28
|
-
|
27
|
+
<<~CODE
|
29
28
|
if (simplecov_root = ENV['SIMPLECOV_ROOT']) && (simplecov_cmdname = ENV['SIMPLECOV_CMDNAME'])
|
30
29
|
require 'simplecov'
|
31
30
|
SimpleCov.start
|
@@ -50,7 +49,7 @@ remove_file 'app/models/user.rb'
|
|
50
49
|
|
51
50
|
generate 'rspec:install'
|
52
51
|
|
53
|
-
route
|
52
|
+
route <<~ROUTE
|
54
53
|
namespace :api do
|
55
54
|
namespace :v1 do
|
56
55
|
resources :users do
|
@@ -86,7 +85,7 @@ generate 'model User name:string surname:string --no-timestamps --no-test-framew
|
|
86
85
|
generate 'model Repo user:references name:string --no-timestamps --no-test-framework --no-migration'
|
87
86
|
|
88
87
|
file 'config/initializers/serializer.rb', force: true do
|
89
|
-
|
88
|
+
<<~CODE
|
90
89
|
module ExactOrderAsJson
|
91
90
|
# we need EXACT order for json attributes generation (e.g. rails32 sorts it)
|
92
91
|
# see: https://github.com/rails/rails/pull/5678/files
|
@@ -109,10 +108,8 @@ file 'config/initializers/serializer.rb', force: true do
|
|
109
108
|
CODE
|
110
109
|
end
|
111
110
|
|
112
|
-
copy_file "#{File.expand_path '../../templates/rails32_http_patch_support.rb', __FILE__}", "config/initializers/rails32_http_patch_support.rb"
|
113
|
-
|
114
111
|
inject_into_class 'app/models/user.rb', 'User' do
|
115
|
-
|
112
|
+
<<~CODE
|
116
113
|
include ExactOrderAsJson
|
117
114
|
has_many :repos
|
118
115
|
validates :name, presence: true
|
@@ -124,17 +121,17 @@ inject_into_class 'app/models/user.rb', 'User' do
|
|
124
121
|
end
|
125
122
|
|
126
123
|
inject_into_class 'app/models/repo.rb', 'Repo' do
|
127
|
-
|
124
|
+
<<~CODE
|
128
125
|
include ExactOrderAsJson
|
129
126
|
validates :name, presence: true
|
130
127
|
CODE
|
131
128
|
end
|
132
129
|
|
133
130
|
file 'app/controllers/application_controller.rb', 'ApplicationController', force: true do
|
134
|
-
|
131
|
+
<<~CODE
|
135
132
|
class ApplicationController < ActionController::Base
|
136
133
|
protect_from_forgery with: :null_session
|
137
|
-
|
134
|
+
before_action :set_format
|
138
135
|
|
139
136
|
private
|
140
137
|
|
@@ -154,7 +151,7 @@ file 'app/controllers/application_controller.rb', 'ApplicationController', force
|
|
154
151
|
end
|
155
152
|
|
156
153
|
file 'app/controllers/api/v1/users_controller.rb', 'Api::V1::UsersController', force: true do
|
157
|
-
|
154
|
+
<<~CODE
|
158
155
|
class Api::V1::UsersController < ApplicationController
|
159
156
|
def index
|
160
157
|
@users = scoped(User)
|
@@ -174,7 +171,7 @@ file 'app/controllers/api/v1/users_controller.rb', 'Api::V1::UsersController', f
|
|
174
171
|
end
|
175
172
|
|
176
173
|
def update
|
177
|
-
if user.
|
174
|
+
if user.update(user_params)
|
178
175
|
render json: user
|
179
176
|
else
|
180
177
|
render json: { errors: user.errors }, status: :bad_request
|
@@ -209,7 +206,7 @@ file 'app/controllers/api/v1/users_controller.rb', 'Api::V1::UsersController', f
|
|
209
206
|
end
|
210
207
|
|
211
208
|
file 'app/controllers/api/v1/repos_controller.rb', 'Api::V1::ReposController', force: true do
|
212
|
-
|
209
|
+
<<~CODE
|
213
210
|
class Api::V1::ReposController < ApplicationController
|
214
211
|
|
215
212
|
def index
|
@@ -235,7 +232,7 @@ file 'app/controllers/api/v1/repos_controller.rb', 'Api::V1::ReposController', f
|
|
235
232
|
|
236
233
|
def update
|
237
234
|
@repo = repo
|
238
|
-
if @repo.
|
235
|
+
if @repo.update(repo_params)
|
239
236
|
render json: @repo
|
240
237
|
else
|
241
238
|
render json: { errors: @repo.errors }, status: :bad_request
|
@@ -272,13 +269,13 @@ end
|
|
272
269
|
|
273
270
|
[2, 3].each do |version|
|
274
271
|
file "app/controllers/api/v#{version}/users_controller.rb", "Api::V#{version}::UsersController", force: true do
|
275
|
-
|
272
|
+
<<~CODE
|
276
273
|
class Api::V#{version}::UsersController < Api::V1::UsersController; end
|
277
274
|
CODE
|
278
275
|
end
|
279
276
|
|
280
277
|
file "app/controllers/api/v#{version}/repos_controller.rb", "Api::V#{version}::ReposController", force: true do
|
281
|
-
|
278
|
+
<<~CODE
|
282
279
|
class Api::V#{version}::ReposController < Api::V1::ReposController; end
|
283
280
|
CODE
|
284
281
|
end
|
@@ -286,19 +283,19 @@ end
|
|
286
283
|
|
287
284
|
# FIXME: uninitialized constant User (NameError) in last creation line
|
288
285
|
append_to_file 'config/environment.rb' do
|
289
|
-
|
286
|
+
<<~CODE
|
290
287
|
$:.unshift File.expand_path('../../app/models', __FILE__)
|
291
288
|
CODE
|
292
289
|
end
|
293
290
|
|
294
291
|
inject_into_class 'config/application.rb', 'Application' do
|
295
|
-
|
292
|
+
<<~CODE
|
296
293
|
if ENV['DATABASE_URL'].present? # heroku
|
297
294
|
config.middleware.use Lurker::Sandbox
|
298
295
|
end
|
299
296
|
|
300
297
|
require 'rack/cors' # FIXME
|
301
|
-
config.middleware.insert 0,
|
298
|
+
config.middleware.insert 0, Rack::Cors do
|
302
299
|
allow do
|
303
300
|
origins %w[localhost:3000 127.0.0.1:3000 razum2um.github.io lurker-app.herokuapp.com lurker.razum2um.me]
|
304
301
|
resource '*',
|
@@ -314,7 +311,7 @@ inject_into_class 'config/application.rb', 'Application' do
|
|
314
311
|
end
|
315
312
|
|
316
313
|
file 'test/test_helper.rb', force: true do
|
317
|
-
|
314
|
+
<<~CODE
|
318
315
|
ENV['RAILS_ENV'] ||= 'test'
|
319
316
|
require File.expand_path('../../config/environment', __FILE__)
|
320
317
|
require 'rails/test_help'
|
@@ -338,9 +335,16 @@ file 'test/test_helper.rb', force: true do
|
|
338
335
|
end
|
339
336
|
|
340
337
|
file 'spec/support/fixme.rb', force: true do
|
341
|
-
|
338
|
+
<<~CODE
|
342
339
|
require 'simplecov'
|
343
340
|
|
341
|
+
module ActionDispatchTestResponseCompat
|
342
|
+
def success?
|
343
|
+
status == 200
|
344
|
+
end
|
345
|
+
end
|
346
|
+
ActionDispatch::TestResponse.include(ActionDispatchTestResponseCompat)
|
347
|
+
|
344
348
|
if simplecov_root = ENV['SIMPLECOV_ROOT']
|
345
349
|
SimpleCov.root simplecov_root
|
346
350
|
end
|
@@ -362,7 +366,6 @@ file 'spec/support/fixme.rb', force: true do
|
|
362
366
|
|
363
367
|
RSpec.configure do |c|
|
364
368
|
c.infer_spec_type_from_file_location! if c.respond_to?(:infer_spec_type_from_file_location!)
|
365
|
-
c.treat_symbols_as_metadata_keys_with_true_values = true
|
366
369
|
c.backtrace_exclusion_patterns += [
|
367
370
|
/\\/lib\\/lurker/
|
368
371
|
]
|
@@ -385,7 +388,7 @@ file 'spec/support/fixme.rb', force: true do
|
|
385
388
|
end
|
386
389
|
|
387
390
|
file 'lib/tasks/db.rake', force: true do
|
388
|
-
|
391
|
+
<<~CODE
|
389
392
|
namespace :db do
|
390
393
|
desc 'fills in data'
|
391
394
|
task :import => :environment do
|
@@ -398,7 +401,7 @@ file 'lib/tasks/db.rake', force: true do
|
|
398
401
|
end
|
399
402
|
|
400
403
|
file 'db/schema.rb', force: true do
|
401
|
-
|
404
|
+
<<~CODE
|
402
405
|
ActiveRecord::Schema.define do
|
403
406
|
create_table "repos", :force => true do |t|
|
404
407
|
t.integer "user_id"
|
@@ -415,3 +418,33 @@ file 'db/schema.rb', force: true do
|
|
415
418
|
CODE
|
416
419
|
end
|
417
420
|
|
421
|
+
append_to_file 'spec/rails_helper.rb' do
|
422
|
+
<<~CODE
|
423
|
+
Dir[File.expand_path '../support/**/*.rb', __FILE__].each { |file| require file }
|
424
|
+
|
425
|
+
if Gem::Version.new(Rails.version) < Gem::Version.new('5.0.0')
|
426
|
+
require 'rails/forward_compatible_controller_tests'
|
427
|
+
RSpec.configure do |config|
|
428
|
+
config.include Rails::ForwardCompatibleControllerTests, type: :controller
|
429
|
+
config.include Rails::ForwardCompatibleControllerTests, type: :request
|
430
|
+
end
|
431
|
+
end
|
432
|
+
CODE
|
433
|
+
end
|
434
|
+
|
435
|
+
append_to_file '.rspec' do
|
436
|
+
<<~CODE
|
437
|
+
--require rails_helper
|
438
|
+
CODE
|
439
|
+
end
|
440
|
+
|
441
|
+
copy_file "#{File.expand_path '../../templates/Dockerfile', __FILE__}", "Dockerfile"
|
442
|
+
|
443
|
+
# rails-4 requires this
|
444
|
+
file 'app/assets/config/manifest.js', force: true do
|
445
|
+
<<~CODE
|
446
|
+
// empty
|
447
|
+
CODE
|
448
|
+
end
|
449
|
+
|
450
|
+
copy_file "#{File.expand_path '../../templates/rails4_ruby26_thread_error_fix.rb', __FILE__}", "spec/support/rails4_ruby26_thread_error_fix.rb"
|