Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
fix: make uploadFile throw for non-existent files (#5733)
  • Loading branch information
paullewis committed Apr 24, 2020
1 parent 1a4e260 commit 79e82e5
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
19 changes: 18 additions & 1 deletion src/JSHandle.ts
Expand Up @@ -291,7 +291,24 @@ export class ElementHandle extends JSHandle {
// the cost unnecessarily.
// eslint-disable-next-line @typescript-eslint/no-var-requires
const path = require('path');
const files = filePaths.map(filePath => path.resolve(filePath));
// eslint-disable-next-line @typescript-eslint/no-var-requires
const fs = require('fs');
// eslint-disable-next-line @typescript-eslint/no-var-requires
const {promisify} = require('util');
const access = promisify(fs.access);

// Locate all files and confirm that they exist.
const files = await Promise.all(filePaths.map(async filePath => {
const resolvedPath: string = path.resolve(filePath);
try {
await access(resolvedPath, fs.constants.R_OK);
} catch (error) {
if (error.code === 'ENOENT')
throw new Error(`${filePath} does not exist or is not readable`);
}

return resolvedPath;
}));
const {objectId} = this._remoteObject;
const {node} = await this._client.send('DOM.describeNode', {objectId});
const {backendNodeId} = node;
Expand Down
12 changes: 12 additions & 0 deletions test/input.spec.js
Expand Up @@ -184,6 +184,18 @@ describe('input tests', function() {
]).catch(e => error = e);
expect(error).not.toBe(null);
});
it('should fail for non-existent files', async() => {
const {page} = getTestState();

await page.setContent(`<input type=file>`);
const [chooser] = await Promise.all([
page.waitForFileChooser(),
page.click('input'),
]);
let error = null;
await chooser.accept(['file-does-not-exist.txt']).catch(e => error = e);
expect(error).not.toBe(null);
});
it('should fail when accepting file chooser twice', async() => {
const {page} = getTestState();

Expand Down

0 comments on commit 79e82e5

Please sign in to comment.