Simplify Microsoft.ReactNative.IntegrationTests #6868
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.
This PR simplifies writing integration tests for
Microsoft.ReactNative.dllin theMicrosoft.ReactNative.IntegrationTestsproject. To accomplish it we are adding two new helper classes:TestReactNativeHostHolderandTestEventService:TestReactNativeHostHolderhelps creation ofReactNativeHostin the unit tests. It takes care about creation pseudo-UI thread, initializing all settings, and then waiting until theReactNativeHostunloads the React instance.TestEventServicehelps logging and observing test events. The test events can be logged from different threads. TheTestEventService::Observemethod blocks the unit test thread until all test events are observed. Each incoming test event is checked for its name and associatedJSValuedata.All existing tests in
Microsoft.ReactNative.IntegrationTestsare changed to use the new helper classes. TheTestEventServicereplaces the pattern based on thestd::promise. In addition to that we have the following:DynamicReaderto correctly outputInt64value type.ExecuteJsirelated tests into their own test fileExecuteJsiTests.cpp.AddValues.jstoReactNativeHostTests.jsto match the test file nameReactNativeHostTests.cpp.Utilitiesfilter folder.Microsoft Reviewers: Open in CodeFlow