For the longest time I didn't think it was possible to upload a file in an Ember integration test or acceptance test because clicking on a file input opens the browser's native file picker which can't be interacted with since it isn't in the DOM.
However, today I learned of a workaround where triggerEvent
from @ember/test-helpers
can be used to simulate picking a file.
await triggerEvent('input[type="file"]', "change", {
files: [new File(["File contents here"], "file-to-upload.txt")],
});