diff --git a/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/detail/DetailScreen.kt b/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/detail/DetailScreen.kt index c9628180..51fdd8f7 100644 --- a/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/detail/DetailScreen.kt +++ b/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/detail/DetailScreen.kt @@ -9,7 +9,9 @@ import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.layout.onGloballyPositioned -import androidx.compose.ui.platform.* +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter @@ -40,8 +42,12 @@ import me.bytebeats.views.charts.line.render.line.SolidLineDrawer import me.bytebeats.views.charts.line.render.point.EmptyPointDrawer import me.bytebeats.views.charts.simpleChartAnimation -const val TestTagDetailLoading = "TestTagDetailLoading" -const val TestTagDetailCoinPriceChart = "TestTagDetailCoinPriceChart" +const val TestTagDetailLogo = "DetailLogo" +const val TestTagDetailCircularProgress = "DetailCircularProgress" +const val TestTagDetailLineChart = "DetailLineChart" +const val TestTagDetailChartInterval = "DetailChartInterval" +const val TestTagDetailCoinInfo = "DetailCoinInfo" +const val TestTagDetailSellBuyGroup = "DetailSellBuyGroup" @Composable fun DetailScreen( @@ -129,7 +135,8 @@ private fun DetailScreenContent( top.linkTo(appBar.bottom) linkTo(start = parent.start, end = parent.end) } - .padding(top = Dp8), + .padding(top = Dp8) + .testTag(tag = TestTagDetailLogo), painter = rememberAsyncImagePainter(coinDetailUiModel.image), contentDescription = null ) @@ -167,7 +174,7 @@ private fun DetailScreenContent( start.linkTo(parent.start) end.linkTo(parent.end) } - .testTag(TestTagDetailCoinPriceChart), + .testTag(tag = TestTagDetailLineChart), lineChartData = LineChartData( points = coinPrices.map { coinPrice -> val price = stringResource( @@ -192,11 +199,13 @@ private fun DetailScreenContent( // Chart intervals ChartIntervalsButtonGroup( - modifier = Modifier.constrainAs(intervals) { - top.linkTo(graph.bottom, margin = Dp24) - start.linkTo(parent.start) - end.linkTo(parent.end) - }, + modifier = Modifier + .constrainAs(intervals) { + top.linkTo(graph.bottom, margin = Dp24) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + .testTag(tag = TestTagDetailChartInterval), onIntervalChanged = onTimeIntervalsChanged::invoke ) @@ -220,7 +229,7 @@ private fun DetailScreenContent( bottom = parent.bottom ) } - .testTag(TestTagDetailLoading), + .testTag(tag = TestTagDetailCircularProgress), ) } } @@ -229,7 +238,8 @@ private fun DetailScreenContent( Box( modifier = Modifier .fillMaxSize() - .navigationBarsPadding(), + .navigationBarsPadding() + .testTag(tag = TestTagDetailSellBuyGroup), contentAlignment = Alignment.BottomEnd ) { SellBuyGroup( @@ -248,7 +258,11 @@ private fun CoinInfo( sellBuyLayoutHeight: Dp, coinDetailUiModel: CoinDetailUiModel ) { - Column(modifier = modifier.padding(start = Dp16, end = Dp16, bottom = sellBuyLayoutHeight)) { + Column( + modifier = modifier + .padding(start = Dp16, end = Dp16, bottom = sellBuyLayoutHeight) + .testTag(tag = TestTagDetailCoinInfo) + ) { DetailItem( modifier = Modifier, title = stringResource(id = R.string.detail_market_cap_title),