1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.upload = upload;
|
7 |
|
8 | var _dom = require("@testing-library/dom");
|
9 |
|
10 | var _click = require("./click");
|
11 |
|
12 | var _blur = require("./blur");
|
13 |
|
14 | var _focus = require("./focus");
|
15 |
|
16 | function upload(element, fileOrFiles, init) {
|
17 | if (element.disabled) return;
|
18 | let files;
|
19 | let input = element;
|
20 | (0, _click.click)(element, init);
|
21 |
|
22 | if (element.tagName === 'LABEL') {
|
23 | files = element.control.multiple ? fileOrFiles : [fileOrFiles];
|
24 | input = element.control;
|
25 | } else {
|
26 | files = element.multiple ? fileOrFiles : [fileOrFiles];
|
27 | }
|
28 |
|
29 |
|
30 | (0, _blur.blur)(element, init);
|
31 |
|
32 | (0, _focus.focus)(element, init);
|
33 |
|
34 |
|
35 |
|
36 | const inputFiles = {
|
37 | length: files.length,
|
38 | item: index => files[index],
|
39 | ...files
|
40 | };
|
41 | (0, _dom.fireEvent)(input, (0, _dom.createEvent)('input', input, {
|
42 | target: {
|
43 | files: inputFiles
|
44 | },
|
45 | bubbles: true,
|
46 | cancelable: false,
|
47 | composed: true,
|
48 | ...init
|
49 | }));
|
50 |
|
51 | _dom.fireEvent.change(input, {
|
52 | target: {
|
53 | files: inputFiles
|
54 | },
|
55 | ...init
|
56 | });
|
57 | } |
\ | No newline at end of file |