Skip to main content
Glama
MockXCTestInstaller.kt1.5 kB
package maestro.ios import com.google.common.truth.Truth.assertThat import xcuitest.XCTestClient import xcuitest.installer.XCTestInstaller class MockXCTestInstaller( private val simulator: Simulator, ) : XCTestInstaller { private var attempts = 0 override fun start(): XCTestClient { attempts++ for (i in 0..simulator.installationRetryCount) { assertThat(simulator.runningApps()).doesNotContain("dev.mobile.maestro-driver-iosUITests.xctrunner") } simulator.installXCTestDriver() return XCTestClient("localhost", 22807) } override fun uninstall(): Boolean { simulator.uninstallXCTestDriver() return true } override fun isChannelAlive(): Boolean { return simulator.isXCTestRunnerAlive() } override fun close() { simulator.uninstallXCTestDriver() } fun assertInstallationRetries(expectedRetries: Int) { assertThat(attempts).isEqualTo(expectedRetries) } data class Simulator( val installationRetryCount: Int = 0, val shouldInstall: Boolean = true ) { private val runningApps = mutableListOf<String>() fun runningApps() = runningApps fun isXCTestRunnerAlive() = runningApps.contains("dev.mobile.maestro-driver-iosUITests.xctrunner") fun uninstallXCTestDriver() = runningApps.clear() fun installXCTestDriver() = runningApps.add("dev.mobile.maestro-driver-iosUITests.xctrunner") } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mobile-dev-inc/Maestro'

If you have feedback or need assistance with the MCP directory API, please join our Discord server