import Config

# Only in tests, remove the complexity from the password hashing algorithm
config :bcrypt_elixir, :log_rounds, 1

# Configure your database
#
# The MIX_TEST_PARTITION environment variable can be used
# to provide built-in test partitioning in CI environment.
# Run `mix help test` for more information.
config :berrypod, Berrypod.Repo,
  database: Path.expand("../berrypod_test.db", __DIR__),
  pool_size: 1,
  pool: Ecto.Adapters.SQL.Sandbox,
  journal_mode: :wal,
  busy_timeout: 15_000,
  queue_target: 5_000,
  queue_interval: 10_000,
  journal_size_limit: 67_108_864,
  default_transaction_mode: :immediate,
  custom_pragmas: [mmap_size: 134_217_728]

# We don't run a server during test. If one is required,
# you can enable the server option below.
config :berrypod, BerrypodWeb.Endpoint,
  http: [ip: {127, 0, 0, 1}, port: 4002],
  secret_key_base: "FgIOvs+0ZwA+GU1gInqNuyDz3zSnfeRu0kD7DYyGpC05/wE+G2xVJ5zlc/ufGedN",
  server: false

# In test we don't send emails
config :berrypod, Berrypod.Mailer, adapter: Swoosh.Adapters.Test

# Disable swoosh api client as it is only required for production adapters
config :swoosh, :api_client, false

# Print only warnings and errors during test
config :logger, level: :warning

# Initialize plugs at runtime for faster test compilation
config :phoenix, :plug_init_mode, :runtime

# Enable helpful, but potentially expensive runtime checks
config :phoenix_live_view,
  enable_expensive_runtime_checks: true

# Use inline testing mode for Oban
config :berrypod, Oban, testing: :inline

# Isolate image cache so test cleanup doesn't wipe the dev cache
config :berrypod, :image_cache_dir, Path.expand("../tmp/test_image_cache", __DIR__)

# Route HTTP clients through Req.Test stubs
config :berrypod, Berrypod.Clients.Printful,
  req_options: [plug: {Req.Test, Berrypod.Clients.Printful}, retry: false]

config :berrypod, Berrypod.Clients.Printify,
  req_options: [plug: {Req.Test, Berrypod.Clients.Printify}, retry: false]
