ldc-arcadia-api/tests/Architecture/ApplicationTest.php
Jérémy Munsch 0cd539c180
test(architecture): add rules to prevent Presenters and Views
Ensure that the Application layer does not contain Presenters or Views.
2026-08-12 17:01:09 +02:00

37 lines
1 KiB
PHP

<?php
declare(strict_types=1);
describe('Application Architecture Rules', function (): void {
arch('Application layer does not depend on Presentation, Infra, or App')
->expect('Application')
->not->toUse([
'Presentation',
'Infra',
'Infrastructure',
'App',
]);
arch('Application layer does not depend on Illuminate framework')
->expect('Application')
->not->toUse('Illuminate');
arch('Application layer uses strict types')
->expect('Application')
->toUseStrictTypes();
arch('Application Usecase classes are final and readonly')
->expect('Application\Usecase')
->toBeReadonly()
->toBeFinal();
arch('Application layer must not contain Presenters')
->expect('Application')
->classes()
->not->toHaveSuffix('Presenter');
arch('Application layer must not contain Views')
->expect('Application')
->classes()
->not->toHaveSuffix('View');
});