* (devtools): bye bye * remove e2e tests * more cleanuops * fix unit tests * fix test command
94 lines
2.6 KiB
TypeScript
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()))
|
|
}
|