[6.x] Make PreventsSavingStacheItemsToDisk work with Pest PHP #13640
+2
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes the
PreventsSavingStacheItemsToDisktrait with Pest PHP. ThefakeStacheDirectorypath is incorrectly calculated, causing test fixtures to be saved to the wrong location.Root Cause
In
AddonTestCase::setUp(), the current code uses reflection on$thisto determine the test file path:PHPUnit
In PHPUnit tests,
$thisrefers to the actual test class (e.g.,MyAddonTest), so$reflection->getFileName()correctly returns the test file path like/path/to/addon/tests/Feature/MyAddonTest.php.Pest PHP
In Pest PHP tests,
$thisrefers to a dynamically generated class created by Pest internally. As a result,$reflection->getFileName()returns a path insidevendor/pestphp/pest/src/Factories/, causing thefakeStacheDirectoryto be set to an incorrect location likevendor/pestphp/pest/src/Factories/tests/__fixtures__/dev-null.Solution
Use reflection on
$this->addonServiceProviderinstead of$this. This provides a reliable reference point regardless of whether Pest or PHPUnit is being used, and is consistent with the existing approach ingetEnvironmentSetUp():