feat: add @expo/entity-testing-utils package #280
Merged
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.
Why
When testing the last batch of changes in the Expo server, I noticed that I needed to use the TSMockitoExtensions. Figured it was a good idea to expose them for others to use as well.
How
The challenge is that these should only be in dev dependencies so exposing them in the @expo/entity package is a no-go.
So, create a new package. Then, it made sense to move all the testing utilities to that package. But this requires duplicating code since it would create a dependency cycle if entity used the common code in addition to the common code using entity. So, the solution is to make the test utils depend on entity but not vice-versa and just duplicate the modules. Then, add a test to ensure the duplicated modules stay perfectly in-sync.
This also moves the other test utilities into this new package.
Test Plan
Run all tests (full coverage).