2023-08-02 17:55:32 -07:00
|
|
|
require "active_support/core_ext/integer/time"
|
|
|
|
|
2023-08-02 17:27:11 -07:00
|
|
|
# The test environment is used exclusively to run your application's
|
|
|
|
# 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
|
|
|
|
# and recreated between test runs. Don't rely on the data there!
|
|
|
|
|
2023-08-02 16:17:07 -07:00
|
|
|
Rails.application.configure do
|
2023-07-21 19:39:32 -07:00
|
|
|
# Settings specified here will take precedence over those in config/application.rb.
|
2010-05-14 15:12:31 -07:00
|
|
|
|
2023-10-25 15:05:31 -07:00
|
|
|
# While tests run files are not watched, reloading is not necessary.
|
|
|
|
config.enable_reloading = false
|
2010-05-14 15:12:31 -07:00
|
|
|
|
2023-10-25 15:05:31 -07:00
|
|
|
# Eager loading loads your entire application. When running a single test locally,
|
|
|
|
# this is usually not necessary, and can slow down your test suite. However, it's
|
|
|
|
# recommended that you enable it in continuous integration systems to ensure eager
|
|
|
|
# loading is working properly before deploying your code.
|
2023-08-03 16:37:45 -07:00
|
|
|
config.eager_load = ENV["CI"].present?
|
2010-05-14 15:12:31 -07:00
|
|
|
|
2023-08-02 16:17:07 -07:00
|
|
|
# Configure public file server for tests with Cache-Control for performance.
|
|
|
|
config.public_file_server.enabled = true
|
|
|
|
config.public_file_server.headers = {
|
2023-08-03 16:37:45 -07:00
|
|
|
"Cache-Control" => "public, max-age=#{1.hour.to_i}"
|
2023-08-02 16:17:07 -07:00
|
|
|
}
|
2023-07-21 19:39:32 -07:00
|
|
|
|
|
|
|
# Show full error reports and disable caching.
|
2010-05-14 15:12:31 -07:00
|
|
|
config.consider_all_requests_local = true
|
|
|
|
config.action_controller.perform_caching = false
|
2023-08-02 17:27:11 -07:00
|
|
|
config.cache_store = :null_store
|
2010-05-14 15:12:31 -07:00
|
|
|
|
2023-07-21 19:39:32 -07:00
|
|
|
# Raise exceptions instead of rendering exception templates.
|
2023-10-25 15:05:31 -07:00
|
|
|
config.action_dispatch.show_exceptions = :rescuable
|
2023-07-21 19:39:32 -07:00
|
|
|
|
|
|
|
# Disable request forgery protection in test environment.
|
|
|
|
config.action_controller.allow_forgery_protection = false
|
2010-05-14 15:12:31 -07:00
|
|
|
|
2023-08-02 17:27:11 -07:00
|
|
|
# Store uploaded files on the local file system in a temporary directory.
|
2024-01-19 00:00:46 -08:00
|
|
|
# config.active_storage.service = :test
|
2023-08-02 16:17:07 -07:00
|
|
|
|
|
|
|
config.action_mailer.perform_caching = false
|
|
|
|
|
2010-05-14 15:12:31 -07:00
|
|
|
# Tell Action Mailer not to deliver emails to the real world.
|
|
|
|
# The :test delivery method accumulates sent emails in the
|
|
|
|
# ActionMailer::Base.deliveries array.
|
|
|
|
config.action_mailer.delivery_method = :test
|
|
|
|
|
2023-07-21 19:39:32 -07:00
|
|
|
# Print deprecation notices to the stderr.
|
2010-10-03 16:49:33 -07:00
|
|
|
config.active_support.deprecation = :stderr
|
2013-03-05 18:08:57 -08:00
|
|
|
|
2023-08-02 17:55:32 -07:00
|
|
|
# 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 = []
|
|
|
|
|
2023-08-02 17:27:11 -07:00
|
|
|
# Raises error for missing translations.
|
2023-08-02 17:55:32 -07:00
|
|
|
# config.i18n.raise_on_missing_translations = true
|
|
|
|
|
|
|
|
# Annotate rendered view with file names.
|
|
|
|
# config.action_view.annotate_rendered_view_with_filenames = true
|
2023-10-25 15:05:31 -07:00
|
|
|
|
|
|
|
# Raise error when a before_action's only/except options reference missing actions
|
|
|
|
config.action_controller.raise_on_missing_callback_actions = true
|
2024-02-22 13:07:43 -08:00
|
|
|
|
2024-11-06 11:54:28 -08:00
|
|
|
# Allow pets to model new data. (If modeling is ever broken, disable this in
|
|
|
|
# production while we fix it!)
|
|
|
|
config.modeling_enabled = true
|
|
|
|
|
2024-02-22 13:07:43 -08:00
|
|
|
# Use a local copy of Impress 2020, presumably running on port 4000. (Can
|
|
|
|
# override this with the IMPRESS_2020_ORIGIN environment variable!)
|
|
|
|
config.impress_2020_origin = ENV.fetch("IMPRESS_2020_ORIGIN",
|
|
|
|
"http://localhost:4000")
|
Create NeopetsMediaArchive, read the actual manifests for Alt Styles
The Neopets Media Archive is a service that mirrors `images.neopets.com`
over time! Right now we're starting by just loading manifests, and
using them to replace the hacks we used for determining the Alt Style
PNG and SVG URLs; but with time, I want to load *all* customization
media files, to have our own secondary file source that isn't dependent
on Neopets to always be up.
Impress 2020 already caches manifest files, but this strategy is
different in two ways:
1. We're using the filesystem rather than a database column. (That is,
manifest data is kinda duplicated in the system right now!) This is
because I intend to go in a more file-y way long-term anyway, to
load more than just the manifests.
2. Impress 2020 guesses at the manifest URLs by pattern, and reloads
them on a regular basis. Instead, we use the modeling system: when
TNT changes the URL of a manifest by appending a new `?v=` query
string to it, this system will consider it a new URL, and will load
the new copy accordingly.
Fun fact, I actually have been prototyping some of this stuff in a side
project I'd named `impress-media-server`! It's a little Sinatra app
that indeed *does* save all the files needed for customization, and can
generate lightweight lil preview iframes and images pretty easily. I
had initially been planning this as a separate service, but after
thinking over the arch a bit, I think it'll go smoother to just give
the main app all the same access and awareness—and I wrote it all in
Ruby and plain HTML/JS/CSS, so it should be pretty easy to port over
bit-by-bit!
Anyway, only Alt Styles use this for now, but my motivation is to be
able to use more-correct asset URL logic to be able to finally swap
over wardrobe-2020's item search to impress.openneo.net's item search
API endpoint—which will get "Items You Own" searches working again, and
whittle down one of the last big things Impress 2020 can do that the
main app can't. Let's see how it goes!
2024-02-23 12:02:39 -08:00
|
|
|
|
|
|
|
# Save the Neopets Media Archive in the local `tmp` folder. (In production,
|
|
|
|
# we keep this in a long-term location instead!)
|
|
|
|
config.neopets_media_archive_root = Rails.root / "tmp" /
|
|
|
|
"neopets_media_archive" / "test"
|
2024-03-14 15:34:24 -07:00
|
|
|
|
2024-03-14 16:13:31 -07:00
|
|
|
# Use the local NeoPass development server.
|
2024-03-14 18:11:40 -07:00
|
|
|
config.neopass_origin = "https://localhost:8585"
|
|
|
|
|
|
|
|
# Set the NeoPass redirect callback URL.
|
|
|
|
config.neopass_redirect_uri =
|
2024-03-14 20:34:05 -07:00
|
|
|
"http://localhost:3000/users/auth/neopass/callback"
|
2010-05-14 15:12:31 -07:00
|
|
|
end
|