From 5e42368965362c29888a921e93e22ba90d4ebaba Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 8 Jan 2024 12:34:28 +0100 Subject: [PATCH 1/2] Add missing test for LogoutView --- .../features/logout/impl/LogoutViewTest.kt | 20 +++++++++++++++++++ ...nticsNodeInteractionsProviderExtensions.kt | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/LogoutViewTest.kt b/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/LogoutViewTest.kt index 4958afabe7..d0f0b3f6a0 100644 --- a/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/LogoutViewTest.kt +++ b/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/LogoutViewTest.kt @@ -20,6 +20,7 @@ import androidx.activity.ComponentActivity import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.test.ext.junit.runners.AndroidJUnit4 import io.element.android.libraries.architecture.AsyncAction +import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.tests.testutils.EnsureNeverCalled import io.element.android.tests.testutils.EnsureNeverCalledWithParam @@ -28,6 +29,7 @@ import io.element.android.tests.testutils.clickOn import io.element.android.tests.testutils.ensureCalledOnce import io.element.android.tests.testutils.ensureCalledOnceWithParam import io.element.android.tests.testutils.pressBack +import io.element.android.tests.testutils.pressTag import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -54,6 +56,24 @@ class LogoutViewTest { eventsRecorder.assertSingle(LogoutEvents.Logout(false)) } + @Test + fun `confirming logout sends a LogoutEvents`() { + val eventsRecorder = EventsRecorder() + rule.setContent { + LogoutView( + aLogoutState( + logoutAction = AsyncAction.Confirming, + eventSink = eventsRecorder + ), + onChangeRecoveryKeyClicked = EnsureNeverCalled(), + onBackClicked = EnsureNeverCalled(), + onSuccessLogout = EnsureNeverCalledWithParam(), + ) + } + rule.pressTag(TestTags.dialogPositive.value) + eventsRecorder.assertSingle(LogoutEvents.Logout(false)) + } + @Test fun `clicking on back invoke back callback`() { val eventsRecorder = EventsRecorder(expectEvents = false) diff --git a/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/SemanticsNodeInteractionsProviderExtensions.kt b/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/SemanticsNodeInteractionsProviderExtensions.kt index e99825c265..7cf00ca88a 100644 --- a/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/SemanticsNodeInteractionsProviderExtensions.kt +++ b/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/SemanticsNodeInteractionsProviderExtensions.kt @@ -18,8 +18,10 @@ package io.element.android.tests.testutils import androidx.activity.ComponentActivity import androidx.annotation.StringRes +import androidx.compose.ui.test.SemanticsNodeInteractionsProvider import androidx.compose.ui.test.hasClickAction import androidx.compose.ui.test.hasContentDescription +import androidx.compose.ui.test.hasTestTag import androidx.compose.ui.test.hasText import androidx.compose.ui.test.junit4.AndroidComposeTestRule import androidx.compose.ui.test.performClick @@ -36,3 +38,7 @@ fun AndroidComposeTestRule.pressBack() { val text = activity.getString(CommonStrings.action_back) onNode(hasContentDescription(text)).performClick() } + +fun SemanticsNodeInteractionsProvider.pressTag(tag: String) { + onNode(hasTestTag(tag)).performClick() +} From 371065bfddab1322eba8f09aec5b3580e94f0c19 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 9 Jan 2024 11:25:06 +0100 Subject: [PATCH 2/2] Exclude `ContentToPreview` from coverage, either by using annotation @ExcludeFromCoverage, or by inlining it. --- app/build.gradle.kts | 2 ++ .../SearchMultipleUsersResultItem.kt | 5 +---- .../components/SearchSingleUserResultItem.kt | 5 +---- .../coverage/ExcludeFromCoverage.kt | 21 +++++++++++++++++++ .../components/ClickableLinkText.kt | 7 +------ .../components/LabelledCheckbox.kt | 5 +---- .../designsystem/components/ProgressDialog.kt | 5 +---- .../preferences/PreferenceCategory.kt | 5 +---- .../preferences/PreferenceCheckbox.kt | 5 +---- .../preferences/PreferenceDivider.kt | 5 +---- .../components/preferences/PreferenceRow.kt | 5 +---- .../components/preferences/PreferenceSlide.kt | 5 +---- .../preferences/PreferenceSwitch.kt | 5 +---- .../designsystem/theme/components/Checkbox.kt | 5 +---- .../components/CircularProgressIndicator.kt | 5 +---- .../theme/components/DropdownMenuItem.kt | 5 +---- .../theme/components/FloatingActionButton.kt | 6 +----- .../theme/components/HorizontalDivider.kt | 7 +------ .../designsystem/theme/components/Icon.kt | 6 +----- .../theme/components/IconButton.kt | 6 +----- .../theme/components/IconToggleButton.kt | 5 +---- .../components/LinearProgressIndicator.kt | 5 +---- .../theme/components/MediumTopAppBar.kt | 8 ++----- .../theme/components/ModalBottomSheet.kt | 2 ++ .../components/ModalBottomSheetLayout.kt | 2 ++ .../theme/components/OutlinedTextField.kt | 2 ++ .../theme/components/RadioButton.kt | 5 +---- .../designsystem/theme/components/Slider.kt | 5 +---- .../designsystem/theme/components/Surface.kt | 6 +----- .../designsystem/theme/components/Text.kt | 2 ++ .../theme/components/TextField.kt | 2 ++ .../theme/components/TopAppBar.kt | 8 ++----- .../components/previews/DatePickerPreview.kt | 2 ++ 33 files changed, 62 insertions(+), 112 deletions(-) create mode 100644 libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/coverage/ExcludeFromCoverage.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index fc95fe14a2..da6a852877 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -288,6 +288,8 @@ koverReport { "io.element.android.libraries.designsystem.theme.components.bottomsheet.*", ) annotatedBy( + "androidx.compose.ui.tooling.preview.Preview", + "io.element.android.libraries.architecture.coverage.ExcludeFromCoverage", "io.element.android.libraries.designsystem.preview.PreviewsDayNight", "io.element.android.libraries.designsystem.preview.PreviewWithLargeHeight", ) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/SearchMultipleUsersResultItem.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/SearchMultipleUsersResultItem.kt index 20f2c78d8a..b53c8a7170 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/SearchMultipleUsersResultItem.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/SearchMultipleUsersResultItem.kt @@ -57,10 +57,7 @@ fun SearchMultipleUsersResultItem( @Preview @Composable -internal fun SearchMultipleUsersResultItemPreview() = ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun SearchMultipleUsersResultItemPreview() = ElementThemedPreview { Column { SearchMultipleUsersResultItem( searchResult = UserSearchResult( diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/SearchSingleUserResultItem.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/SearchSingleUserResultItem.kt index dc4f936acb..c71ef06b99 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/SearchSingleUserResultItem.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/SearchSingleUserResultItem.kt @@ -53,10 +53,7 @@ fun SearchSingleUserResultItem( @Preview @Composable -internal fun SearchSingleUserResultItemPreview() = ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun SearchSingleUserResultItemPreview() = ElementThemedPreview { Column { SearchSingleUserResultItem( searchResult = UserSearchResult(aMatrixUser(), isUnresolved = false), diff --git a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/coverage/ExcludeFromCoverage.kt b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/coverage/ExcludeFromCoverage.kt new file mode 100644 index 0000000000..559c3f99c8 --- /dev/null +++ b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/coverage/ExcludeFromCoverage.kt @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.architecture.coverage + +@Retention(AnnotationRetention.RUNTIME) +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.CLASS) +annotation class ExcludeFromCoverage diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt index 701d2945ba..eb916345d1 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ClickableLinkText.kt @@ -171,11 +171,7 @@ fun AnnotatedString.linkify(linkStyle: SpanStyle): AnnotatedString { @Preview(group = PreviewGroup.Text) @Composable -internal fun ClickableLinkTextPreview() = - ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun ClickableLinkTextPreview() = ElementThemedPreview { ClickableLinkText( annotatedString = AnnotatedString("Hello", ParagraphStyle()), linkAnnotationTag = "", @@ -184,4 +180,3 @@ private fun ContentToPreview() { interactionSource = remember { MutableInteractionSource() }, ) } - diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt index 4076be8653..7a45fc2dda 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledCheckbox.kt @@ -54,10 +54,7 @@ fun LabelledCheckbox( @Preview(group = PreviewGroup.Toggles) @Composable -internal fun LabelledCheckboxPreview() = ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun LabelledCheckboxPreview() = ElementThemedPreview { LabelledCheckbox( checked = true, onCheckedChange = {}, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt index e678f7817c..f2dc8f470e 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/ProgressDialog.kt @@ -141,10 +141,7 @@ private fun ProgressDialogContent( @Preview(group = PreviewGroup.Dialogs) @Composable -internal fun ProgressDialogPreview() = ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun ProgressDialogPreview() = ElementThemedPreview { DialogPreview { ProgressDialogContent(text = "test dialog content", isCancellable = true) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt index 03631634a6..2c7efb0680 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCategory.kt @@ -68,10 +68,7 @@ private fun PreferenceCategoryTitle(title: String, modifier: Modifier = Modifier @Preview(group = PreviewGroup.Preferences) @Composable -internal fun PreferenceCategoryPreview() = ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun PreferenceCategoryPreview() = ElementThemedPreview { PreferenceCategory( title = "Category title", ) { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCheckbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCheckbox.kt index 68a29c9795..579223cace 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCheckbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceCheckbox.kt @@ -95,10 +95,7 @@ fun PreferenceCheckbox( @Preview(group = PreviewGroup.Preferences) @Composable -internal fun PreferenceCheckboxPreview() = ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun PreferenceCheckboxPreview() = ElementThemedPreview { Column { PreferenceCheckbox( title = "Checkbox", diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDivider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDivider.kt index 1727c68ca5..83757ca2f7 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDivider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDivider.kt @@ -36,9 +36,6 @@ fun PreferenceDivider( @Preview(group = PreviewGroup.Preferences) @Composable -internal fun PreferenceDividerPreview() = ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun PreferenceDividerPreview() = ElementThemedPreview { PreferenceDivider() } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceRow.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceRow.kt index ef1c6ac09a..80813a2d1a 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceRow.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceRow.kt @@ -50,10 +50,7 @@ fun PreferenceRow( @Preview(group = PreviewGroup.Preferences) @Composable -internal fun PreferenceRowPreview() = ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun PreferenceRowPreview() = ElementThemedPreview { PreferenceRow { Text(text = "Content") } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt index 4b125480f7..f0ad10efcb 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSlide.kt @@ -90,10 +90,7 @@ fun PreferenceSlide( @Preview(group = PreviewGroup.Preferences) @Composable -internal fun PreferenceSlidePreview() = ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun PreferenceSlidePreview() = ElementThemedPreview { PreferenceSlide( iconResourceId = CompoundDrawables.ic_user_profile, title = "Slide", diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt index 3d0ceb87c2..5e2a2c267a 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceSwitch.kt @@ -102,10 +102,7 @@ fun PreferenceSwitch( @Preview(group = PreviewGroup.Preferences) @Composable -internal fun PreferenceSwitchPreview() = ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun PreferenceSwitchPreview() = ElementThemedPreview { PreferenceSwitch( title = "Switch", subtitle = "Subtitle Switch", diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Checkbox.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Checkbox.kt index 95cf0b412e..caa2314b0d 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Checkbox.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Checkbox.kt @@ -90,10 +90,7 @@ private fun compoundErrorCheckBoxColors(): CheckboxColors { @Preview(group = PreviewGroup.Toggles) @Composable -internal fun CheckboxesPreview() = ElementThemedPreview(vertical = false) { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun CheckboxesPreview() = ElementThemedPreview(vertical = false) { Column { // Unchecked Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/CircularProgressIndicator.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/CircularProgressIndicator.kt index 5c869db9eb..88d8d83078 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/CircularProgressIndicator.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/CircularProgressIndicator.kt @@ -69,10 +69,7 @@ fun CircularProgressIndicator( @Preview(group = PreviewGroup.Progress) @Composable -internal fun CircularProgressIndicatorPreview() = ElementThemedPreview(vertical = false) { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun CircularProgressIndicatorPreview() = ElementThemedPreview(vertical = false) { Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { // Indeterminate progress CircularProgressIndicator( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/DropdownMenuItem.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/DropdownMenuItem.kt index 3e49018166..e9b65c5041 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/DropdownMenuItem.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/DropdownMenuItem.kt @@ -78,10 +78,7 @@ internal object DropDownMenuItemDefaults { @Preview(group = PreviewGroup.Menus) @Composable -internal fun DropdownMenuItemPreview() = ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun DropdownMenuItemPreview() = ElementThemedPreview { Column { DropdownMenuItem( text = { Text(text = "Item") }, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/FloatingActionButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/FloatingActionButton.kt index 9a01cfe69c..15893cb610 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/FloatingActionButton.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/FloatingActionButton.kt @@ -59,11 +59,7 @@ fun FloatingActionButton( @Preview(group = PreviewGroup.FABs) @Composable -internal fun FloatingActionButtonPreview() = - ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun FloatingActionButtonPreview() = ElementThemedPreview { Box(modifier = Modifier.padding(8.dp)) { FloatingActionButton(onClick = {}) { Icon(imageVector = CompoundIcons.Close, contentDescription = null) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/HorizontalDivider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/HorizontalDivider.kt index 1a3f91a431..87f51e4665 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/HorizontalDivider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/HorizontalDivider.kt @@ -50,11 +50,6 @@ object ElementDividerDefaults { @Composable internal fun HorizontalDividerPreview() = ElementThemedPreview { Box(Modifier.padding(vertical = 10.dp), contentAlignment = Alignment.Center) { - ContentToPreview() + HorizontalDivider() } } - -@Composable -private fun ContentToPreview() { - HorizontalDivider() -} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Icon.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Icon.kt index fb36f5e3e6..a4a893f3c1 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Icon.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Icon.kt @@ -140,10 +140,6 @@ fun Icon( @Preview(group = PreviewGroup.Icons) @Composable -internal fun IconImageVectorPreview() = - ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun IconImageVectorPreview() = ElementThemedPreview { Icon(imageVector = CompoundIcons.Close, contentDescription = null) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconButton.kt index f0a9c12ac0..f2de08b00a 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconButton.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconButton.kt @@ -58,11 +58,7 @@ fun IconButton( @Preview(group = PreviewGroup.Buttons) @Composable -internal fun IconButtonPreview() = - ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun IconButtonPreview() = ElementThemedPreview { Column { CompositionLocalProvider(LocalContentColor provides ElementTheme.colors.iconPrimary) { Row { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconToggleButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconToggleButton.kt index 92bc5c7605..b6ac1a4cf7 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconToggleButton.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconToggleButton.kt @@ -59,10 +59,7 @@ fun IconToggleButton( @Preview(group = PreviewGroup.Toggles) @Composable -internal fun IconToggleButtonPreview() = ElementThemedPreview(vertical = false) { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun IconToggleButtonPreview() = ElementThemedPreview(vertical = false) { var checked by remember { mutableStateOf(false) } Column { Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/LinearProgressIndicator.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/LinearProgressIndicator.kt index 6d081da298..0c4dbd68fc 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/LinearProgressIndicator.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/LinearProgressIndicator.kt @@ -74,10 +74,7 @@ fun LinearProgressIndicator( @Preview(group = PreviewGroup.Progress) @Composable -internal fun LinearProgressIndicatorPreview() = ElementThemedPreview(vertical = false) { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun LinearProgressIndicatorPreview() = ElementThemedPreview(vertical = false) { Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { // Indeterminate progress LinearProgressIndicator( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/MediumTopAppBar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/MediumTopAppBar.kt index 754c5dde9c..131b2bb8ca 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/MediumTopAppBar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/MediumTopAppBar.kt @@ -59,14 +59,10 @@ fun MediumTopAppBar( ) } -@Preview(group = PreviewGroup.AppBars) -@Composable -internal fun MediumTopAppBarPreview() = - ElementThemedPreview { ContentToPreview() } - @OptIn(ExperimentalMaterial3Api::class) +@Preview(group = PreviewGroup.AppBars) @Composable -private fun ContentToPreview() { +internal fun MediumTopAppBarPreview() = ElementThemedPreview { MediumTopAppBar( title = { Text(text = "Title") }, navigationIcon = { BackButton(onClick = {}) }, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheet.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheet.kt index 234a0e0b60..c4fa7f00e8 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheet.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheet.kt @@ -39,6 +39,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.preview.PreviewGroup import io.element.android.libraries.designsystem.preview.sheetStateForPreview import io.element.android.compound.theme.ElementTheme +import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch @@ -93,6 +94,7 @@ internal fun ModalBottomSheetDarkPreview() = ElementPreviewDark { ContentToPreview() } @OptIn(ExperimentalMaterial3Api::class) +@ExcludeFromCoverage @Composable private fun ContentToPreview() { Box( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheetLayout.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheetLayout.kt index 30e5882f26..64f7b4c1f3 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheetLayout.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/ModalBottomSheetLayout.kt @@ -47,6 +47,7 @@ import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp +import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage import io.element.android.libraries.designsystem.modifiers.applyIf import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight @@ -110,6 +111,7 @@ internal fun ModalBottomSheetLayoutDarkPreview() = ElementPreviewDark { ContentToPreview() } @OptIn(ExperimentalMaterialApi::class) +@ExcludeFromCoverage @Composable private fun ContentToPreview() { ModalBottomSheetLayout( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt index 2c7318c447..f05c72be20 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/OutlinedTextField.kt @@ -43,6 +43,7 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.preview.PreviewGroup @@ -166,6 +167,7 @@ internal fun OutlinedTextFieldsPreview() = ElementPreviewLight { ContentToPrevie internal fun OutlinedTextFieldsDarkPreview() = ElementPreviewDark { ContentToPreview() } @Composable +@ExcludeFromCoverage private fun ContentToPreview() { Column(modifier = Modifier.padding(4.dp)) { allBooleans.forEach { isError -> diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/RadioButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/RadioButton.kt index 038e74d982..789b7dbd5a 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/RadioButton.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/RadioButton.kt @@ -66,10 +66,7 @@ internal fun compoundRadioButtonColors(): RadioButtonColors { @Preview(group = PreviewGroup.Toggles) @Composable -internal fun RadioButtonPreview() = ElementThemedPreview(vertical = false) { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun RadioButtonPreview() = ElementThemedPreview(vertical = false) { var checked by remember { mutableStateOf(false) } Column { Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt index 2041d7998d..1bdbcf82cf 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt @@ -58,10 +58,7 @@ fun Slider( @Preview(group = PreviewGroup.Sliders) @Composable -internal fun SlidersPreview() = ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun SlidersPreview() = ElementThemedPreview { var value by remember { mutableFloatStateOf(0.33f) } Column { Slider(onValueChange = { value = it }, value = value, enabled = true) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Surface.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Surface.kt index db7ab7fc08..cda49bdd61 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Surface.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Surface.kt @@ -56,11 +56,7 @@ fun Surface( @Preview @Composable -internal fun SurfacePreview() = - ElementThemedPreview { ContentToPreview() } - -@Composable -private fun ContentToPreview() { +internal fun SurfacePreview() = ElementThemedPreview { Surface { Spacer(modifier = Modifier.size(64.dp)) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt index 21330d0726..08b8860e08 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Text.kt @@ -42,6 +42,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.element.android.compound.utils.toHrf +import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.preview.PreviewGroup @@ -120,6 +121,7 @@ internal fun TextLightPreview() = ElementPreviewLight { ContentToPreview() } @Composable internal fun TextDarkPreview() = ElementPreviewDark { ContentToPreview() } +@ExcludeFromCoverage @Composable private fun ContentToPreview() { val colors = mapOf( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt index 2ad41887aa..e5f0434c50 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TextField.kt @@ -44,6 +44,7 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.preview.PreviewGroup @@ -154,6 +155,7 @@ internal fun TextFieldLightPreview() = internal fun TextFieldDarkPreview() = ElementPreviewDark { ContentToPreview() } +@ExcludeFromCoverage @Composable private fun ContentToPreview() { Column(modifier = Modifier.padding(4.dp)) { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TopAppBar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TopAppBar.kt index d8bf1d7016..74dcad4fea 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TopAppBar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/TopAppBar.kt @@ -59,14 +59,10 @@ fun TopAppBar( ) } -@Preview(group = PreviewGroup.AppBars) -@Composable -internal fun TopAppBarPreview() = - ElementThemedPreview { ContentToPreview() } - @OptIn(ExperimentalMaterial3Api::class) +@Preview(group = PreviewGroup.AppBars) @Composable -private fun ContentToPreview() { +internal fun TopAppBarPreview() = ElementThemedPreview { TopAppBar( title = { Text(text = "Title") }, navigationIcon = { BackButton(onClick = {}) }, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/previews/DatePickerPreview.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/previews/DatePickerPreview.kt index 1b2bfd2188..cace4b5aa3 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/previews/DatePickerPreview.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/previews/DatePickerPreview.kt @@ -23,6 +23,7 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.rememberDatePickerState import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview +import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage import io.element.android.libraries.designsystem.theme.components.AlertDialogContent import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight @@ -41,6 +42,7 @@ internal fun DatePickerDarkPreview() { } @OptIn(ExperimentalMaterial3Api::class) +@ExcludeFromCoverage @Composable private fun ContentToPreview() { val state = rememberDatePickerState(