Skip to content

Commit

Permalink
fix(input): emit change events upon page.setInputFiles (#1028)
Browse files Browse the repository at this point in the history
  • Loading branch information
pavelfeldman authored Feb 18, 2020
1 parent 8a7728d commit f2b2d72
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/dom.ts
Original file line number Diff line number Diff line change
Expand Up @@ -571,4 +571,5 @@ export const setFileInputFunction = async (element: HTMLInputElement, payloads:
dt.items.add(file);
element.files = dt.files;
element.dispatchEvent(new Event('input', { 'bubbles': true }));
element.dispatchEvent(new Event('change', { 'bubbles': true }));
};
6 changes: 4 additions & 2 deletions test/input.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -193,17 +193,19 @@ module.exports.describe = function({testRunner, expect, playwright, FFOX, CHROMI
path.relative(process.cwd(), __dirname + '/assets/pptr.png')).catch(e => error = e);
expect(error).not.toBe(null);
});
it('should emit input change event', async({page, server}) => {
it('should emit input and change events', async({page, server}) => {
const events = [];
await page.exposeFunction('eventHandled', e => events.push(e));
await page.setContent(`
<input id=input type=file></input>
<script>
input.addEventListener('input', e => eventHandled({ type: e.type }));
input.addEventListener('change', e => eventHandled({ type: e.type }));
</script>`);
await (await page.$('input')).setInputFiles(FILE_TO_UPLOAD);
expect(events.length).toBe(1);
expect(events.length).toBe(2);
expect(events[0].type).toBe('input');
expect(events[1].type).toBe('change');
});
});

Expand Down

0 comments on commit f2b2d72

Please sign in to comment.