From 8835aa2cb2c2e107596f7f90dd5ac2873733f2dd Mon Sep 17 00:00:00 2001 From: Mahendran Date: Thu, 31 Aug 2023 13:52:48 +0530 Subject: [PATCH 1/6] Compilation issue fixed in TUIAttachmentUploadScreenShotTest --- .../TUIAttachmentUploadScreenShotTest.kt | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIAttachmentUploadScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIAttachmentUploadScreenShotTest.kt index 6dbf224e..e7b5e12d 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIAttachmentUploadScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIAttachmentUploadScreenShotTest.kt @@ -2,6 +2,8 @@ package com.tarkalabs.uicomponents.screenshots import android.graphics.BitmapFactory import androidx.compose.ui.graphics.asImageBitmap +import com.tarkalabs.tarkaicons.MoreHorizontal24 +import com.tarkalabs.tarkaicons.TarkaIcons import com.tarkalabs.uicomponents.components.TUIAttachmentUpload import com.tarkalabs.uicomponents.components.TUIAttachmentUpload.AttachmentState import com.tarkalabs.uicomponents.components.TUIThumbnailType.Document @@ -41,9 +43,10 @@ class TUIAttachmentUploadScreenShotTest( ) { TUIAttachmentUpload(type = Image(bitmap.asImageBitmap()), attachmentName = "document.jpg", - onMenuClick = {}, + onTrailingIconClick = {}, onAttachmentClick = { }, - showLeadingIcon = showLeadingIcon + showLeadingIcon = showLeadingIcon, + trailingIcon = TarkaIcons.Filled.MoreHorizontal24 ) } } @@ -56,10 +59,11 @@ class TUIAttachmentUploadScreenShotTest( ) { TUIAttachmentUpload(type = Image(bitmap.asImageBitmap()), attachmentName = "document.jpg", - onMenuClick = {}, + onTrailingIconClick = {}, onAttachmentClick = { }, showLeadingIcon = showLeadingIcon, - state = AttachmentState.UpLoading(51) + state = AttachmentState.UpLoading(51), + trailingIcon = TarkaIcons.Filled.MoreHorizontal24 ) } } @@ -72,10 +76,11 @@ class TUIAttachmentUploadScreenShotTest( ) { TUIAttachmentUpload(type = Image(bitmap.asImageBitmap()), attachmentName = "document.jpg", - onMenuClick = {}, + onTrailingIconClick = {}, onAttachmentClick = { }, showLeadingIcon = showLeadingIcon, - state = AttachmentState.UpLoadSuccessful + state = AttachmentState.UpLoadSuccessful, + trailingIcon = TarkaIcons.Filled.MoreHorizontal24 ) } } @@ -87,9 +92,10 @@ class TUIAttachmentUploadScreenShotTest( ) { TUIAttachmentUpload(type = Document, attachmentName = "document.jpg", - onMenuClick = {}, + onTrailingIconClick = {}, onAttachmentClick = { }, - showLeadingIcon = showLeadingIcon + showLeadingIcon = showLeadingIcon, + trailingIcon = TarkaIcons.Filled.MoreHorizontal24 ) } } From 224c234048d5184b690ccb7f1efef453b4ac8c6f Mon Sep 17 00:00:00 2001 From: Mahendran Date: Thu, 31 Aug 2023 14:44:57 +0530 Subject: [PATCH 2/6] 1) TUICardHeader component Created 2) TUICardHeaderScreenShotTest + TUICardHeaderTest included. 3) default modifier Passed in TUIIconButton --- tarkaui/build.gradle.kts | 2 +- ..._false_tagShownfalse_trailIcShownfalse.png | Bin 0 -> 5968 bytes ...e_false_tagShownfalse_trailIcShowntrue.png | Bin 0 -> 6985 bytes ...e_false_tagShowntrue_trailIcShownfalse.png | Bin 0 -> 9127 bytes ...me_false_tagShowntrue_trailIcShowntrue.png | Bin 0 -> 9622 bytes ...e_true_tagShownfalse_trailIcShownfalse.png | Bin 0 -> 5788 bytes ...me_true_tagShownfalse_trailIcShowntrue.png | Bin 0 -> 6847 bytes ...me_true_tagShowntrue_trailIcShownfalse.png | Bin 0 -> 8926 bytes ...eme_true_tagShowntrue_trailIcShowntrue.png | Bin 0 -> 9475 bytes .../uicomponents/TUICardHeaderTest.kt | 49 ++++++++ .../TUICardHeaderScreenShotTest.kt | 40 +++++++ .../uicomponents/components/TUICardHeader.kt | 109 ++++++++++++++++++ .../components/base/TUIIconButton.kt | 7 +- 13 files changed, 203 insertions(+), 4 deletions(-) create mode 100644 tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_false_tagShownfalse_trailIcShownfalse.png create mode 100644 tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_false_tagShownfalse_trailIcShowntrue.png create mode 100644 tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_false_tagShowntrue_trailIcShownfalse.png create mode 100644 tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_false_tagShowntrue_trailIcShowntrue.png create mode 100644 tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_true_tagShownfalse_trailIcShownfalse.png create mode 100644 tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_true_tagShownfalse_trailIcShowntrue.png create mode 100644 tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_true_tagShowntrue_trailIcShownfalse.png create mode 100644 tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_true_tagShowntrue_trailIcShowntrue.png create mode 100644 tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUICardHeaderTest.kt create mode 100644 tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUICardHeaderScreenShotTest.kt create mode 100644 tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index aa8f1011..3b325992 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -66,7 +66,7 @@ publishing { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() - version = "0.38-alpha" + version = "0.39-alpha" artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") } } diff --git a/tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_false_tagShownfalse_trailIcShownfalse.png b/tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_false_tagShownfalse_trailIcShownfalse.png new file mode 100644 index 0000000000000000000000000000000000000000..d4b7c3fd23fa9e4f5c7f050c275af7886d306c03 GIT binary patch literal 5968 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 T-={!V9Hg$S1u0Q9fAjwUPkTmQ literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_false_tagShownfalse_trailIcShowntrue.png b/tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_false_tagShownfalse_trailIcShowntrue.png new file mode 100644 index 0000000000000000000000000000000000000000..1d38a9fdaa023c7ed7f253c1cbb6498399775ffa GIT binary patch literal 6985 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 literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_false_tagShowntrue_trailIcShownfalse.png b/tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_false_tagShowntrue_trailIcShownfalse.png new file mode 100644 index 0000000000000000000000000000000000000000..6fd3588ca92116090743cb844b17296cf9e49e0d GIT binary patch literal 9127 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 literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_true_tagShowntrue_trailIcShowntrue.png b/tarkaui/screenshots/debug/screenshots-default/com.tarkalabs.uicomponents.screenshots.TUICardHeaderScreenShotTest_darkTheme_true_tagShowntrue_trailIcShowntrue.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8ae955cd8e2fc5d93b4512e54fbfe437d86d64 GIT binary patch literal 9475 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 V!+)W2a_wpB)m5~Wi=MoC`yXm44r%}Z literal 0 HcmV?d00001 diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUICardHeaderTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUICardHeaderTest.kt new file mode 100644 index 00000000..c709d3bf --- /dev/null +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUICardHeaderTest.kt @@ -0,0 +1,49 @@ +package com.tarkalabs.uicomponents + +import androidx.compose.ui.test.assertTextEquals +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithContentDescription +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.performClick +import com.tarkalabs.tarkaicons.MoreHorizontal24 +import com.tarkalabs.tarkaicons.TarkaIcons +import com.tarkalabs.uicomponents.components.TUICardHeader +import com.tarkalabs.uicomponents.components.TUICardHeaderTags +import org.junit.Rule +import org.junit.Test +import org.mockito.kotlin.mock +import org.mockito.kotlin.verify + +class TUICardHeaderTest { + + @get:Rule + val composeTestRule = createComposeRule() + + @Test + fun is_passed_things_shown() { + + val onTrailIconClick: () -> Unit = mock() + val title = "Test Title" + val tagTitle = "Test Tag Title" + val trailingIcon = TarkaIcons.Regular.MoreHorizontal24 + + val testTags = TUICardHeaderTags() + composeTestRule.setContent { + TUICardHeader( + title = title, + tagTitle = tagTitle, + trailingIcon = trailingIcon, + onTrailingIconClick = onTrailIconClick, + tags = testTags + ) + } + + composeTestRule.onNodeWithTag(testTags.titleTag).assertTextEquals(title) + composeTestRule.onNodeWithTag(testTags.tagTitleTag).assertTextEquals(tagTitle) + + composeTestRule.onNodeWithContentDescription(trailingIcon.contentDescription).assertExists() + + composeTestRule.onNodeWithTag(testTags.trailingIconTag).performClick() + verify(onTrailIconClick).invoke() + } +} \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUICardHeaderScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUICardHeaderScreenShotTest.kt new file mode 100644 index 00000000..4a33a2d4 --- /dev/null +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUICardHeaderScreenShotTest.kt @@ -0,0 +1,40 @@ +package com.tarkalabs.uicomponents.screenshots + +import com.tarkalabs.tarkaicons.MoreHorizontal24 +import com.tarkalabs.tarkaicons.TarkaIcon +import com.tarkalabs.tarkaicons.TarkaIcons +import com.tarkalabs.uicomponents.components.TUICardHeader +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.Parameterized + +@RunWith(Parameterized::class) +class TUICardHeaderScreenShotTest( + private val darkTheme: Boolean, + private val tagTitle: String?, + private val trailIcon: TarkaIcon?, + private val testName: String, +) : ComposeScreenshotComparator() { + + companion object { + @JvmStatic + @Parameterized.Parameters + fun data(): Collection> { + return mutableListOf>().apply { + for (darkTheme in listOf(true, false)) { + for (tagTitle in listOf(null, "Tag1")) { + for (trailIcon in listOf(TarkaIcons.Filled.MoreHorizontal24, null)) { + val testName = + "darkTheme_${darkTheme}_tagShown${if (tagTitle == null) "false" else "true"}_trailIcShown${if (trailIcon == null) "false" else "true"}" + add(arrayOf(darkTheme, tagTitle, trailIcon, testName)) + } + } + } + } + } + } + + @Test fun tui_card_header_test() = compareScreenshotFor(darkTheme, testName) { + TUICardHeader(title = "Pump Repair Pump", tagTitle = tagTitle, trailingIcon = trailIcon) {} + } +} \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt new file mode 100644 index 00000000..083585b1 --- /dev/null +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt @@ -0,0 +1,109 @@ +package com.tarkalabs.uicomponents.components + +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.testTag +import androidx.compose.ui.tooling.preview.Preview +import com.tarkalabs.tarkaicons.MoreHorizontal24 +import com.tarkalabs.tarkaicons.TarkaIcon +import com.tarkalabs.tarkaicons.TarkaIcons +import com.tarkalabs.uicomponents.components.TagSize.S +import com.tarkalabs.uicomponents.components.base.IconButtonStyle.GHOST +import com.tarkalabs.uicomponents.components.base.TUIIconButton +import com.tarkalabs.uicomponents.theme.TUITheme + +/** + * This Component is used as a Header part in the Card Typed Detail Views. + * + * @param title - Title of the Header. + * @param tagTitle - optional Title of the TUITag. + * @param trailingIcon - optional end Icon. + * + * TUICardHeader( + * title = "Pump Repair Pump", + * tagTitle = "Tag1", + * trailingIcon = TarkaIcons.Filled.MoreHorizontal24.copy(tintColor = TUITheme.colors.secondary) + * ) {} + * + * **/ +@Composable +fun TUICardHeader( + modifier: Modifier = Modifier, + title: String, + tagTitle: String? = null, + trailingIcon: TarkaIcon? = null, + tags: TUICardHeaderTags = TUICardHeaderTags(), + onTrailingIconClick: () -> Unit, +) { + + Row( + modifier = modifier + .testTag(tags.parentTag) + .fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically + ) { + + HorizontalSpacer(space = 16) + + Column { + tagTitle?.let { + TUITag( + modifier = Modifier.testTag(tags.tagTitleTag), + title = tagTitle, + tagSize = S, + tagType = TagType.LOW + ) {} + VerticalSpacer(space = 8) + } + + Text( + modifier = Modifier.testTag(tags.titleTag), + text = title, + color = TUITheme.colors.onSurface, + style = TUITheme.typography.heading6 + ) + + } + + HorizontalSpacer(space = 8) + + trailingIcon?.let { + //used to put the trailing icon to end of the row + Spacer(modifier = Modifier.weight(1f)) + TUIIconButton( + modifier = Modifier + .testTag(tags.trailingIconTag), + icon = trailingIcon, + iconButtonStyle = GHOST, + onIconClick = { onTrailingIconClick.invoke() } + ) + } + + HorizontalSpacer(space = 16) + + } +} + +data class TUICardHeaderTags( + val parentTag: String = "parentTag", + val tagTitleTag: String = "tagTitleTag", + val titleTag: String = "titleTag", + val trailingIconTag: String = "trailingIconTag", +) + +@Preview +@Composable +fun TUICardHeaderPreview() { + TUICardHeader( + title = "Pump Repair Pump", + tagTitle = "Tag1", + trailingIcon = TarkaIcons.Filled.MoreHorizontal24.copy(tintColor = TUITheme.colors.secondary) + ) {} +} \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/base/TUIIconButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/base/TUIIconButton.kt index 651123f5..fe11226d 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/base/TUIIconButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/base/TUIIconButton.kt @@ -81,6 +81,7 @@ enum class IconButtonStyle { * */ @Composable fun TUIIconButton( + modifier: Modifier = Modifier, icon: TarkaIcon, buttonSize: IconButtonSize = L, iconButtonStyle: IconButtonStyle = IconButtonStyle.defaultStyle, @@ -90,7 +91,7 @@ enum class IconButtonStyle { ) { var iconButtonColors: IconButtonColors = IconButtonDefaults.iconButtonColors() - var modifier = Modifier + var parentModifier = modifier .height(buttonSize.size) .width(buttonSize.size) .clip(CircleShape) @@ -128,7 +129,7 @@ enum class IconButtonStyle { contentColor = contentColor, disabledContentColor = TUITheme.colors.onSurface.copy(alpha = 0.38f), ) - modifier = Modifier + parentModifier = Modifier .border( width = 0.5.dp, color = TUITheme.colors.utilityOutline, shape = CircleShape ) @@ -138,7 +139,7 @@ enum class IconButtonStyle { IconButton( onClick = onIconClick, - modifier = modifier.testTag(tags.parentTag), + modifier = parentModifier.testTag(tags.parentTag), colors = iconButtonColors, enabled = enabled ) { From 3528a95622f1a0476293ad335ddfefdf7e6a1bdf Mon Sep 17 00:00:00 2001 From: Mahendran Date: Fri, 1 Sep 2023 17:18:34 +0530 Subject: [PATCH 3/6] TestTag values renamed properly in TUICardHeader --- .../tarkalabs/uicomponents/components/TUICardHeader.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt index 083585b1..6edd5dad 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt @@ -1,6 +1,5 @@ package com.tarkalabs.uicomponents.components -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -92,10 +91,10 @@ fun TUICardHeader( } data class TUICardHeaderTags( - val parentTag: String = "parentTag", - val tagTitleTag: String = "tagTitleTag", - val titleTag: String = "titleTag", - val trailingIconTag: String = "trailingIconTag", + val parentTag: String = "TUICardHeader", + val tagTitleTag: String = "TUICardHeader_tagTitleTag", + val titleTag: String = "TUICardHeader_titleTag", + val trailingIconTag: String = "TUICardHeader_trailingIconTag", ) @Preview From 3a82d792df685bec779f49da0483bb5002e84f38 Mon Sep 17 00:00:00 2001 From: Mahendran Date: Mon, 4 Sep 2023 18:17:18 +0530 Subject: [PATCH 4/6] self explanatory comment removed --- .../java/com/tarkalabs/uicomponents/components/TUICardHeader.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt index 6edd5dad..ddde0be9 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt @@ -74,7 +74,6 @@ fun TUICardHeader( HorizontalSpacer(space = 8) trailingIcon?.let { - //used to put the trailing icon to end of the row Spacer(modifier = Modifier.weight(1f)) TUIIconButton( modifier = Modifier From f6248c6aefad4bce1799e2698e6ec9e2e8ea1da2 Mon Sep 17 00:00:00 2001 From: Mahendran Date: Tue, 5 Sep 2023 12:34:40 +0530 Subject: [PATCH 5/6] Tag For Text component is removed due to we can use onNodeWithText without a need of tag. --- .../java/com/tarkalabs/uicomponents/TUICardHeaderTest.kt | 5 ++++- .../com/tarkalabs/uicomponents/TUIRadioButtonRowTest.kt | 6 +++--- .../com/tarkalabs/uicomponents/components/TUICardHeader.kt | 2 -- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUICardHeaderTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUICardHeaderTest.kt index c709d3bf..0148f379 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUICardHeaderTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUICardHeaderTest.kt @@ -1,9 +1,11 @@ package com.tarkalabs.uicomponents +import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.assertTextEquals import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import com.tarkalabs.tarkaicons.MoreHorizontal24 import com.tarkalabs.tarkaicons.TarkaIcons @@ -38,7 +40,8 @@ class TUICardHeaderTest { ) } - composeTestRule.onNodeWithTag(testTags.titleTag).assertTextEquals(title) + composeTestRule.onNodeWithText(title).assertExists() + composeTestRule.onNodeWithText(title).assertIsDisplayed() composeTestRule.onNodeWithTag(testTags.tagTitleTag).assertTextEquals(tagTitle) composeTestRule.onNodeWithContentDescription(trailingIcon.contentDescription).assertExists() diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIRadioButtonRowTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIRadioButtonRowTest.kt index a01d3701..8c43dd5c 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIRadioButtonRowTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIRadioButtonRowTest.kt @@ -9,7 +9,7 @@ import androidx.compose.ui.test.onNodeWithText import com.tarkalabs.uicomponents.components.TUIRadioButtonRow import com.tarkalabs.uicomponents.components.TUIRadioButtonRowTags import com.tarkalabs.uicomponents.components.TUIRadioButtonTags -import com.tarkalabs.uicomponents.components.TextRowStyle +import com.tarkalabs.uicomponents.components.base.ToggleRowStyle import org.junit.Rule import org.junit.Test @@ -30,7 +30,7 @@ class TUIRadioButtonRowTest { TUIRadioButtonRow( selected = selectedState, title = title, - style = TextRowStyle.Title, + style = ToggleRowStyle.Title, onOptionSelected = onOptionSelected, tags = radioButtonRowTag ) @@ -56,7 +56,7 @@ class TUIRadioButtonRowTest { TUIRadioButtonRow( selected = selectedState, title = title, - style = TextRowStyle.Title, + style = ToggleRowStyle.Title, onOptionSelected = onOptionSelected, tags = radioButtonRowTag ) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt index ddde0be9..c22b62c1 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt @@ -63,7 +63,6 @@ fun TUICardHeader( } Text( - modifier = Modifier.testTag(tags.titleTag), text = title, color = TUITheme.colors.onSurface, style = TUITheme.typography.heading6 @@ -92,7 +91,6 @@ fun TUICardHeader( data class TUICardHeaderTags( val parentTag: String = "TUICardHeader", val tagTitleTag: String = "TUICardHeader_tagTitleTag", - val titleTag: String = "TUICardHeader_titleTag", val trailingIconTag: String = "TUICardHeader_trailingIconTag", ) From 8b15eea0f5158d895c949d372e1ae931a488f5bb Mon Sep 17 00:00:00 2001 From: Mahendran Date: Tue, 3 Oct 2023 21:24:19 +0530 Subject: [PATCH 6/6] empty line removed --- .../java/com/tarkalabs/uicomponents/components/TUICardHeader.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt index c22b62c1..63c43061 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUICardHeader.kt @@ -67,7 +67,6 @@ fun TUICardHeader( color = TUITheme.colors.onSurface, style = TUITheme.typography.heading6 ) - } HorizontalSpacer(space = 8)