113 lines
3.5 KiB
TypeScript
113 lines
3.5 KiB
TypeScript
import { vi } from 'vitest'
|
|
import {
|
|
sleep as sleepOrig,
|
|
isFunctionAsync as isFnAsync,
|
|
getArgumentType as getArgumentTypeOrig,
|
|
isValidParameter as isValidParameterOrig,
|
|
commandCallStructure as commandCallStructureOrig
|
|
} from '../../packages/wdio-utils/src/utils'
|
|
import webdriverMonadOrig from '../../packages/wdio-utils/src/monad'
|
|
import {
|
|
isW3C as isW3cOrig,
|
|
sessionEnvironmentDetector as sessionEnvDetector,
|
|
capabilitiesEnvironmentDetector as capabilitiesEnvDetector,
|
|
devtoolsEnvironmentDetector as devtoolsEnvDetector
|
|
} from '../../packages/wdio-utils/src/envDetector'
|
|
import { UNICODE_CHARACTERS as UNICODE_CHARACTERS_ORIG } from '../../packages/wdio-utils/src/constants'
|
|
|
|
class DotReporter {
|
|
options: any
|
|
emit: any
|
|
constructor (options: any) {
|
|
this.options = options
|
|
this.emit = vi.fn()
|
|
}
|
|
}
|
|
|
|
class RunnerMock {
|
|
shutdown = vi.fn()
|
|
initialise = vi.fn()
|
|
}
|
|
class FoobarServiceMock {
|
|
beforeSuite () {}
|
|
afterCommand () {}
|
|
}
|
|
|
|
const frameworkMocks = {
|
|
testNoFailures: {
|
|
init () { return this },
|
|
hasTests () { return true },
|
|
run() { return 0 }
|
|
},
|
|
testWithFailures: {
|
|
init () { return this },
|
|
hasTests () { return true },
|
|
run() { return 123 }
|
|
},
|
|
testThrows: {
|
|
init () { return this },
|
|
hasTests () { return true },
|
|
run() { throw new Error('framework testThrows failed') }
|
|
},
|
|
testNoTests: {
|
|
init () { return this },
|
|
hasTests () { return false }
|
|
}
|
|
}
|
|
|
|
const pluginMocks = {
|
|
reporter: {
|
|
dot: DotReporter
|
|
},
|
|
service: {
|
|
foobar: FoobarServiceMock
|
|
},
|
|
runner: {
|
|
local: RunnerMock
|
|
},
|
|
framework: frameworkMocks
|
|
}
|
|
|
|
export const initialisePlugin = vi.fn().mockImplementation(
|
|
async (name: keyof typeof frameworkMocks, type: keyof typeof pluginMocks) => (
|
|
{ default: (pluginMocks[type] as any)[name] }
|
|
)
|
|
)
|
|
export const initialiseWorkerService = vi.fn().mockReturnValue([])
|
|
export const initialiseLauncherService = vi.fn().mockReturnValue({
|
|
launcherServices: [],
|
|
ignoredWorkerServices: []
|
|
})
|
|
export const isValidParameter = isValidParameterOrig
|
|
export const commandCallStructure = commandCallStructureOrig
|
|
export const isFunctionAsync = isFnAsync
|
|
export const safeRequire = vi.fn().mockReturnValue(() => {})
|
|
export const webdriverMonad = webdriverMonadOrig
|
|
export const getArgumentType = getArgumentTypeOrig
|
|
|
|
/**
|
|
* shim
|
|
*/
|
|
export const executeSync = vi.fn()
|
|
export const executeAsync = vi.fn()
|
|
export const wrapCommand = (_: any, origFn: any) => origFn
|
|
export const runTestInFiberContext = vi.fn().mockReturnValue(vi.fn())
|
|
export const executeHooksWithArgs = vi.fn()
|
|
export const runFnInFiberContext = vi.fn().mockImplementation((fn) => {
|
|
return function (this: unknown, ...args: any[]) {
|
|
return Promise.resolve(fn.apply(this, args))
|
|
}
|
|
})
|
|
export const setWdioSyncSupport = (value: boolean) => { hasWdioSyncSupport = value }
|
|
export let hasWdioSyncSupport = false
|
|
export const testFnWrapper = vi.fn()
|
|
export const isW3C = isW3cOrig
|
|
export const sessionEnvironmentDetector = vi.fn().mockImplementation(
|
|
// @ts-ignore
|
|
(...args) => sessionEnvDetector(...args))
|
|
export const capabilitiesEnvironmentDetector = capabilitiesEnvDetector
|
|
export const devtoolsEnvironmentDetector = devtoolsEnvDetector
|
|
export const transformCommandLogResult = vi.fn().mockImplementation((data) => data)
|
|
export const canAccess = vi.fn()
|
|
export const sleep = vi.fn().mockImplementation(sleepOrig)
|
|
export const UNICODE_CHARACTERS = UNICODE_CHARACTERS_ORIG
|