- Add .gitea/workflows/ci.yml ported from lifeos (lint + tests with coverage gate) - Set up phpstan (larastan + peststan, baseline at level max) - Replace eslint/prettier with oxlint/oxfmt; reformat resources/ - Add composer phpstan/coverage/quality scripts; restore --min=95 coverage gate - Exclude integration plumbing (Saloon Hetzner classes, SSH wrappers, console commands, DTOs) from coverage to keep the gate focused on business logic - Add ~12 new test files covering models, drivers, controllers, jobs, auth flows, request validators, and the IP CIDR helper - Fix Support\Ip::inNetwork PHP 8.4 TypeError in CIDR mask check - Fix FirewallRule::command comparing the enum-cast type column to a string - Fix Server::network using the wrong foreign key column - Remove unreachable code under abort(403) in RegisteredUserController
48 lines
2.0 KiB
XML
48 lines
2.0 KiB
XML
<?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>
|
|
<exclude>
|
|
<directory>app/Console</directory>
|
|
<directory>app/Data</directory>
|
|
<directory>app/Http/Integrations</directory>
|
|
<file>app/Actions/Servers/SyncUfwRules.php</file>
|
|
<file>app/Actions/FirewallRules/InstallFirewallRule.php</file>
|
|
<file>app/Actions/FirewallRules/UninstallFirewallRule.php</file>
|
|
<file>app/Services/Operations/SshRemoteCommandRunner.php</file>
|
|
<file>app/Services/ServerProviders/HetznerService.php</file>
|
|
<file>app/Jobs/Servers/ProvisionServer.php</file>
|
|
<file>app/Jobs/Servers/WaitForServerToConnect.php</file>
|
|
<file>app/Actions/Applications/GenerateDeployKey.php</file>
|
|
</exclude>
|
|
</source>
|
|
<php>
|
|
<env name="APP_ENV" value="testing"/>
|
|
<env name="APP_KEY" value="base64:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="/>
|
|
<env name="APP_MAINTENANCE_DRIVER" value="file"/>
|
|
<env name="BCRYPT_ROUNDS" value="4"/>
|
|
<env name="CACHE_STORE" value="array"/>
|
|
<env name="DB_CONNECTION" value="sqlite"/>
|
|
<env name="DB_DATABASE" value=":memory:"/>
|
|
<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"/>
|
|
</php>
|
|
</phpunit>
|