From 022840fd3ae518b28960d47136a8daca70188d48 Mon Sep 17 00:00:00 2001 From: Tarek Belkahia Date: Tue, 3 Sep 2024 11:36:07 +0100 Subject: [PATCH] Make MaestroCommand toString more concise (#2011) --- .../java/maestro/orchestra/MaestroCommand.kt | 6 +++++ .../maestro/orchestra/MaestroCommandTest.kt | 25 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/maestro-orchestra-models/src/main/java/maestro/orchestra/MaestroCommand.kt b/maestro-orchestra-models/src/main/java/maestro/orchestra/MaestroCommand.kt index 41715213a3..bb7090f5b3 100644 --- a/maestro-orchestra-models/src/main/java/maestro/orchestra/MaestroCommand.kt +++ b/maestro-orchestra-models/src/main/java/maestro/orchestra/MaestroCommand.kt @@ -163,4 +163,10 @@ data class MaestroCommand( fun description(): String { return asCommand()?.description() ?: "No op" } + + override fun toString(): String = + asCommand()?.let { command -> + val argName = command::class.simpleName?.replaceFirstChar(Char::lowercaseChar) ?: "command" + "MaestroCommand($argName=$command)" + } ?: "MaestroCommand()" } diff --git a/maestro-orchestra/src/test/java/maestro/orchestra/MaestroCommandTest.kt b/maestro-orchestra/src/test/java/maestro/orchestra/MaestroCommandTest.kt index 1d78a59350..dbd3b87014 100644 --- a/maestro-orchestra/src/test/java/maestro/orchestra/MaestroCommandTest.kt +++ b/maestro-orchestra/src/test/java/maestro/orchestra/MaestroCommandTest.kt @@ -55,4 +55,29 @@ internal class MaestroCommandTest { assertThat(description) .isEqualTo("Set location with negative coordinates") } + + @Test + fun `toString (no commands)`() { + // given + val maestroCommand = MaestroCommand(null) + + // when + val toString = maestroCommand.toString() + + // then + assertThat(toString).isEqualTo("MaestroCommand()") + } + + @Test + fun `toString (at least one command)`() { + // given + val command = BackPressCommand() + val maestroCommand = MaestroCommand(command) + + // when + val toString = maestroCommand.toString() + + // then + assertThat(toString).isEqualTo("MaestroCommand(backPressCommand=$command)") + } }