<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
         bootstrap="vendor/autoload.php"
         colors="true"
>
    <testsuites>
        <testsuite name="Unit">
            <directory>tests/Unit</directory>
        </testsuite>
        <testsuite name="Feature">
            <directory>tests/Feature</directory>
        </testsuite>
    </testsuites>
    <source>
        <include>
            <directory>app</directory>
        </include>
    </source>
    <php>
        <ini name="memory_limit" value="512M"/>
        <!--
            The app container injects .env as real environment variables. Laravel's env()
            reads $_SERVER first, and PHPUnit's env force="true" only overrides $_ENV/getenv,
            so every test setting is declared twice: <server> wins inside Laravel, <env>
            covers getenv()/$_ENV. Without this, APP_ENV=local breaks CSRF in tests and
            tests would run against the remote database.
            Migrations use MySQL triggers, so tests need MySQL, not SQLite.
            Start the test database with the compose profile "test" (service mysql_test),
            then run "php artisan test" inside the app container. See docker-compose.yml.
        -->
        <env name="APP_ENV" value="testing" force="true"/>
        <env name="APP_DEBUG" value="true" force="true"/>
        <env name="APP_MAINTENANCE_DRIVER" value="file" force="true"/>
        <env name="BCRYPT_ROUNDS" value="4" force="true"/>
        <env name="CACHE_STORE" value="array" force="true"/>
        <env name="DB_CONNECTION" value="mysql" force="true"/>
        <env name="DB_HOST" value="mysql_test" force="true"/>
        <env name="DB_PORT" value="3306" force="true"/>
        <env name="DB_DATABASE" value="slovnyk_test" force="true"/>
        <env name="DB_USERNAME" value="root" force="true"/>
        <env name="DB_PASSWORD" value="root" force="true"/>
        <env name="MAIL_MAILER" value="array" force="true"/>
        <env name="PULSE_ENABLED" value="false" force="true"/>
        <env name="QUEUE_CONNECTION" value="sync" force="true"/>
        <env name="SESSION_DRIVER" value="array" force="true"/>
        <env name="TELESCOPE_ENABLED" value="false" force="true"/>
        <server name="APP_ENV" value="testing"/>
        <server name="APP_DEBUG" value="true"/>
        <server name="APP_MAINTENANCE_DRIVER" value="file"/>
        <server name="BCRYPT_ROUNDS" value="4"/>
        <server name="CACHE_STORE" value="array"/>
        <server name="DB_CONNECTION" value="mysql"/>
        <server name="DB_HOST" value="mysql_test"/>
        <server name="DB_PORT" value="3306"/>
        <server name="DB_DATABASE" value="slovnyk_test"/>
        <server name="DB_USERNAME" value="root"/>
        <server name="DB_PASSWORD" value="root"/>
        <server name="MAIL_MAILER" value="array"/>
        <server name="PULSE_ENABLED" value="false"/>
        <server name="QUEUE_CONNECTION" value="sync"/>
        <server name="SESSION_DRIVER" value="array"/>
        <server name="TELESCOPE_ENABLED" value="false"/>
    </php>
</phpunit>
