-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Enable WebSocketModule unit tests #4538
Conversation
Hello @JunielKatarn! Because this pull request has the Do note that I've been instructed to only help merge pull requests of this repository that have been opened for at least 60 minutes. No worries though, I will be back when the time is right! 😉 p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change adds quite a few mocks that essentially noop/do not conform to the defined interface. This is often a bit of a red flag, since we can start depending on behavior which is unimplemented in test code. One strategy to deal with this are to inject/use more granular, mockable interfaces (not familiar enough with this code to know if we can do this). Another is to just leave this an an integration test. This takes longer to run, but testing against the real implementations provides a lot of value. |
@NickGerleman I also agree the runtime is worth it, and being unit tests, likely negligible. |
As a heads up, a lot of the native module API will change with Vlad's work this quarter. E.g. what type of things we expose to the module in the first place. E.g. native modules won't touch raw instances. I.e. it might not be worth going too far down the rabbit hole if it will all change. |
I'm aware, and will adapt the mocking types as these changes develop. Note, this is just a first iteration and I will add tests and mocks subsequently. |
* Prototype mockable MessageQueueThread and JSExecutor * Declare MockJSExecutor::CallFunctionFunctor * Add missing using std::unique_ptr * Use WebSocketModule::MethodId * clang format * Make WebSocketModule methods override instead of virtual. * Allow WebSocketModule to use custom resource factory * Rename *Impl to *Mock * Move Instance mocks into separate source files * Move Instance mocks into separate source files * Change files * clang format * Define WebSocketModule::SetResourceFactory
* Publish fix * Creating new Microsoft.ReactNative.sln (#4535) * Created new Microsoft.ReactNative.sln * Update PR to build vnext/Microsoft.ReactNative.sln * Add params to disable ReactUWP nuget pack during PR * applying package updates ***NO_CI*** * Move playground app to use Microsoft.ReactNative (#4534) * Move playground app to use Microsoft.ReactNative * formatting * Bunch of code review feedback * Change files * formatting * Delete unneeded gitignore * Minor removal of diff * Minor changes to try to avoid having to update cert all the time * Fix bundle command * No need to build rntester seperately, the release build of playground will do it from msbuild * Remove test property * Bump beachball from 1.28.0 to 1.28.1 (#4539) * applying package updates ***NO_CI*** * applying package updates ***NO_CI*** * Enabling managed unit tests in CI loop (#4532) * Disable .net native for managed unit tests * Change files * Enable managed unit tests in ci loop * re-merge unit test tasks, can't run arm anyway * Remove prefer 32bit from 64bit flavors * Update mstest dependencies * Managed tests are separate again * Add comment * Add test adapter path * x86 debug again * Update test adapter folder * Try again * remove frameworkuap10 * Switch to appxrecipie * Try to switch to installed version of vstest * Remove installer task * applying package updates ***NO_CI*** * Remove 'Delete Android SDK' from E2ETest (#4554) * Enable WebSocketModule unit tests (#4538) * Prototype mockable MessageQueueThread and JSExecutor * Declare MockJSExecutor::CallFunctionFunctor * Add missing using std::unique_ptr * Use WebSocketModule::MethodId * clang format * Make WebSocketModule methods override instead of virtual. * Allow WebSocketModule to use custom resource factory * Rename *Impl to *Mock * Move Instance mocks into separate source files * Move Instance mocks into separate source files * Change files * clang format * Define WebSocketModule::SetResourceFactory * applying package updates ***NO_CI*** * Improve inner loop and error reporting (local CLI) (#4536) -Surface msbuild errors (shows as undefined right now) -downloading nuget with Invoke-WebRequest will usually take a long time because of the PS progress bar (which sadly gets updated for every byte), so I'm disabling the progress bar (it only takes a second to download when the progress bar is turned off) retry once if nuget failed since if you cancel at just the right time, you could end up with a truncated nuget.exe and are wedged unless you know which file to delete. Learned that the hard way. -factor out calling onto powershell functions -we were not exposing whether the function failed or not * applying package updates ***NO_CI*** * Don't set readyState on connection error (#4562) * Don't set readyState on connection error * Change files * applying package updates ***NO_CI*** * Bump @babel/core from 7.8.4 to 7.9.0 (#4565) * Simplified C++ macros and improved their comments (#4568) * Simplified C++ macros and improved their comments * Change files * applying package updates ***NO_CI*** * Handle syntax errors in RedBox * Change files * format * clean up Co-authored-by: Andrew Coates (REDMOND) <acoates@microsoft.com> Co-authored-by: Jon Thysell <jthysell@microsoft.com> Co-authored-by: React-Native-Windows Bot <53619745+rnbot@users.noreply.github.com> Co-authored-by: Andrew Coates <30809111+acoates-ms@users.noreply.github.com> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> Co-authored-by: Julio César Rocha <JunielKatarn@users.noreply.github.com> Co-authored-by: Vladimir Morozov <vmoroz@users.noreply.github.com>
WebSocketModule
.Microsoft Reviewers: Open in CodeFlow