feat(upload)!: replace element properties #794
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.
BREAKING CHANGE:
init
parameter has been removed fromuserEvent.upload
.What:
<input type="file"/>
when changing it peruserEvent.upload
.init
parameter.Why:
The previous implementation changed the
element.files
properties throughfireEvent
andevent.target.files
.That assigns the given property to the element.
As a result the element's
value
,type
andfiles
properties don't interact with each other any more like they do in the browser.The
init
parameter has been removed forMouseEvent
and there is no good reason to keep it here. See #784How:
We can not programmatically create a
FileList
.The browser creates these from trusted events and both the browser and Jsdom prevent constructing it and also prevent calling the FileList prototype methods on an object which was not created by their internal mechanism.
They also prevent setting
element.files
to a value that is not a realFileList
.This PR therefore introduces a utility that, given one of our
FileList
stubs, replaces the relevant property descriptors on the element and mimicks the browser behavior.Checklist: