diff --git a/feature/auth/login/build.gradle.kts b/feature/auth/login/build.gradle.kts index a2eab37f..a9a9d1bf 100644 --- a/feature/auth/login/build.gradle.kts +++ b/feature/auth/login/build.gradle.kts @@ -45,6 +45,8 @@ android { defaultConfig { minSdk = Configs.minSdk + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { @@ -92,6 +94,5 @@ dependencies { implementation(libs.rebugger) - androidTestImplementation(libs.compose.ui.test.junit4) - debugImplementation(libs.compose.ui.test.manifest) + androidTestImplementation(libs.bundles.compose.ui.test) } diff --git a/feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LoginSignInTests.kt b/feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LoginScreenTest.kt similarity index 95% rename from feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LoginSignInTests.kt rename to feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LoginScreenTest.kt index d6ec3568..79363455 100644 --- a/feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LoginSignInTests.kt +++ b/feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LoginScreenTest.kt @@ -7,7 +7,7 @@ import com.meloda.fast.auth.login.presentation.LoginScreen import org.junit.Rule import org.junit.Test -class LoginSignInTests { +class LoginScreenTest { @get:Rule val composeTestRule = createComposeRule() diff --git a/feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LogoScreenTest.kt b/feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LogoScreenTest.kt new file mode 100644 index 00000000..f0e3deb7 --- /dev/null +++ b/feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LogoScreenTest.kt @@ -0,0 +1,23 @@ +package com.meloda.fast.auth.login + +import androidx.compose.ui.test.assertHasClickAction +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithTag +import com.meloda.fast.auth.login.presentation.LogoScreen +import org.junit.Rule +import org.junit.Test + +class LogoScreenTest { + + @get:Rule + val composeTestRule = createComposeRule() + + @Test + fun goNextButton_isClickable() { + composeTestRule.setContent { + LogoScreen() + } + + composeTestRule.onNodeWithTag(testTag = "go_next_fab").assertHasClickAction() + } +} diff --git a/feature/auth/login/src/main/kotlin/com/meloda/fast/auth/login/presentation/LogoScreen.kt b/feature/auth/login/src/main/kotlin/com/meloda/fast/auth/login/presentation/LogoScreen.kt index 8064d2cf..24e4473f 100644 --- a/feature/auth/login/src/main/kotlin/com/meloda/fast/auth/login/presentation/LogoScreen.kt +++ b/feature/auth/login/src/main/kotlin/com/meloda/fast/auth/login/presentation/LogoScreen.kt @@ -24,6 +24,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.LayoutDirection @@ -121,7 +122,9 @@ fun LogoScreen( FloatingActionButton( onClick = onGoNextButtonClicked, containerColor = MaterialTheme.colorScheme.secondaryContainer, - modifier = Modifier.align(Alignment.BottomCenter) + modifier = Modifier + .align(Alignment.BottomCenter) + .testTag("go_next_fab") ) { Icon( painter = painterResource(id = UiR.drawable.ic_arrow_end), diff --git a/feature/auth/userbanned/build.gradle.kts b/feature/auth/userbanned/build.gradle.kts index 96db9dfd..e95377fb 100644 --- a/feature/auth/userbanned/build.gradle.kts +++ b/feature/auth/userbanned/build.gradle.kts @@ -58,5 +58,5 @@ dependencies { implementation(libs.androidx.navigation.compose) implementation(libs.kotlin.serialization) - debugImplementation(libs.androidx.ui.tooling) + debugImplementation(libs.compose.ui.tooling) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 518be339..d417e1a4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -32,7 +32,6 @@ appcompat = "1.7.0" androidx-navigation = "2.8.0-beta05" serialization = "1.7.1" rebugger = "1.0.0-rc03" -uiTooling = "1.6.8" [libraries] accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" } @@ -94,7 +93,6 @@ koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" } koin-android-test = { module = "io.insert-koin:koin-android-test", version.ref = "koin" } koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin" } koin-androidx-compose-navigation = { module = "io.insert-koin:koin-androidx-compose-navigation", version.ref = "koin" } -androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "uiTooling" } [bundles] compose = [ @@ -114,6 +112,7 @@ koin = [ "koin-androidx-compose", "koin-androidx-compose-navigation" ] +compose-ui-test = ["compose-ui-test-junit4", "compose-ui-test-manifest"] [plugins] com-android-application = { id = "com.android.application", version.ref = "agp" }