++ fix e controlli

This commit is contained in:
2026-07-30 17:05:39 +02:00
parent 712336d652
commit 440d63a6b9
54 changed files with 4921 additions and 1322 deletions

66
phpunit.xml Normal file
View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Suite di test di TerManager2.
Si esegue nel container dedicato, l'unico posto dove le dipendenze di
sviluppo esistono (l'immagine di runtime le installa senza). Il comando sta
nel README, sezione "Test automatici".
Attenzione: un commento XML non puo' contenere due trattini di fila, quindi
qui dentro le opzioni da riga di comando non si possono scrivere per esteso.
PHPUnit fallisce con "Double hyphen within comment" e non esegue niente.
force="true" su ogni variabile e' deliberato: Laravel carica il .env con
Dotenv "immutable", quindi non sovrascrive quello che c'e' gia'
nell'ambiente, ma il contrario non vale per PHPUnit, che senza force
lascerebbe vincere una variabile ereditata dal container. Con force la
configurazione dei test e' quella scritta qui e nient'altro, anche se
qualcuno lancia la suite in un ambiente gia' popolato.
-->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="vendor/autoload.php"
colors="true"
cacheDirectory=".phpunit.cache"
failOnRisky="true"
failOnWarning="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>
<env name="APP_ENV" value="testing" force="true"/>
<env name="APP_DEBUG" value="true" force="true"/>
<env name="APP_URL" value="http://localhost" force="true"/>
<!--
Chiave fissa e pubblica, valida solo qui. Serve perche' nome e
cognome dei proclamatori hanno il cast "encrypted": senza APP_KEY
nemmeno un test che non parla di cifratura riuscirebbe a scrivere
una riga. Non ha niente a che vedere con la chiave di produzione,
che vive nell'ambiente e nel volume storage.
-->
<env name="APP_KEY" value="base64:JPM8qoMC8lWnPZ6UUJbVZc3EQQCaZl46ZKfRJJ/Lr6w=" force="true"/>
<env name="DB_CONNECTION" value="sqlite" force="true"/>
<env name="DB_DATABASE" value=":memory:" force="true"/>
<!-- Niente Redis, niente database di supporto: la suite gira da sola. -->
<env name="CACHE_STORE" value="array" force="true"/>
<env name="SESSION_DRIVER" value="array" force="true"/>
<env name="QUEUE_CONNECTION" value="sync" force="true"/>
<env name="MAIL_MAILER" value="array" force="true"/>
<!-- bcrypt a costo minimo: gli hash nei test non proteggono nulla. -->
<env name="BCRYPT_ROUNDS" value="4" force="true"/>
</php>
</phpunit>