<?xml version="1.0" encoding="UTF-8"?>
<!--
    Suite de tests exécutée sur MySQL.

    Pourquoi une seconde configuration plutôt que de basculer phpunit.xml : SQLite en
    mémoire reste la suite de développement (2 s, aucun service à démarrer), mais il ne
    reproduit pas ce qui casse en production — JSON natif, sql_mode strict, utf8mb4 sur
    4 octets, DECIMAL, contraintes d'unicité et clés étrangères réellement appliquées.
    Cette configuration rejoue donc TOUTE la suite sur MySQL, plus la suite `Database`
    qui ne teste que des comportements propres à MySQL.

    Lancer :
        php artisan test -c phpunit.mysql.xml

    Les valeurs ci-dessous visent le conteneur `mysql` du docker-compose.yml vu depuis
    l'hôte (port 3308). Elles NE SONT PAS forcées : une variable déjà présente dans
    l'environnement du processus l'emporte, ce qui permet de viser une autre instance
    sans toucher au fichier — depuis l'intérieur du conteneur applicatif, par exemple :
        DB_HOST=mysql DB_PORT=3306 sail test -c phpunit.mysql.xml

    La base visée doit porter « test » dans son nom : la suite utilise RefreshDatabase,
    qui vide la base ciblée. Le garde-fou est dans tests/TestCase.php.

    Cf. doc/mysql.md.
-->
<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>
        <testsuite name="Database">
            <directory>tests/Database</directory>
        </testsuite>
    </testsuites>
    <source>
        <include>
            <directory>app</directory>
        </include>
    </source>
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="BCRYPT_ROUNDS" value="4"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="MAIL_MAILER" value="array"/>
        <env name="PULSE_ENABLED" value="false"/>
        <env name="QUEUE_CONNECTION" value="sync"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="TELESCOPE_ENABLED" value="false"/>

        <env name="DB_CONNECTION" value="mysql"/>
        <env name="DB_HOST" value="127.0.0.1"/>
        <env name="DB_PORT" value="3308"/>
        <env name="DB_DATABASE" value="testing"/>
        <env name="DB_USERNAME" value="root"/>
        <env name="DB_PASSWORD" value="password"/>
    </php>
</phpunit>
