Skip to content

Commit

Permalink
Merge pull request #1541 from joreilly/maestro
Browse files Browse the repository at this point in the history
Initial Maestro UI Testing
  • Loading branch information
joreilly authored Mar 8, 2025
2 parents a09ed13 + 55f585d commit c31f524
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 2 deletions.
19 changes: 19 additions & 0 deletions maestro/Confetti.flow
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
appId: dev.johnoreilly.confetti
---
- launchApp:
clearState: true
- scrollUntilVisible:
element:
id: androidmakers2024
- tapOn:
id: androidmakers2024
- assertVisible: "AndroidMakers by droidcon 2024"
- scrollUntilVisible:
element:
text: "Kotlin Multiplatform.*"
- tapOn: "Kotlin Multiplatform.*"
- assertVisible: "Kotlin Multiplatform at Stable and Beyond"
- tapOn: "Back"

Swift-friendly API Generator for Kotlin Multiplatform
When Swift calls Kotlin through Objective-C, critical Kotlin language features are dropped. SKIE bridges modern types and coroutines in the best way: with real Swift.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
Expand Down Expand Up @@ -104,6 +105,7 @@ fun ConferenceCard(
navigateToConference(conference)
})
.fillMaxWidth()
.testTag(conference.id)
) {
Column(Modifier.fillMaxWidth().padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,23 @@ package dev.johnoreilly.confetti.ui
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBackIosNew
import androidx.compose.runtime.ExperimentalComposeApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.AccessibilitySyncOptions
import androidx.compose.ui.window.ComposeUIViewController
import com.arkivanov.decompose.ExperimentalDecomposeApi
import com.arkivanov.decompose.extensions.compose.stack.animation.predictiveback.PredictiveBackGestureIcon
import com.arkivanov.decompose.extensions.compose.stack.animation.predictiveback.PredictiveBackGestureOverlay
import com.arkivanov.essenty.backhandler.BackDispatcher
import dev.johnoreilly.confetti.decompose.DefaultAppComponent

@OptIn(ExperimentalDecomposeApi::class)
@OptIn(ExperimentalDecomposeApi::class, ExperimentalComposeApi::class)
fun MainViewController(
component: DefaultAppComponent,
backDispatcher: BackDispatcher,
) = ComposeUIViewController {
) = ComposeUIViewController(
configure = { accessibilitySyncOptions = AccessibilitySyncOptions.Always(null) }
) {
PredictiveBackGestureOverlay(
backDispatcher = backDispatcher,
backIcon = { progress, _ ->
Expand Down

0 comments on commit c31f524

Please sign in to comment.