Fix for duplicate entries in mocha.options.globals #3934
Closed
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.
Fixes #3933
Requirements
Description of the Change
Adds a deduping reducer to Mocha.prototype.globals to ensure that no duplicate items are added.
Alternate Designs
Decided against using Array.prototype.includes, opted to use IndexOf instead, to ensure the solution has a broad base of support since mocha runs in a lot of places. The method is already using Array.prototype.filter, so I think it's safe to use Array.prototype.reduce, which I believe has equivalent support.
Why should this be in core?
Slight change to a core method of the Mocha constructor API. Not a candidate for its own package.
Benefits
Mostly just house-cleaning.
Possible Drawbacks
Possible speed impact, but probably negligible.
Applicable issues
#3933
Originated from a discussion with @juergba here: #3914