UNPKG

@serenity-js/webdriverio

Version:

Adapter that integrates @serenity-js/web with the latest stable version of WebdriverIO, enabling Serenity/JS reporting and using the Screenplay Pattern to write web and mobile test scenarios

33 lines (27 loc) 1.32 kB
import { serenity } from '@serenity-js/core'; import { ModuleLoader, Path } from '@serenity-js/core/lib/io/index.js'; import type { Capabilities } from '@wdio/types'; import type { EventEmitter } from 'events'; import type { InitialisesReporters, ProvidesWriteStream } from './adapter/reporter/index.js'; import type { WebdriverIOConfig } from './config/index.js'; /** * WebdriverIO Framework Adapter integrates WebdriverIO with Serenity/JS */ export default { async init( cid: string, config: WebdriverIOConfig, specs: string[], capabilities: Capabilities.RequestedStandaloneCapabilities | Capabilities.RequestedStandaloneCapabilities[] | Capabilities.RequestedMultiremoteCapabilities | Capabilities.RequestedMultiremoteCapabilities[], reporter: EventEmitter & ProvidesWriteStream & InitialisesReporters ): Promise<{ hasTests: () => boolean, run: () => Promise<number> }> { const { WebdriverIOFrameworkAdapterFactory } = await import('./adapter/index.js'); const adapterFactory = new WebdriverIOFrameworkAdapterFactory( serenity, new ModuleLoader(process.cwd()), Path.from(process.cwd()), ); return adapterFactory.init(cid, config, specs, capabilities, reporter); } }; export * from './api.js';