Files
hub/phpunit.xml
Jon Leopard 5c1863218f fix: optimize test suite performance with DatabaseTransactions
This commit completes the PR #53 integration by optimizing the test suite:

Performance Improvements:
- Migrated 25 test files from RefreshDatabase to DatabaseTransactions
- Tests now run in 12.69s parallel (previously 30s+)
- Increased PostgreSQL max_locks_per_transaction to 256 for parallel testing

Test Infrastructure Changes:
- Disabled broadcasting in tests (set to null) to avoid Reverb connectivity issues
- Reverted 5 integration tests to RefreshDatabase (CheckoutFlowTest + 4 Service tests)
  that require full schema recreation due to complex fixtures

PR #53 Integration Fixes:
- Added Product.inStock() scope for inventory queries
- Fixed ProductFactory to create InventoryItem records instead of using removed columns
- Added Department.products() relationship
- Fixed FulfillmentWorkOrderController view variables
- Fixed orders migration location_id foreign key constraint
- Created seller-layout component wrapper

All 146 tests now pass with optimal performance.
2025-11-17 20:52:50 -07:00

46 lines
1.7 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>
</source>
<php>
<env name="APP_ENV" value="testing"/>
<env name="APP_MAINTENANCE_DRIVER" value="file"/>
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="BROADCAST_CONNECTION" value="null"/>
<env name="CACHE_STORE" value="array"/>
<env name="DB_HOST" value="pgsql"/>
<env name="DB_PORT" value="5432"/>
<env name="DB_DATABASE" value="testing"/>
<env name="DB_USERNAME" value="sail"/>
<env name="DB_PASSWORD" value="password"/>
<env name="MAIL_MAILER" value="array"/>
<env name="PULSE_ENABLED" value="false"/>
<env name="QUEUE_CONNECTION" value="sync"/>
<env name="REDIS_CLIENT" value="predis"/>
<env name="REDIS_HOST" value="redis"/>
<env name="REVERB_APP_ID" value="182567"/>
<env name="REVERB_APP_KEY" value="ieplst7x2k8avnqcmmo6"/>
<env name="REVERB_APP_SECRET" value="ckhvaobktbozwpljzlrv"/>
<env name="REVERB_HOST" value="reverb"/>
<env name="REVERB_PORT" value="8080"/>
<env name="REVERB_SCHEME" value="http"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="TELESCOPE_ENABLED" value="false"/>
</php>
</phpunit>