Ensure proper env vars are promoted for dev and test envs

This commit is contained in:
Alejandro Celaya 2024-10-24 14:20:45 +02:00
parent 4520afb271
commit 2a734b5d89
5 changed files with 20 additions and 16 deletions

View file

@ -17,12 +17,8 @@ touch $OUTPUT_LOGS
# Try to stop server just in case it hanged in last execution
[ "$TEST_RUNTIME" = 'rr' ] && bin/rr stop -f -w .
# Resolve .env file absolute path, as it fails to load with relative paths
TESTS_DOTENV="${PWD}/config/test/shlink-test.env"
echo 'Starting server...'
[ "$TEST_RUNTIME" = 'rr' ] && bin/rr serve -p -w . -c=config/roadrunner/.rr.test.yml \
--dotenv "$TESTS_DOTENV" \
-o=logs.output="${PWD}/${OUTPUT_LOGS}" \
-o=logs.channels.http.output="${PWD}/${OUTPUT_LOGS}" \
-o=logs.channels.server.output="${PWD}/${OUTPUT_LOGS}" &

View file

@ -7,11 +7,6 @@ export GENERATE_COVERAGE="${GENERATE_COVERAGE:-"no"}"
[ "$GENERATE_COVERAGE" != 'no' ] && export XDEBUG_MODE=coverage
# Load and export test env vars
set -a
. ./config/test/shlink-test.env
set +a
vendor/bin/phpunit --order-by=random --testdox --testdox-summary -c phpunit-cli.xml $*
TESTS_EXIT_CODE=$?

View file

@ -15,8 +15,11 @@ chdir(dirname(__DIR__));
require 'vendor/autoload.php';
// Promote env vars from installer or dev config
loadEnvVarsFromConfig('config/params/*.php', enumValues(EnvVars::class));
// Promote env vars from installer, dev config or test config
loadEnvVarsFromConfig(
EnvVars::isTestEnv() ? 'config/test/shlink_test_env.php' : 'config/params/*.php',
enumValues(EnvVars::class),
);
// This is one of the first files loaded. Configure the timezone and memory limit here
ini_set('memory_limit', EnvVars::MEMORY_LIMIT->loadFromEnv());

View file

@ -1,5 +0,0 @@
APP_ENV=test
# URL shortener
DEFAULT_DOMAIN=s.test
IS_HTTPS_ENABLED=false

View file

@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
use Shlinkio\Shlink\Core\Config\EnvVars;
return [
EnvVars::APP_ENV->value => 'test',
// URL shortener
EnvVars::DEFAULT_DOMAIN->value => 's.test',
EnvVars::IS_HTTPS_ENABLED->value => false,
];