From 84a17f27eba7a84e501ec9eedab43f978e61a2b4 Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Wed, 29 Jul 2020 11:45:19 -0700 Subject: [PATCH] fix(rpc): Frame.dblclick is missing notWaitAfter (#3210) --- src/rpc/channels.ts | 1 + src/rpc/protocol.yml | 1 + src/rpc/validator.ts | 1 + test/autowaiting.jest.js | 5 +++++ 4 files changed, 8 insertions(+) diff --git a/src/rpc/channels.ts b/src/rpc/channels.ts index 31cef82065..ecadff6c04 100644 --- a/src/rpc/channels.ts +++ b/src/rpc/channels.ts @@ -924,6 +924,7 @@ export type FrameContentResult = { export type FrameDblclickParams = { selector: string, force?: boolean, + noWaitAfter?: boolean, modifiers?: ('Alt' | 'Control' | 'Meta' | 'Shift')[], position?: { x: number, diff --git a/src/rpc/protocol.yml b/src/rpc/protocol.yml index 8fbd2bdd74..8c8aa65154 100644 --- a/src/rpc/protocol.yml +++ b/src/rpc/protocol.yml @@ -1049,6 +1049,7 @@ Frame: parameters: selector: string force: boolean? + noWaitAfter: boolean? modifiers: type: array? items: diff --git a/src/rpc/validator.ts b/src/rpc/validator.ts index 79f9974e7f..279f109128 100644 --- a/src/rpc/validator.ts +++ b/src/rpc/validator.ts @@ -498,6 +498,7 @@ export function createScheme(tChannel: (name: string) => Validator): Scheme { scheme.FrameDblclickParams = tObject({ selector: tString, force: tOptional(tBoolean), + noWaitAfter: tOptional(tBoolean), modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'Meta', 'Shift']))), position: tOptional(tObject({ x: tNumber, diff --git a/test/autowaiting.jest.js b/test/autowaiting.jest.js index 7294ed556e..58a3a4a080 100644 --- a/test/autowaiting.jest.js +++ b/test/autowaiting.jest.js @@ -154,6 +154,11 @@ describe('Auto waiting', () => { await page.setContent(`empty.html`); await page.click('a', { noWaitAfter: true }); }); + it('should work with dblclick noWaitAfter: true', async({page, server}) => { + server.setRoute('/empty.html', async () => {}); + await page.setContent(`empty.html`); + await page.dblclick('a', { noWaitAfter: true }); + }); it('should work with waitForLoadState(load)', async({page, server}) => { const messages = []; server.setRoute('/empty.html', async (req, res) => {