tarakan/config/test.exs
Maxfield Luke af6077b9c3
All checks were successful
CI and deploy / Test (push) Successful in 4m52s
CI and deploy / Deploy production (push) Successful in 23s
Initial commit on Forgejo
Fresh repository history for elektrine/tarakan hosted at
https://git.elektrine.com/elektrine/tarakan.
2026-07-29 04:43:40 -04:00

118 lines
4 KiB
Elixir

import Config
config :tarakan, secure_cookies: false
# Only in tests, remove the complexity from the password hashing algorithm
config :argon2_elixir, t_cost: 1, m_cost: 8
# 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 :tarakan, Tarakan.Repo,
username: "postgres",
password: "postgres",
hostname: "localhost",
database: "tarakan_test#{System.get_env("MIX_TEST_PARTITION")}",
pool: Ecto.Adapters.SQL.Sandbox,
pool_size: System.schedulers_online() * 2
config :tarakan, Oban, testing: :manual
# Tests use the GitHub stub; enable REST object fallback with mirrors off.
config :tarakan, Tarakan.RepositoryMirror, enabled: false, rest_fallback: true
config :tarakan, Tarakan.HostedRepositories,
root: "tmp/test_hosted#{System.get_env("MIX_TEST_PARTITION")}",
max_push_bytes: 262_144_000,
quota_bytes: 1_073_741_824
config :tarakan, TarakanWeb.GitHTTP,
anonymous_rate_limit: {100_000, 60},
account_rate_limit: {100_000, 60}
# Push bookkeeping runs inline so tests observe it deterministically.
config :tarakan, TarakanWeb.GitHTTP.Service, synchronous_post_receive: true
# Login-link delivery runs inline so tests observe tokens and emails.
config :tarakan, Tarakan.Accounts, synchronous_login_delivery: true
config :tarakan,
github_client: Tarakan.GitHubStub,
github_bulk_client: Tarakan.GitHubBulkStub,
github_oauth_client: Tarakan.GitHub.OAuthStub,
gitlab_oauth_client: Tarakan.GitLab.OAuthStub,
request_completion_mode: :document_or_legacy_prose,
stripe_api: Tarakan.Billing.StripeStub,
stripe_webhook_secret: "whsec_test_secret",
stripe_price_enterprise: "price_enterprise_test",
market_take_rate: 0.10
# Infestation tests: refresh rollups inline so list/get see data without Oban drain.
config :tarakan, :infestations,
read_from_rollup: true,
refresh_async: true,
sync_refresh: true
# LiveView tests assert immediate registry stat updates.
config :tarakan, :registry_stats_ttl_seconds, 0
config :tarakan, :github,
client_id: "test-client-id",
client_secret: "test-client-secret",
api_token: nil
config :tarakan, Tarakan.RepositoryCode,
global_upstream_limit: 100_000,
repository_upstream_limit: 100_000,
upstream_window_seconds: 60
# The analytics cache is process-global while the database is per-test, so any
# TTL would leak one case's aggregates into another. Zero bypasses it.
config :tarakan, Tarakan.AnalyticsCache, ttl_ms: 0
config :tarakan, :gitlab,
base_url: "https://gitlab.com",
client_id: "test-gitlab-client-id",
client_secret: "test-gitlab-client-secret"
# We don't run a server during test. If one is required,
# you can enable the server option below.
config :tarakan, TarakanWeb.Endpoint,
http: [ip: {127, 0, 0, 1}, port: 4002],
secret_key_base: "vTG1EmduEPjiggdJIzKiBkK0Moh6gUUV8LlYu4qiKU/dsX4APCeA0kQPUH78NFDz",
server: false
# In test we don't send emails
config :tarakan, Tarakan.Mailer, adapter: Swoosh.Adapters.Test
# Keep the limiter in the request path without coupling unrelated async tests
# to the same loopback-IP bucket. The limiter itself has focused low-limit tests.
config :tarakan, TarakanWeb.Plugs.ApiRateLimit,
request_limit: 100_000,
mutation_limit: 100_000
config :tarakan, TarakanWeb.BrowserRateLimit,
login_ip: {100_000, 60},
login_pair: {100_000, 300},
magic_ip: {100_000, 3_600},
magic_email: {100_000, 3_600},
registration_ip: {100_000, 3_600}
# 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
# Sort query params output of verified routes for robust url comparisons
config :phoenix,
sort_verified_routes_query_params: true