diff --git a/test/browser/manager.ts b/test/browser/manager.ts index 7fe68ace..f14fd118 100644 --- a/test/browser/manager.ts +++ b/test/browser/manager.ts @@ -1,9 +1,16 @@ +import debug from 'debug' +import { Browser } from '../../src/browser/browser' import { ChromeBrowser } from '../../src/browser/browsers/chrome' import { ChromeCdpBrowser } from '../../src/browser/browsers/chrome-cdp' import { FirefoxBrowser } from '../../src/browser/browsers/firefox' import * as browserFinder from '../../src/browser/finder' import { BrowserManager } from '../../src/browser/manager' +jest.mock('debug', () => { + const debugMock = jest.fn() + return () => debugMock +}) + afterEach(() => { jest.resetAllMocks() jest.restoreAllMocks() @@ -25,6 +32,25 @@ describe('Browser manager', () => { expect(manager._preferredProtocol).toBe('webDriverBiDi') expect(manager.timeout).toBe(12345) }) + + it('cannot update the browser protocol after the browser is created', async () => { + const manager = new BrowserManager({ protocol: 'webDriverBiDi' }) + const debugMock = debug('test') + + const browser = await manager.browserForConversion() + expect(browser).toBeInstanceOf(Browser) + expect(browser.protocol).toBe('webDriverBiDi') + + manager.configure({ protocol: 'cdp' }) + expect(debugMock).toHaveBeenCalledWith( + expect.stringContaining( + 'Changing protocol after created browser for conversion is not supported' + ) + ) + expect((await manager.browserForConversion()).protocol).toBe( + 'webDriverBiDi' + ) + }) }) describe('#browserForConversion', () => {