aprs.me/config/test.exs
Graham McIntire f3b8f95ba4
fix: Disable ErrorTracker in test environment
Prevents database ownership errors during LiveView tests by disabling
ErrorTracker's database integration in the test environment.

This resolves the recurring "Handler ErrorTracker.Integrations.Phoenix
has failed and has been detached" errors that were occurring when
LiveView processes tried to write to the database without proper
ownership setup.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 14:26:18 -05:00

105 lines
3.3 KiB
Elixir

import Config
# In test we don't send emails.
config :aprsme, Aprsme.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 :aprsme, Aprsme.Repo,
username: "postgres",
password: "postgres",
hostname: "localhost",
database: "aprsme_test#{System.get_env("MIX_TEST_PARTITION")}",
pool: Ecto.Adapters.SQL.Sandbox,
pool_size: System.schedulers_online() * 2,
types: Aprsme.PostgresTypes,
ownership_timeout: 300_000,
timeout: 300_000
# We don't run a server during test. If one is required,
# you can enable the server option below.
config :aprsme, AprsmeWeb.Endpoint,
adapter: Bandit.PhoenixAdapter,
http: [ip: {127, 0, 0, 1}, port: 4002],
secret_key_base: "IV9+ENaw9i8xjReRk4sULRvRgsmFVTGQwQGGrf4G+Q/SFMeHBCNWRlPXQ2YvT36R",
server: true
# Disable Prometheus telemetry in test mode to avoid port conflicts
config :aprsme, AprsmeWeb.Telemetry, enabled: false
# Disable cleanup scheduler in test environment
config :aprsme, :cleanup_scheduler, enabled: false
# Disable initialize replay delay in test environment
config :aprsme, :initialize_replay_delay, 0
# Configure the packets module to use the mock in tests
config :aprsme, :packets_module, Aprsme.PacketsMock
# Disable APRS-IS external connections in test environment
config :aprsme,
aprs_is_server: "mock.aprs.test",
aprs_is_port: 14_580,
aprs_is_default_filter: "r/33/-96/100",
aprs_is_login_id: "TEST",
aprs_is_password: "-1",
disable_aprs_connection: true
# Disable automatic migrations during tests
config :aprsme, auto_migrate: false
# Only in tests, remove the complexity from the password hashing algorithm
config :bcrypt_elixir, :log_rounds, 1
# Disable ErrorTracker in test environment to avoid database ownership issues
config :error_tracker, enabled: false
# Disable Exq during tests to prevent background job execution
config :exq,
start_on_application: false,
mode: :inline
# Configure ExVCR
config :exvcr,
vcr_cassette_library_dir: "test/fixtures/vcr_cassettes",
custom_cassette_library_dir: "test/fixtures/vcr_cassettes",
filter_request_headers: ["Authorization"],
filter_url_params: false,
response_headers_blacklist: []
# Configure Hammer for test environment
config :hammer,
backend: {Hammer.Backend.ETS, [expiry_ms: 60_000 * 60 * 4, cleanup_interval_ms: 60_000 * 10]}
# 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
# Disable swoosh api client as it is only required for production adapters.
config :swoosh, :api_client, false
# Configure Wallaby
config :wallaby,
driver: Wallaby.Chrome,
chromedriver: [
headless: true,
# Additional Chrome options for CI stability
args: [
"--no-sandbox",
"--disable-dev-shm-usage",
"--disable-gpu",
"--window-size=1280,720"
]
],
screenshot_on_failure: true,
screenshot_dir: "test/screenshots",
base_url: "http://localhost:4002",
# Increase default timeouts for CI environment
max_wait_time: "WALLABY_MAX_WAIT_TIME" |> System.get_env("5000") |> String.to_integer(),
# Pool configuration for concurrent tests
pool_size: 1