31 lines
1 KiB
PHP
31 lines
1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
describe('application coding rules', function (): void {
|
|
arch('no Domain Entities are used in Controllers')
|
|
->expect('Application\\Http\\Controllers')
|
|
->not->toUse('Domain\\Models\\Entities');
|
|
|
|
arch('no Domain Entities are used in Policies')
|
|
->expect('Application\\Policies')
|
|
->not->toUse('Domain\\Models\\Entities');
|
|
|
|
arch('app Repositories implement Application\Contracts\Repository')
|
|
->expect('Application\\Repositories')
|
|
->toImplement('Application\\Contracts\\Repository');
|
|
|
|
arch('app Directories implement Application\Contracts\Directory')
|
|
->expect('Application\\Directories')
|
|
->toImplement('Application\\Contracts\\Directory');
|
|
|
|
arch('app DTOs are final readonly classes')
|
|
->expect('Application\\Dto')
|
|
->classes()
|
|
->toBeFinal()
|
|
->toBeReadonly();
|
|
|
|
arch('no debug calls in production code')
|
|
->expect(['dd', 'dump', 'die', 'var_dump', 'sleep'])
|
|
->not->toBeUsed();
|
|
});
|