diff --git a/test/input.spec.js b/test/input.spec.js
index 94757afd2f..5b5878f50b 100644
--- a/test/input.spec.js
+++ b/test/input.spec.js
@@ -156,30 +156,39 @@ module.exports.describe = function({testRunner, expect, playwright, FFOX, CHROMI
});
it('should be able to read selected file', async({page, server}) => {
await page.setContent(``);
- page.waitForEvent('filechooser').then(({element}) => element.setInputFiles(FILE_TO_UPLOAD));
- expect(await page.$eval('input', async picker => {
- picker.click();
- await new Promise(x => picker.oninput = x);
- const reader = new FileReader();
- const promise = new Promise(fulfill => reader.onload = fulfill);
- reader.readAsText(picker.files[0]);
- return promise.then(() => reader.result);
- })).toBe('contents of the file');
+ const [, content] = await Promise.all([
+ page.waitForEvent('filechooser').then(({element}) => element.setInputFiles(FILE_TO_UPLOAD)),
+ page.$eval('input', async picker => {
+ picker.click();
+ await new Promise(x => picker.oninput = x);
+ const reader = new FileReader();
+ const promise = new Promise(fulfill => reader.onload = fulfill);
+ reader.readAsText(picker.files[0]);
+ return promise.then(() => reader.result);
+ }),
+ ]);
+ expect(content).toBe('contents of the file');
});
it('should be able to reset selected files with empty file list', async({page, server}) => {
await page.setContent(``);
- page.waitForEvent('filechooser').then(({element}) => element.setInputFiles(FILE_TO_UPLOAD));
- expect(await page.$eval('input', async picker => {
- picker.click();
- await new Promise(x => picker.oninput = x);
- return picker.files.length;
- })).toBe(1);
- page.waitForEvent('filechooser').then(({element}) => element.setInputFiles([]));
- expect(await page.$eval('input', async picker => {
- picker.click();
- await new Promise(x => picker.oninput = x);
- return picker.files.length;
- })).toBe(0);
+ const [, fileLength1] = await Promise.all([
+ page.waitForEvent('filechooser').then(({element}) => element.setInputFiles(FILE_TO_UPLOAD)),
+ page.$eval('input', async picker => {
+ picker.click();
+ await new Promise(x => picker.oninput = x);
+ return picker.files.length;
+ }),
+ ]);
+ expect(fileLength1).toBe(1);
+ const [, fileLength2] = await Promise.all([
+ page.waitForEvent('filechooser').then(({element}) => element.setInputFiles([])),
+ page.$eval('input', async picker => {
+ picker.click();
+ await new Promise(x => picker.oninput = x);
+ return picker.files.length;
+ }),
+ ]);
+ expect(fileLength2).toBe(0);
});
it('should not accept multiple files for single-file input', async({page, server}) => {
await page.setContent(``);