diff --git a/src/lib/wdi5-bridge.ts b/src/lib/wdi5-bridge.ts index abe95036..ef2d566e 100644 --- a/src/lib/wdi5-bridge.ts +++ b/src/lib/wdi5-bridge.ts @@ -1,5 +1,8 @@ -import { Logger as _Logger } from "./Logger" import { wdi5Config } from "../types/wdi5.types" + +import { addWdi5Commands } from "./wdi5-commands" + +import { Logger as _Logger } from "./Logger" const Logger = _Logger.getInstance() export async function start(config: wdi5Config) { @@ -14,6 +17,8 @@ export async function start(config: wdi5Config) { Logger.info("open url with fallback '#' (this is not causing any issues since its is removed for navigation)") await browser.url("#") } + + addWdi5Commands() } export async function injectUI5() {} diff --git a/src/lib/wdi5-commands.ts b/src/lib/wdi5-commands.ts index d555f16d..99065504 100644 --- a/src/lib/wdi5-commands.ts +++ b/src/lib/wdi5-commands.ts @@ -21,16 +21,18 @@ function _createWdioUI5KeyFromSelector(selector: wdi5Selector): string { return wdi5_ui5_key } -browser.addCommand("asControl", (wdi5Selector: wdi5Selector) => { - const internalKey = wdi5Selector.wdio_ui5_key || _createWdioUI5KeyFromSelector(wdi5Selector) - // either retrieve and cache a UI5 control - // or return a cached version - if (!browser._controls[internalKey] || wdi5Selector.forceSelect /* always retrieve control */) { - Logger.info(`creating internal control with id ${internalKey}`) - const wdi5Control = {} - browser._controls[internalKey] = wdi5Control - } else { - Logger.info(`reusing internal control with id ${internalKey}`) - return browser._controls[internalKey] - } -}) +export function addWdi5Commands() { + browser.addCommand("asControl", async (wdi5Selector: wdi5Selector) => { + const internalKey = wdi5Selector.wdio_ui5_key || _createWdioUI5KeyFromSelector(wdi5Selector) + // either retrieve and cache a UI5 control + // or return a cached version + if (!browser._controls[internalKey] || wdi5Selector.forceSelect /* always retrieve control */) { + Logger.info(`creating internal control with id ${internalKey}`) + const wdi5Control = {} + browser._controls[internalKey] = wdi5Control + } else { + Logger.info(`reusing internal control with id ${internalKey}`) + return browser._controls[internalKey] + } + }) +}