BugFix: Fix toUseTrait to detect inherited and nested traits

This commit is contained in:
Malico
2025-09-20 19:06:23 +01:00
parent fc7a4182b5
commit dc9a1e8ace
6 changed files with 83 additions and 1 deletions

View File

@ -14,3 +14,19 @@ test('failures', function () {
test('not failures', function () {
expect('Pest\Expectations\HigherOrderExpectation')->not->toUseTrait('Pest\Concerns\Retrievable');
})->throws(ArchExpectationFailedException::class);
test('trait inheritance - direct usage', function () {
expect('Tests\Fixtures\Arch\ToUseTrait\HasTrait\ParentClassWithTrait')->toUseTrait('Tests\Fixtures\Arch\ToUseTrait\HasTrait\TestTraitForInheritance');
});
test('trait inheritance - inherited usage', function () {
expect('Tests\Fixtures\Arch\ToUseTrait\HasInheritedTrait\ChildClassExtendingParent')->toUseTrait('Tests\Fixtures\Arch\ToUseTrait\HasTrait\TestTraitForInheritance');
});
test('trait inheritance - negative case', function () {
expect('Tests\Fixtures\Arch\ToUseTrait\HasInheritedTrait\ChildClassExtendingParent')->not->toUseTrait('NonExistentTrait');
});
test('nested trait inheritance', function () {
expect('Tests\Fixtures\Arch\ToUseTrait\HasInheritedTrait\ChildClassExtendingParent')->toUseTrait('Tests\Fixtures\Arch\ToUseTrait\HasNestedTrait\NestedTrait');
});