expect('App') ->toUseStrictTypes(); test('No debugging functions left behind in codebase') ->expect(['dd', 'dump', 'ray', 'var_dump', 'print_r', 'die', 'exit']) ->not->toBeUsed(); test('Controllers naming convention & inheritance') ->expect('App\Http\Controllers') ->toHaveSuffix('Controller'); test('Controllers should not directly query Eloquent Models') ->expect('App\Http\Controllers') ->not->toUse('App\Models') ->ignoring('App\Http\Controllers\Auth'); test('Services must be final or readonly') ->expect('App\Services') ->toHaveSuffix('Service'); test('DTOs and Value Objects must be immutable (readonly)') ->expect('App\DTOs') ->toBeReadonly(); test('Custom Validation Rules must implement ValidationRule contract') ->expect('App\Rules') ->toImplement('Illuminate\Contracts\Validation\ValidationRule'); test('Jobs must be queueable') ->expect('App\Jobs') ->toImplement('Illuminate\Contracts\Queue\ShouldQueue'); test('Events must not have dependencies injected') ->expect('App\Events') ->classes() ->not->toHaveConstructor(); });