fix(input): emit change events upon page.setInputFiles (#1028)
This commit is contained in:
parent
8a7728da3d
commit
f2b2d72693
|
|
@ -571,4 +571,5 @@ export const setFileInputFunction = async (element: HTMLInputElement, payloads:
|
||||||
dt.items.add(file);
|
dt.items.add(file);
|
||||||
element.files = dt.files;
|
element.files = dt.files;
|
||||||
element.dispatchEvent(new Event('input', { 'bubbles': true }));
|
element.dispatchEvent(new Event('input', { 'bubbles': true }));
|
||||||
|
element.dispatchEvent(new Event('change', { 'bubbles': true }));
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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);
|
path.relative(process.cwd(), __dirname + '/assets/pptr.png')).catch(e => error = e);
|
||||||
expect(error).not.toBe(null);
|
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 = [];
|
const events = [];
|
||||||
await page.exposeFunction('eventHandled', e => events.push(e));
|
await page.exposeFunction('eventHandled', e => events.push(e));
|
||||||
await page.setContent(`
|
await page.setContent(`
|
||||||
<input id=input type=file></input>
|
<input id=input type=file></input>
|
||||||
<script>
|
<script>
|
||||||
input.addEventListener('input', e => eventHandled({ type: e.type }));
|
input.addEventListener('input', e => eventHandled({ type: e.type }));
|
||||||
|
input.addEventListener('change', e => eventHandled({ type: e.type }));
|
||||||
</script>`);
|
</script>`);
|
||||||
await (await page.$('input')).setInputFiles(FILE_TO_UPLOAD);
|
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[0].type).toBe('input');
|
||||||
|
expect(events[1].type).toBe('change');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue