From 68d51a371eaf3dad44514b8a0a4666ff5592539e Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Thu, 23 Jan 2020 10:36:13 -0800 Subject: [PATCH] test: add a test for usage after disconnecting (#595) --- test/launcher.spec.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/test/launcher.spec.js b/test/launcher.spec.js index 4b8871255d..24d06b9d2b 100644 --- a/test/launcher.spec.js +++ b/test/launcher.spec.js @@ -91,6 +91,18 @@ module.exports.describe = function({testRunner, expect, defaultBrowserOptions, p expect(remote.isConnected()).toBe(false); await browserServer.close(); }); + it('should throw when used after isConnected returns false', async({server}) => { + const browserServer = await playwright.launchServer(defaultBrowserOptions); + const remote = await playwright.connect({...defaultBrowserOptions, browserWSEndpoint: browserServer.wsEndpoint()}); + const page = await remote.defaultContext().newPage(); + await Promise.all([ + browserServer.close(), + new Promise(f => remote.once('disconnected', f)), + ]); + expect(remote.isConnected()).toBe(false); + const error = await page.evaluate('1 + 1').catch(e => e); + expect(error.message).toContain('has been closed'); + }); }); describe('Browser.disconnect', function() { @@ -117,6 +129,15 @@ module.exports.describe = function({testRunner, expect, defaultBrowserOptions, p expect(error.message).toContain('Protocol error'); await browserServer.close(); }); + it('should throw if used after disconnect', async({server}) => { + const browserServer = await playwright.launchServer(defaultBrowserOptions); + const remote = await playwright.connect({...defaultBrowserOptions, browserWSEndpoint: browserServer.wsEndpoint()}); + const page = await remote.defaultContext().newPage(); + await remote.disconnect(); + const error = await page.evaluate('1 + 1').catch(e => e); + expect(error.message).toContain('has been closed'); + await browserServer.close(); + }); }); describe('Browser.close', function() {