webdriverio/__mocks__/puppeteer-core.ts
Christian Bromann 28e64e439f
(devtools): removing devtools automation protocol (#12301)
* (devtools): bye bye

* remove e2e tests

* more cleanuops

* fix unit tests

* fix test command
2024-03-03 15:42:28 -08:00

94 lines
2.6 KiB
TypeScript

import { vi } from 'vitest'
const sendMock = vi.fn()
const listenerMock = vi.fn()
export const KnownDevices = {
'Nexus 6P': {
name: 'Nexus 6P',
userAgent: 'Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36',
viewport: {
width: 412,
height: 732,
deviceScaleFactor: 3.5,
isMobile: true,
hasTouch: true,
isLandscape: false
}
},
'Nexus 6P landscape' : {
name: 'Nexus 6P landscape',
userAgent: 'Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36',
viewport: {
width: 732,
height: 412,
deviceScaleFactor: 3.5,
isMobile: true,
hasTouch: true,
isLandscape: true
}
}
}
class CDPSessionMock {
send = sendMock
on = listenerMock
_connection = {
_transport: {
_ws: { addEventListener: vi.fn() }
}
}
}
const cdpSession = new CDPSessionMock()
class TargetMock {
page = vi.fn().mockImplementation(() => page)
asPage = vi.fn().mockImplementation(async () => page)
createCDPSession = vi.fn().mockImplementation(() => cdpSession)
}
const target = new TargetMock()
class PageMock {
on = vi.fn()
off = vi.fn()
close = vi.fn()
url = vi.fn().mockReturnValue('about:blank')
emulate = vi.fn()
setViewport = vi.fn()
setDefaultTimeout = vi.fn()
target = vi.fn().mockReturnValue(target)
}
const page = new PageMock()
class PageMock2 extends PageMock {
url = vi.fn().mockReturnValue('http://json.org')
}
const page2 = new PageMock2()
class PuppeteerMock {
on = vi.fn()
off = vi.fn()
waitForTarget = vi.fn().mockImplementation(() => target)
getActivePage = vi.fn().mockImplementation(() => page)
pages = vi.fn().mockReturnValue(Promise.resolve([page, page2]))
userAgent = vi.fn().mockImplementation(() => 'MOCK USER AGENT')
wsEndpoint = vi.fn().mockReturnValue('ws://some/path/to/cdp')
}
export class Puppeteer {
static registerCustomQueryHandler = vi.fn()
static unregisterCustomQueryHandler = vi.fn()
}
export default {
CDPSessionMock,
PageMock,
TargetMock,
PuppeteerMock,
sendMock,
listenerMock,
launch: vi.fn().mockImplementation(
() => Promise.resolve(new PuppeteerMock())),
connect: vi.fn().mockImplementation(
() => Promise.resolve(new PuppeteerMock()))
}