Skip to content

AppiumTransportConfig

Configuration for the Appium transport.

Import:

import type { AppiumTransportConfig } from 'obsidian-integration-testing';

Signature:

export interface AppiumTransportConfig

Properties

PropertyTypeDescription
appId?stringApp package (Android) or bundle ID (iOS). Defaults to 'md.obsidian'.
appStartTimeoutInMilliseconds?numberTimeout in milliseconds for Obsidian Mobile to get as far as globalThis.app existing after the vault is (re)opened, before the tighter layoutReadyTimeoutInMilliseconds clock starts.
browserBrowserThe Appium browser/driver instance. Created by the consumer via e.g. WebDriverIO's remote().
deviceIdstringThe device UDID (e.g. 'emulator-5554'). Used for adb commands when pushing files to the device.
isSessionOwner?booleanWhether this transport owns the Appium session and should delete it on AppiumTransport.dispose.

true for sessions created via remote() (global setup). false for sessions reattached via attach() (test workers).
layoutReadyTimeoutInMilliseconds?numberTimeout in milliseconds for waiting for app.workspace.layoutReady, counted from the moment appStartTimeoutInMilliseconds is satisfied — not from the reload, so a cold app start is not charged against it.
platform'android' | 'ios'Target platform. Determines WebView context naming and device file paths.
scriptTimeoutInMilliseconds?numberThe per-script cap, in milliseconds, this session was given as its W3C timeouts.script capability.

Carried only so a script timeout can be reported with the number that produced it; the capability itself is set when the session is created.
shouldSweepLeftovers?booleanWhether registering a vault also prunes the **other** temp-vault-* registrations earlier runs left in Obsidian Mobile's localStorage.

The device-side directories are swept before the app launches (see the factory); this removes their now-dangling registry entries, which are what Obsidian actually enumerates at startup. Unregistering this run's own vault is unaffected — that always happens.
vaultBasePath?stringBase path on the device where Obsidian stores vaults.

Defaults: - Android: /sdcard/Documents/ - iOS: @md.obsidian:documents/
webviewTimeoutInMilliseconds?numberTimeout in milliseconds for waiting for the WebView context to become available.