Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Able to Reset All Fakes #86

Merged
merged 13 commits into from
Nov 7, 2024
Merged

Conversation

deligoez
Copy link
Member

@deligoez deligoez commented Nov 5, 2024

The resetAllFakes method within the Fakeable trait is intended to clear all fake instances from the application container. However, it appears to be leaving some bindings intact, leading to failures in tests expecting the container to be fully reset. This behavior is likely due to the incomplete handling of bindings and instances in the reset process, impacting App::bind, App::has, and App::forgetInstance.

Ensures that fake instances are properly cleaned up by adding
missing offsetUnset call.
Provide method to reset all fakes in application container.
This ensures that fakes can be cleared consistently, avoiding
potential conflicts in subsequent tests.
Rename MachineFacade to EventMachine for clearer representation
and consistency. Updated composer.json to reflect the new alias.
This change adds a new EventMachine class with a method to reset all
fake invocations to their default state using the InvokableBehavior
utility.
Add a new test to verify that all fakes can be reset simultaneously. This ensures
that the EventMachine facade's resetAllFakes method behaves as expected.
…ake reset

Add a test to ensure that the Mockery container is cleaned when all fakes are reset in InvokableBehaviorFakeTest.php.
…ion after reset

Add a new test to ensure behavior isolation is maintained after resetting
all fakes. This test verifies that TestIncrementAction and TestCountGuard
fakes operate independently following a reset.
…s with trait instances

Add new test to ensure resetting fakes with different trait instances
works consistently. Enhances coverage for behavior isolation.
src/Facades/EventMachine.php Show resolved Hide resolved
src/Traits/Fakeable.php Outdated Show resolved Hide resolved
Introduce cleanupLaravelContainer method to remove fake instances from
Laravel's container, preventing memory leaks and ensuring proper state
reset between tests.
This new method cleans up Mockery expectations for a given mock instance.
Previously, the resetFakes method did not comprehensively clean up
Laravel container and Mockery expectations, leading to potential
leaks or unexpected behavior. This change introduces thorough
cleanup to ensure that both the Laravel container and Mockery
expectations are accurately reset.
Reset process now uses dedicated cleanup functions for improved clarity and maintainability.
@tkaratug tkaratug merged commit 2d4f0f1 into main Nov 7, 2024
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants