forked from e621ng/e621ng
[Rails] Upgrade to rails 6.1 + fix tests
This commit is contained in:
parent
e685fb87c2
commit
76d1999ade
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env ruby
|
#!/usr/bin/env ruby
|
||||||
APP_PATH = File.expand_path('../config/application', __dir__)
|
APP_PATH = File.expand_path('../config/application', __dir__)
|
||||||
require_relative '../config/boot'
|
require_relative "../config/boot"
|
||||||
require 'rails/commands'
|
require "rails/commands"
|
||||||
|
4
bin/rake
4
bin/rake
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env ruby
|
#!/usr/bin/env ruby
|
||||||
require_relative '../config/boot'
|
require_relative "../config/boot"
|
||||||
require 'rake'
|
require "rake"
|
||||||
Rake.application.run
|
Rake.application.run
|
||||||
|
12
bin/yarn
12
bin/yarn
@ -1,9 +1,15 @@
|
|||||||
#!/usr/bin/env ruby
|
#!/usr/bin/env ruby
|
||||||
APP_ROOT = File.expand_path('..', __dir__)
|
APP_ROOT = File.expand_path('..', __dir__)
|
||||||
Dir.chdir(APP_ROOT) do
|
Dir.chdir(APP_ROOT) do
|
||||||
begin
|
yarn = ENV["PATH"].split(File::PATH_SEPARATOR).
|
||||||
exec "yarnpkg", *ARGV
|
select { |dir| File.expand_path(dir) != __dir__ }.
|
||||||
rescue Errno::ENOENT
|
product(["yarn", "yarn.exe"]).
|
||||||
|
map { |dir, file| File.expand_path(file, dir) }.
|
||||||
|
find { |file| File.executable?(file) }
|
||||||
|
|
||||||
|
if yarn
|
||||||
|
exec yarn, *ARGV
|
||||||
|
else
|
||||||
$stderr.puts "Yarn executable was not detected in the system."
|
$stderr.puts "Yarn executable was not detected in the system."
|
||||||
$stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install"
|
$stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -22,7 +22,7 @@ require 'elasticsearch/rails/instrumentation'
|
|||||||
module Danbooru
|
module Danbooru
|
||||||
class Application < Rails::Application
|
class Application < Rails::Application
|
||||||
# Initialize configuration defaults for originally generated Rails version.
|
# Initialize configuration defaults for originally generated Rails version.
|
||||||
config.load_defaults '6.0'
|
config.load_defaults '6.1'
|
||||||
config.active_record.schema_format = :sql
|
config.active_record.schema_format = :sql
|
||||||
config.encoding = "utf-8"
|
config.encoding = "utf-8"
|
||||||
config.filter_parameters += [:password, :password_hash, :api_key]
|
config.filter_parameters += [:password, :password_hash, :api_key]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
|
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
|
||||||
|
|
||||||
require 'bundler/setup' # Set up gems listed in the Gemfile.
|
require "bundler/setup" # Set up gems listed in the Gemfile.
|
||||||
require 'bootsnap/setup' # Speed up boot time by caching expensive operations.
|
require "bootsnap/setup" # Speed up boot time by caching expensive operations.
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
|
require "active_support/core_ext/integer/time"
|
||||||
|
|
||||||
Rails.application.configure do
|
Rails.application.configure do
|
||||||
# Settings specified here will take precedence over those in config/application.rb.
|
# Settings specified here will take precedence over those in config/application.rb.
|
||||||
|
|
||||||
# In the development environment your application's code is reloaded on
|
# In the development environment your application's code is reloaded any time
|
||||||
# every request. This slows down response time but is perfect for development
|
# it changes. This slows down response time but is perfect for development
|
||||||
# since you don't have to restart the web server when you make code changes.
|
# since you don't have to restart the web server when you make code changes.
|
||||||
config.cache_classes = false
|
config.cache_classes = false
|
||||||
|
|
||||||
@ -28,9 +30,6 @@ Rails.application.configure do
|
|||||||
config.cache_store = :null_store
|
config.cache_store = :null_store
|
||||||
end
|
end
|
||||||
|
|
||||||
# Store uploaded files on the local file system (see config/storage.yml for options).
|
|
||||||
#config.active_storage.service = :local
|
|
||||||
|
|
||||||
# Don't care if the mailer can't send.
|
# Don't care if the mailer can't send.
|
||||||
config.action_mailer.raise_delivery_errors = false
|
config.action_mailer.raise_delivery_errors = false
|
||||||
|
|
||||||
@ -39,26 +38,33 @@ Rails.application.configure do
|
|||||||
# Print deprecation notices to the Rails logger.
|
# Print deprecation notices to the Rails logger.
|
||||||
config.active_support.deprecation = :log
|
config.active_support.deprecation = :log
|
||||||
|
|
||||||
|
# Raise exceptions for disallowed deprecations.
|
||||||
|
config.active_support.disallowed_deprecation = :raise
|
||||||
|
|
||||||
|
# Tell Active Support which deprecation messages to disallow.
|
||||||
|
config.active_support.disallowed_deprecation_warnings = []
|
||||||
|
|
||||||
# Raise an error on page load if there are pending migrations.
|
# Raise an error on page load if there are pending migrations.
|
||||||
config.active_record.migration_error = :page_load
|
config.active_record.migration_error = :page_load
|
||||||
|
|
||||||
# Highlight code that triggered database queries in logs.
|
# Highlight code that triggered database queries in logs.
|
||||||
config.active_record.verbose_query_logs = true
|
config.active_record.verbose_query_logs = true
|
||||||
|
|
||||||
# Debug mode disables concatenation and preprocessing of assets.
|
|
||||||
# This option may cause significant delays in view rendering with a large
|
|
||||||
# number of complex assets.
|
|
||||||
#config.assets.debug = true
|
|
||||||
|
|
||||||
# Suppress logger output for asset requests.
|
|
||||||
#config.assets.quiet = true
|
|
||||||
|
|
||||||
# Raises error for missing translations.
|
# Raises error for missing translations.
|
||||||
# config.action_view.raise_on_missing_translations = true
|
# config.i18n.raise_on_missing_translations = true
|
||||||
|
|
||||||
|
# Annotate rendered view with file names.
|
||||||
|
# config.action_view.annotate_rendered_view_with_filenames = true
|
||||||
|
|
||||||
# Use an evented file watcher to asynchronously detect changes in source code,
|
# Use an evented file watcher to asynchronously detect changes in source code,
|
||||||
# routes, locales, etc. This feature depends on the listen gem.
|
# routes, locales, etc. This feature depends on the listen gem.
|
||||||
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
||||||
|
|
||||||
|
# Uncomment if you wish to allow Action Cable access from any origin.
|
||||||
|
# config.action_cable.disable_request_forgery_protection = true
|
||||||
|
|
||||||
config.hosts << 'e621ng.local'
|
config.hosts << 'e621ng.local'
|
||||||
config.hosts << 'e621.local'
|
config.hosts << 'e621.local'
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
require "active_support/core_ext/integer/time"
|
||||||
|
|
||||||
Rails.application.configure do
|
Rails.application.configure do
|
||||||
# Settings specified here will take precedence over those in config/application.rb.
|
# Settings specified here will take precedence over those in config/application.rb.
|
||||||
|
|
||||||
@ -22,32 +24,18 @@ Rails.application.configure do
|
|||||||
# Apache or NGINX already handles this.
|
# Apache or NGINX already handles this.
|
||||||
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
|
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
|
||||||
|
|
||||||
# Compress CSS using a preprocessor.
|
|
||||||
# config.assets.css_compressor = :sass
|
|
||||||
|
|
||||||
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
|
||||||
#config.assets.compile = false
|
|
||||||
|
|
||||||
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
||||||
# config.action_controller.asset_host = 'http://assets.example.com'
|
# config.asset_host = 'http://assets.example.com'
|
||||||
|
|
||||||
# Specifies the header that your server uses for sending files.
|
# Specifies the header that your server uses for sending files.
|
||||||
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
|
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
|
||||||
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
|
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
|
||||||
|
|
||||||
# Store uploaded files on the local file system (see config/storage.yml for options).
|
|
||||||
#config.active_storage.service = :local
|
|
||||||
|
|
||||||
# Mount Action Cable outside main process or domain.
|
|
||||||
# config.action_cable.mount_path = nil
|
|
||||||
# config.action_cable.url = 'wss://example.com/cable'
|
|
||||||
# config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
|
|
||||||
|
|
||||||
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
||||||
# config.force_ssl = true
|
# config.force_ssl = true
|
||||||
|
|
||||||
# Use the lowest log level to ensure availability of diagnostic information
|
# Include generic and useful information about system operation, but avoid logging too much
|
||||||
# when problems arise.
|
# information to avoid inadvertent exposure of personally identifiable information (PII).
|
||||||
config.log_level = :error
|
config.log_level = :error
|
||||||
|
|
||||||
# Prepend all log lines with the following tags.
|
# Prepend all log lines with the following tags.
|
||||||
@ -68,22 +56,29 @@ Rails.application.configure do
|
|||||||
domain: Danbooru.config.mailgun_domain
|
domain: Danbooru.config.mailgun_domain
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Ignore bad email addresses and do not raise email delivery errors.
|
# Ignore bad email addresses and do not raise email delivery errors.
|
||||||
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
|
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
|
||||||
# config.action_mailer.raise_delivery_errors = false
|
# config.action_mailer.raise_delivery_errors = false
|
||||||
|
|
||||||
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
||||||
# the I18n.default_locale when a translation cannot be found).
|
# the I18n.default_locale when a translation cannot be found).
|
||||||
config.i18n.fallbacks = [I18n.default_locale]
|
config.i18n.fallbacks = true
|
||||||
|
|
||||||
# Send deprecation notices to registered listeners.
|
# Send deprecation notices to registered listeners.
|
||||||
config.active_support.deprecation = :notify
|
config.active_support.deprecation = :notify
|
||||||
|
|
||||||
|
# Log disallowed deprecations.
|
||||||
|
config.active_support.disallowed_deprecation = :log
|
||||||
|
|
||||||
|
# Tell Active Support which deprecation messages to disallow.
|
||||||
|
config.active_support.disallowed_deprecation_warnings = []
|
||||||
|
|
||||||
# Use default logging formatter so that PID and timestamp are not suppressed.
|
# Use default logging formatter so that PID and timestamp are not suppressed.
|
||||||
config.log_formatter = ::Logger::Formatter.new
|
config.log_formatter = ::Logger::Formatter.new
|
||||||
|
|
||||||
# Use a different logger for distributed setups.
|
# Use a different logger for distributed setups.
|
||||||
# require 'syslog/logger'
|
# require "syslog/logger"
|
||||||
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
|
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
|
||||||
|
|
||||||
if ENV["RAILS_LOG_TO_STDOUT"].present?
|
if ENV["RAILS_LOG_TO_STDOUT"].present?
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
require "active_support/core_ext/integer/time"
|
||||||
|
|
||||||
# The test environment is used exclusively to run your application's
|
# The test environment is used exclusively to run your application's
|
||||||
# test suite. You never need to work with it otherwise. Remember that
|
# test suite. You never need to work with it otherwise. Remember that
|
||||||
# your test database is "scratch space" for the test suite and is wiped
|
# your test database is "scratch space" for the test suite and is wiped
|
||||||
@ -40,6 +42,19 @@ Rails.application.configure do
|
|||||||
# Print deprecation notices to the stderr.
|
# Print deprecation notices to the stderr.
|
||||||
config.active_support.deprecation = :stderr
|
config.active_support.deprecation = :stderr
|
||||||
|
|
||||||
|
# Raise exceptions for disallowed deprecations.
|
||||||
|
config.active_support.disallowed_deprecation = :raise
|
||||||
|
|
||||||
|
# Tell Active Support which deprecation messages to disallow.
|
||||||
|
config.active_support.disallowed_deprecation_warnings = []
|
||||||
|
|
||||||
# Raises error for missing translations.
|
# Raises error for missing translations.
|
||||||
# config.action_view.raise_on_missing_translations = true
|
# config.i18n.raise_on_missing_translations = true
|
||||||
|
|
||||||
|
# Annotate rendered view with file names.
|
||||||
|
# config.action_view.annotate_rendered_view_with_filenames = true
|
||||||
|
|
||||||
|
|
||||||
|
config.logger = Logger.new(STDOUT)
|
||||||
|
config.log_level = :info
|
||||||
end
|
end
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
# Be sure to restart your server when you modify this file.
|
# Be sure to restart your server when you modify this file.
|
||||||
|
|
||||||
# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
|
# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
|
||||||
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
|
# Rails.backtrace_cleaner.add_silencer { |line| /my_noisy_library/.match?(line) }
|
||||||
|
|
||||||
# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
|
# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code
|
||||||
# Rails.backtrace_cleaner.remove_silencers!
|
# by setting BACKTRACE=1 before calling your invocation, like "BACKTRACE=1 ./bin/rails runner 'MyClass.perform'".
|
||||||
|
Rails.backtrace_cleaner.remove_silencers! if ENV["BACKTRACE"]
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
# Be sure to restart your server when you modify this file.
|
# Be sure to restart your server when you modify this file.
|
||||||
|
|
||||||
# Configure sensitive parameters which will be filtered from the log file.
|
# Configure sensitive parameters which will be filtered from the log file.
|
||||||
Rails.application.config.filter_parameters += [:password]
|
Rails.application.config.filter_parameters += [
|
||||||
|
:password, :passw, :api_key, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn
|
||||||
|
]
|
||||||
|
67
config/initializers/new_framework_defaults_6_1.rb
Normal file
67
config/initializers/new_framework_defaults_6_1.rb
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
# Be sure to restart your server when you modify this file.
|
||||||
|
#
|
||||||
|
# This file contains migration options to ease your Rails 6.1 upgrade.
|
||||||
|
#
|
||||||
|
# Once upgraded flip defaults one by one to migrate to the new default.
|
||||||
|
#
|
||||||
|
# Read the Guide for Upgrading Ruby on Rails for more info on each option.
|
||||||
|
|
||||||
|
# Support for inversing belongs_to -> has_many Active Record associations.
|
||||||
|
Rails.application.config.active_record.has_many_inversing = true
|
||||||
|
|
||||||
|
# Track Active Storage variants in the database.
|
||||||
|
# Rails.application.config.active_storage.track_variants = true
|
||||||
|
|
||||||
|
# Apply random variation to the delay when retrying failed jobs.
|
||||||
|
Rails.application.config.active_job.retry_jitter = 0.15
|
||||||
|
|
||||||
|
# Stop executing `after_enqueue`/`after_perform` callbacks if
|
||||||
|
# `before_enqueue`/`before_perform` respectively halts with `throw :abort`.
|
||||||
|
Rails.application.config.active_job.skip_after_callbacks_if_terminated = true
|
||||||
|
|
||||||
|
# Specify cookies SameSite protection level: either :none, :lax, or :strict.
|
||||||
|
#
|
||||||
|
# This change is not backwards compatible with earlier Rails versions.
|
||||||
|
# It's best enabled when your entire app is migrated and stable on 6.1.
|
||||||
|
Rails.application.config.action_dispatch.cookies_same_site_protection = :lax
|
||||||
|
|
||||||
|
# Generate CSRF tokens that are encoded in URL-safe Base64.
|
||||||
|
#
|
||||||
|
# This change is not backwards compatible with earlier Rails versions.
|
||||||
|
# It's best enabled when your entire app is migrated and stable on 6.1.
|
||||||
|
Rails.application.config.action_controller.urlsafe_csrf_tokens = true
|
||||||
|
|
||||||
|
# Specify whether `ActiveSupport::TimeZone.utc_to_local` returns a time with an
|
||||||
|
# UTC offset or a UTC time.
|
||||||
|
ActiveSupport.utc_to_local_returns_utc_offset_times = true
|
||||||
|
|
||||||
|
# Change the default HTTP status code to `308` when redirecting non-GET/HEAD
|
||||||
|
# requests to HTTPS in `ActionDispatch::SSL` middleware.
|
||||||
|
Rails.application.config.action_dispatch.ssl_default_redirect_status = 308
|
||||||
|
|
||||||
|
# Use new connection handling API. For most applications this won't have any
|
||||||
|
# effect. For applications using multiple databases, this new API provides
|
||||||
|
# support for granular connection swapping.
|
||||||
|
Rails.application.config.active_record.legacy_connection_handling = false
|
||||||
|
|
||||||
|
# Make `form_with` generate non-remote forms by default.
|
||||||
|
Rails.application.config.action_view.form_with_generates_remote_forms = false
|
||||||
|
|
||||||
|
# Set the default queue name for the analysis job to the queue adapter default.
|
||||||
|
# Rails.application.config.active_storage.queues.analysis = nil
|
||||||
|
|
||||||
|
# Set the default queue name for the purge job to the queue adapter default.
|
||||||
|
# Rails.application.config.active_storage.queues.purge = nil
|
||||||
|
|
||||||
|
# Set the default queue name for the incineration job to the queue adapter default.
|
||||||
|
# Rails.application.config.action_mailbox.queues.incineration = nil
|
||||||
|
|
||||||
|
# Set the default queue name for the routing job to the queue adapter default.
|
||||||
|
# Rails.application.config.action_mailbox.queues.routing = nil
|
||||||
|
|
||||||
|
# Set the default queue name for the mail deliver job to the queue adapter default.
|
||||||
|
# Rails.application.config.action_mailer.deliver_later_queue_name = nil
|
||||||
|
|
||||||
|
# Generate a `Link` header that gives a hint to modern browsers about
|
||||||
|
# preloading assets when using `javascript_include_tag` and `stylesheet_link_tag`.
|
||||||
|
Rails.application.config.action_view.preload_links_header = true
|
11
config/initializers/permissions_policy.rb
Normal file
11
config/initializers/permissions_policy.rb
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Define an application-wide HTTP permissions policy. For further
|
||||||
|
# information see https://developers.google.com/web/updates/2018/06/feature-policy
|
||||||
|
#
|
||||||
|
# Rails.application.config.permissions_policy do |f|
|
||||||
|
# f.camera :none
|
||||||
|
# f.gyroscope :none
|
||||||
|
# f.microphone :none
|
||||||
|
# f.usb :none
|
||||||
|
# f.fullscreen :self
|
||||||
|
# f.payment :self, "https://secure.example.com"
|
||||||
|
# end
|
@ -15,5 +15,12 @@ FactoryBot.define do
|
|||||||
rating { "q" }
|
rating { "q" }
|
||||||
duration { 0.0 }
|
duration { 0.0 }
|
||||||
source { FFaker::Internet.http_url }
|
source { FFaker::Internet.http_url }
|
||||||
|
|
||||||
|
before(:create) do |post|
|
||||||
|
Post.__elasticsearch__.index_name = "posts_test"
|
||||||
|
end
|
||||||
|
after(:create) do |post|
|
||||||
|
post.update_index
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -134,4 +134,4 @@ class ActionDispatch::IntegrationTest
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Rails.application.load_seed
|
# Rails.application.load_seed
|
||||||
|
@ -1601,6 +1601,15 @@ class PostTest < ActiveSupport::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
context "Searching:" do
|
context "Searching:" do
|
||||||
|
setup do
|
||||||
|
Post.__elasticsearch__.index_name = "posts_test"
|
||||||
|
Post.__elasticsearch__.create_index!
|
||||||
|
end
|
||||||
|
|
||||||
|
teardown do
|
||||||
|
Post.__elasticsearch__.delete_index!
|
||||||
|
end
|
||||||
|
|
||||||
should "return posts for the age:<1minute tag" do
|
should "return posts for the age:<1minute tag" do
|
||||||
post = FactoryBot.create(:post)
|
post = FactoryBot.create(:post)
|
||||||
assert_tag_match([post], "age:<1minute")
|
assert_tag_match([post], "age:<1minute")
|
||||||
|
Loading…
Reference in New Issue
Block a user