initial commit
This commit is contained in:
26
tests/integration/env/.env.integration.local.example
vendored
Normal file
26
tests/integration/env/.env.integration.local.example
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
# Integration Test Environment Variables (Local Override)
|
||||
#
|
||||
# Copy this file to .env.integration.local and fill in your actual Stripe test credentials.
|
||||
# The .env.integration.local file is gitignored and will NOT be committed.
|
||||
#
|
||||
# These values override the defaults in api.env for local development with real Stripe webhooks.
|
||||
|
||||
# ===================================================================
|
||||
# STRIPE TEST CONFIGURATION (Optional - only needed for real webhook testing)
|
||||
# ===================================================================
|
||||
# Get your test keys from: https://dashboard.stripe.com/test/apikeys
|
||||
#
|
||||
# If not provided, tests will use mock Stripe responses (API calls work, but webhooks won't)
|
||||
# For full end-to-end testing with real Stripe checkout + webhooks, provide these:
|
||||
#
|
||||
# STRIPE_SECRET_KEY=sk_test_YOUR_TEST_KEY_HERE
|
||||
# STRIPE_WEBHOOK_SECRET=whsec_YOUR_WEBHOOK_SECRET_HERE
|
||||
|
||||
# ===================================================================
|
||||
# NOTES
|
||||
# ===================================================================
|
||||
# - cloudflared tunnel is automatically started to expose API for Stripe webhooks
|
||||
# - LiveKit is automatically started with test configuration
|
||||
# - Tenor uses MockTenorService automatically (no API key needed)
|
||||
# - All Stripe price IDs are already configured in api.env
|
||||
# - This file is only needed if you want to test with REAL Stripe checkout + webhooks
|
||||
108
tests/integration/env/api.env
vendored
Normal file
108
tests/integration/env/api.env
vendored
Normal file
@@ -0,0 +1,108 @@
|
||||
NODE_ENV=development
|
||||
SELF_HOSTED=false
|
||||
RELAX_REGISTRATION_RATE_LIMITS=true
|
||||
DISABLE_RATE_LIMITS=true
|
||||
FLUXER_TEST_MODE=true
|
||||
FLUXER_TEST_TOKEN=integration-token
|
||||
|
||||
FLUXER_API_PUBLIC_ENDPOINT=http://localhost:8088/api
|
||||
FLUXER_APP_ENDPOINT=http://localhost:8088
|
||||
FLUXER_GATEWAY_ENDPOINT=ws://gateway:8080
|
||||
FLUXER_MEDIA_ENDPOINT=http://media-proxy:8080
|
||||
FLUXER_CDN_ENDPOINT=http://minio:9000/fluxer-cdn
|
||||
FLUXER_MARKETING_ENDPOINT=http://marketing.fluxer.local
|
||||
FLUXER_ADMIN_ENDPOINT=http://admin.fluxer.local
|
||||
FLUXER_PATH_MARKETING=/
|
||||
FLUXER_PATH_ADMIN=/
|
||||
FLUXER_INVITE_ENDPOINT=http://invites.fluxer.local
|
||||
FLUXER_GIFT_ENDPOINT=http://gifts.fluxer.local
|
||||
|
||||
FLUXER_API_PORT=8080
|
||||
FLUXER_GATEWAY_WS_PORT=8080
|
||||
FLUXER_GATEWAY_RPC_PORT=8081
|
||||
FLUXER_MEDIA_PROXY_PORT=8080
|
||||
FLUXER_ADMIN_PORT=8080
|
||||
FLUXER_MARKETING_PORT=8080
|
||||
FLUXER_GEOIP_PORT=8080
|
||||
|
||||
DATABASE_URL=postgresql://postgres:postgres@postgres:5432/fluxer
|
||||
REDIS_URL=redis://valkey:6379
|
||||
|
||||
CASSANDRA_HOSTS=cassandra
|
||||
CASSANDRA_KEYSPACE=fluxer
|
||||
CASSANDRA_LOCAL_DC=datacenter1
|
||||
CASSANDRA_USERNAME=cassandra
|
||||
CASSANDRA_PASSWORD=cassandra
|
||||
|
||||
FLUXER_GATEWAY_RPC_HOST=gateway
|
||||
FLUXER_GATEWAY_RPC_PORT=8081
|
||||
GATEWAY_RPC_SECRET=integration-gateway-secret
|
||||
SUDO_MODE_SECRET=integration-sudo-secret
|
||||
|
||||
FLUXER_MEDIA_PROXY_HOST=media-proxy
|
||||
MEDIA_PROXY_SECRET_KEY=integration-media-secret
|
||||
|
||||
AWS_ACCESS_KEY_ID=minioadmin
|
||||
AWS_SECRET_ACCESS_KEY=minioadmin
|
||||
AWS_S3_ENDPOINT=http://minio:9000
|
||||
AWS_S3_BUCKET_CDN=fluxer-cdn
|
||||
AWS_S3_BUCKET_UPLOADS=fluxer-uploads
|
||||
AWS_S3_BUCKET_REPORTS=fluxer-reports
|
||||
AWS_S3_BUCKET_HARVESTS=fluxer-harvests
|
||||
AWS_S3_BUCKET_DOWNLOADS=fluxer-downloads
|
||||
|
||||
PASSKEYS_ENABLED=true
|
||||
PASSKEY_RP_NAME=Fluxer Integration
|
||||
PASSKEY_RP_ID=localhost
|
||||
PASSKEY_ALLOWED_ORIGINS=http://localhost:8088,http://127.0.0.1:8088
|
||||
|
||||
EMAIL_ENABLED=false
|
||||
SENDGRID_API_KEY=
|
||||
SENDGRID_WEBHOOK_PUBLIC_KEY=
|
||||
SENDGRID_FROM_EMAIL=integration@example.com
|
||||
SENDGRID_FROM_NAME=Fluxer
|
||||
|
||||
SMS_ENABLED=false
|
||||
TWILIO_ACCOUNT_SID=
|
||||
TWILIO_AUTH_TOKEN=
|
||||
TWILIO_VERIFY_SERVICE_SID=
|
||||
|
||||
CAPTCHA_ENABLED=false
|
||||
CAPTCHA_PRIMARY_PROVIDER=none
|
||||
HCAPTCHA_SITE_KEY=
|
||||
HCAPTCHA_SECRET_KEY=
|
||||
TURNSTILE_SITE_KEY=
|
||||
TURNSTILE_SECRET_KEY=
|
||||
|
||||
VOICE_ENABLED=true
|
||||
LIVEKIT_AUTO_CREATE_DUMMY_DATA=true
|
||||
LIVEKIT_API_KEY=integration_test_key_12345
|
||||
LIVEKIT_API_SECRET=integration_test_secret_67890_very_long_secret_key_for_testing_purposes_only
|
||||
LIVEKIT_WEBHOOK_URL=http://api:8080/webhooks/livekit
|
||||
LIVEKIT_URL=ws://livekit:7880
|
||||
|
||||
SEARCH_ENABLED=true
|
||||
MEILISEARCH_URL=http://meilisearch:7700
|
||||
MEILISEARCH_API_KEY=masterKey
|
||||
|
||||
STRIPE_ENABLED=true
|
||||
|
||||
CLOUDFLARE_PURGE_ENABLED=false
|
||||
CLOUDFLARE_ZONE_ID=
|
||||
CLOUDFLARE_API_TOKEN=
|
||||
|
||||
CLAMAV_ENABLED=false
|
||||
CLAMAV_HOST=clamav
|
||||
CLAMAV_PORT=3310
|
||||
|
||||
ADMIN_OAUTH2_CLIENT_ID=
|
||||
ADMIN_OAUTH2_CLIENT_SECRET=
|
||||
ADMIN_OAUTH2_AUTO_CREATE=false
|
||||
|
||||
YOUTUBE_API_KEY=
|
||||
AUTO_JOIN_INVITE_CODE=
|
||||
FLUXER_VISIONARIES_GUILD_ID=
|
||||
FLUXER_OPERATORS_GUILD_ID=
|
||||
|
||||
GEOIP_HOST=geoip
|
||||
GEOIP_PROVIDER=ipinfo
|
||||
41
tests/integration/env/secrets.env.example
vendored
Normal file
41
tests/integration/env/secrets.env.example
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
# Integration Test Secrets
|
||||
# Copy this file to secrets.env and fill in your actual values
|
||||
# The secrets.env file is gitignored and will NOT be committed
|
||||
|
||||
# Cloudflare Tunnel (for Stripe webhook delivery)
|
||||
# Get your tunnel token from: https://dash.cloudflare.com/
|
||||
# Configure tunnel to proxy to http://api:8080
|
||||
CLOUDFLARE_TUNNEL_TOKEN=your_tunnel_token_here
|
||||
|
||||
# Stripe (test mode credentials)
|
||||
# Get test credentials from: https://dashboard.stripe.com/test/apikeys
|
||||
STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key_here
|
||||
STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret_here
|
||||
|
||||
# Stripe Price IDs - Monthly Subscriptions
|
||||
STRIPE_PRICE_ID_MONTHLY_USD=price_your_monthly_usd_price_id
|
||||
STRIPE_PRICE_ID_MONTHLY_EUR=price_your_monthly_eur_price_id
|
||||
|
||||
# Stripe Price IDs - Yearly Subscriptions
|
||||
STRIPE_PRICE_ID_YEARLY_USD=price_your_yearly_usd_price_id
|
||||
STRIPE_PRICE_ID_YEARLY_EUR=price_your_yearly_eur_price_id
|
||||
|
||||
# Stripe Price IDs - Visionary (Lifetime)
|
||||
STRIPE_PRICE_ID_VISIONARY_USD=price_your_visionary_usd_price_id
|
||||
STRIPE_PRICE_ID_VISIONARY_EUR=price_your_visionary_eur_price_id
|
||||
|
||||
# Stripe Price IDs - Gifts (Visionary)
|
||||
STRIPE_PRICE_ID_GIFT_VISIONARY_USD=price_your_gift_visionary_usd_price_id
|
||||
STRIPE_PRICE_ID_GIFT_VISIONARY_EUR=price_your_gift_visionary_eur_price_id
|
||||
|
||||
# Stripe Price IDs - Gifts (1 Month)
|
||||
STRIPE_PRICE_ID_GIFT_1_MONTH_USD=price_your_gift_1_month_usd_price_id
|
||||
STRIPE_PRICE_ID_GIFT_1_MONTH_EUR=price_your_gift_1_month_eur_price_id
|
||||
|
||||
# Stripe Price IDs - Gifts (1 Year)
|
||||
STRIPE_PRICE_ID_GIFT_1_YEAR_USD=price_your_gift_1_year_usd_price_id
|
||||
STRIPE_PRICE_ID_GIFT_1_YEAR_EUR=price_your_gift_1_year_eur_price_id
|
||||
|
||||
# Tenor API Key (for GIF search tests)
|
||||
# Get your API key from: https://developers.google.com/tenor/guides/quickstart
|
||||
TENOR_API_KEY=your_tenor_api_key_here
|
||||
Reference in New Issue
Block a user