Correctly bind browserstackLocal this-context #5187
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.
browserstackLocal.start()
tries to callthis.addArgs()
. However thethis
-binding gets lost when just callingpromisify(this.browserstackLocal)
so thethis
-binding has to berestored manually. See:
https://github.com/browserstack/browserstack-local-nodejs/blob/d238484416e7ea6dfb51aede7d84d09339a8032a/lib/Local.js#L28-L31
Fixes #5186
I am unsure how to add a proper test for this bug since the whole launcher test suite entirely mocks thebrowserstack-local
npm module. This is also why the bug doesn't become visible in the test suite. Any ideas how to test this?Edit: I was able to build a reproduction test case:
Proposed changes
Types of changes
Checklist
Further comments
Reviewers: @webdriverio/project-committers