ammocpr/config/test.exs
Graham McIntire bbe5bde145
Initial implementation of ammo price tracker
Phoenix 1.8 app that scrapes ammunition retailers (Lucky Gunner,
SGAmmo) for price data and displays historical price trends.

- Data model: retailers, calibers, products, price snapshots
- Scraper infrastructure with Req, Floki, realistic browser headers
- Oban-scheduled scrape jobs (every 4h with randomized delays)
- LiveView pages: homepage with category cards, caliber detail with
  price table, Chart.js price history, and price stats banner
- 18 seeded calibers across handgun/rifle/rimfire/shotgun categories
- 77 tests
2026-03-11 15:58:12 -05:00

50 lines
1.6 KiB
Elixir

import Config
# In test we don't send emails
config :ammoprices, Ammoprices.Mailer, adapter: Swoosh.Adapters.Test
# 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 :ammoprices, Ammoprices.Repo,
username: "postgres",
password: "postgres",
hostname: "localhost",
database: "ammoprices_test#{System.get_env("MIX_TEST_PARTITION")}",
pool: Ecto.Adapters.SQL.Sandbox,
pool_size: System.schedulers_online() * 2
# We don't run a server during test. If one is required,
# you can enable the server option below.
config :ammoprices, AmmopricesWeb.Endpoint,
http: [ip: {127, 0, 0, 1}, port: 4002],
secret_key_base: "3Dqelm7MG3lTMnfjThpCeE0sPMEC5FBlKmOuCfZ5X/ZHiYqW9fxBif4fc9Db9B0j",
server: false
# Oban testing mode
config :ammoprices, Oban, testing: :manual
# Stub HTTP requests in tests
config :ammoprices, :req_options, plug: {Req.Test, Ammoprices.Scraping.HttpClient}
# No delay between scrape requests in tests
config :ammoprices, :scrape_delay_ms, {0, 0}
# 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
# Sort query params output of verified routes for robust url comparisons
config :phoenix,
sort_verified_routes_query_params: true
# Enable helpful, but potentially expensive runtime checks
config :phoenix_live_view,
enable_expensive_runtime_checks: true
# Disable swoosh api client as it is only required for production adapters
config :swoosh, :api_client, false